diff --git a/.bowerrc b/.bowerrc index 7a5b920bcc..49a14a942b 100644 --- a/.bowerrc +++ b/.bowerrc @@ -1,3 +1,3 @@ { - "directory": "awx/ui/static/lib" + "directory": "awx/ui/client/lib" } diff --git a/.env b/.env new file mode 100644 index 0000000000..a906b0df7c --- /dev/null +++ b/.env @@ -0,0 +1,2 @@ +PYTHONUNBUFFERED=true + diff --git a/.gitignore b/.gitignore index 74a3bd3bda..087dba5265 100644 --- a/.gitignore +++ b/.gitignore @@ -12,18 +12,19 @@ awx/public/media awx/public/static awx/ui/tests/test-results.xml awx/ui/static/js/awx.min.js -awx/ui/static/js/local_config.js +awx/ui/static/js/local_settings.json +awx/ui/client/src/local_settings.json awx/ui/static/css/awx.min.css awx/main/fixtures awx/*.log tower/tower_warnings.log celerybeat-schedule -awx/ui/static/docs -awx/ui/dist +awx/ui/static +awx/ui/build_test # Python & setuptools __pycache__ -build +/build /deb-build /rpm-build /tar-build @@ -37,12 +38,13 @@ build /Brocfile.js /bower.json /package.json +/testem.yml node_modules/** /tmp npm-debug.log # UI build debugging -/DEBUG-* +/DEBUG # Testing .coverage @@ -50,6 +52,8 @@ npm-debug.log coverage.xml htmlcov pep8.txt +scratch +testem.log # Mac OS X *.DS_Store diff --git a/MANIFEST.in b/MANIFEST.in index cb40bf39d5..36d627dc10 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -3,7 +3,7 @@ recursive-include awx/static *.ico recursive-include awx/templates *.html recursive-include awx/api/templates *.md *.html recursive-include awx/ui/templates *.html -recursive-include awx/ui/dist * +recursive-include awx/ui/static * recursive-include awx/playbooks *.yml recursive-include awx/lib/site-packages * recursive-include requirements *.txt @@ -12,8 +12,10 @@ recursive-include docs/licenses * recursive-exclude awx devonly.py* recursive-exclude awx/api/tests * recursive-exclude awx/main/tests * +recursive-exclude awx/ui/client * recursive-exclude awx/settings local_settings.py* include tools/scripts/request_tower_configuration.sh +include tools/scripts/request_tower_configuration.ps1 include tools/scripts/ansible-tower-service include tools/munin_monitors/* include tools/sosreport/* diff --git a/Makefile b/Makefile index 87cba45248..8665341cb1 100644 --- a/Makefile +++ b/Makefile @@ -2,12 +2,18 @@ PYTHON = python SITELIB=$(shell $(PYTHON) -c "from distutils.sysconfig import get_python_lib; print get_python_lib()") OFFICIAL ?= no PACKER ?= packer +PACKER_BUILD_OPTS ?= -var 'official=$(OFFICIAL)' -var 'aw_repo_url=$(AW_REPO_URL)' GRUNT ?= $(shell [ -t 0 ] && echo "grunt" || echo "grunt --no-color") -BROCCOLI ?= ./node_modules/.bin/broccoli +TESTEM ?= ./node_modules/.bin/testem +TESTEM_DEBUG_BROWSER ?= Chrome +BROCCOLI_BIN ?= ./node_modules/.bin/broccoli +MOCHA_BIN ?= ./node_modules/.bin/mocha NODE ?= node NPM_BIN ?= npm DEPS_SCRIPT ?= packaging/bundle/deps.py -AW_REPO_URL ?= "http://releases.ansible.com/ansible-tower" +GIT_BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD) + +CLIENT_TEST_DIR ?= build_test # Determine appropriate shasum command UNAME_S := $(shell uname -s) @@ -28,8 +34,10 @@ GIT_REMOTE_URL = $(shell git config --get remote.origin.url) BUILD = 0.git$(DATE) ifeq ($(OFFICIAL),yes) RELEASE ?= 1 + AW_REPO_URL ?= http://releases.ansible.com/ansible-tower else RELEASE ?= $(BUILD) + AW_REPO_URL ?= http://jenkins.testing.ansible.com/ansible-tower_nightlies_RTYUIOPOIUYTYU/$(GIT_BRANCH) endif # Allow AMI license customization @@ -52,11 +60,9 @@ endif ifeq ($(OFFICIAL),yes) SETUP_TAR_NAME=$(NAME)-setup-$(VERSION) SDIST_TAR_NAME=$(NAME)-$(VERSION) - PACKER_BUILD_OPTS=-var-file=vars-release.json else SETUP_TAR_NAME=$(NAME)-setup-$(VERSION)-$(RELEASE) SDIST_TAR_NAME=$(NAME)-$(VERSION)-$(RELEASE) - PACKER_BUILD_OPTS=-var-file=vars-nightly.json endif SDIST_TAR_FILE=$(SDIST_TAR_NAME).tar.gz SETUP_TAR_FILE=$(SETUP_TAR_NAME).tar.gz @@ -98,14 +104,15 @@ MOCK_BIN ?= mock MOCK_CFG ?= RPM_SPECDIR= packaging/rpm RPM_SPEC = $(RPM_SPECDIR)/$(NAME).spec -# Provide a fallback value for RPM_DIST RPM_DIST ?= $(shell rpm --eval '%{?dist}' 2>/dev/null) +# Provide a fallback value for RPM_DIST ifeq ($(RPM_DIST),) -RPM_DIST = .el6 + RPM_DIST = .el6 endif RPM_ARCH ?= $(shell rpm --eval '%{_arch}' 2>/dev/null) +# Provide a fallback value for RPM_ARCH ifeq ($(RPM_ARCH),) -RPM_ARCH = $(shell uname -m) + RPM_ARCH = $(shell uname -m) endif RPM_NVR = $(NAME)-$(VERSION)-$(RELEASE)$(RPM_DIST) @@ -147,7 +154,7 @@ endif .PHONY: clean rebase push requirements requirements_dev requirements_jenkins \ real-requirements real-requirements_dev real-requirements_jenkins \ develop refresh adduser syncdb migrate dbchange dbshell runserver celeryd \ - receiver test test_coverage coverage_html ui_analysis_report test_ui test_jenkins dev_build \ + receiver test test_coverage coverage_html ui_analysis_report test_jenkins dev_build \ release_build release_clean sdist rpmtar mock-rpm mock-srpm rpm-sign \ devjs minjs testjs testjs_ci node-tests browser-tests jshint ngdocs sync_ui \ deb deb-src debian debsign pbuilder reprepro setup_tarball \ @@ -173,17 +180,20 @@ clean-grunt: # Remove UI build files clean-ui: - rm -rf awx/ui/static/dist + rm -rf DEBUG + rm -rf awx/ui/build_test + rm -rf awx/ui/static/ rm -rf awx/ui/dist - rm -rf awx/ui/static/docs # Remove packer artifacts clean-packer: rm -rf packer_cache rm -rf packaging/packer/packer_cache rm -rf packaging/packer/output-virtualbox-iso/ + rm -rf packaging/packer/output-vmware-iso rm -f packaging/packer/ansible-tower-*.box rm -rf packaging/packer/ansible-tower*-ova + rm -rf packaging/packer/ansible-tower*-vmx rm -f Vagrantfile clean-bundle: @@ -192,7 +202,10 @@ clean-bundle: # Remove temporary build files, compiled Python files. clean: clean-rpm clean-deb clean-grunt clean-ui clean-tar clean-packer clean-bundle rm -rf awx/lib/site-packages + rm -rf awx/lib/.deps_built rm -rf dist/* + rm -rf tmp + mkdir tmp rm -rf build $(NAME)-$(VERSION) *.egg-info find . -type f -regex ".*\.py[co]$$" -delete @@ -295,6 +308,11 @@ server: server_noattach servercc: server_noattach tmux -2 -CC attach-session -t tower +# Alternate approach to tmux to run all development tasks specified in +# Procfile. https://youtu.be/OPMgaibszjk +honcho: + honcho start + # Run the built-in development webserver (by default on http://localhost:8013). runserver: $(PYTHON) manage.py runserver @@ -345,17 +363,6 @@ test_coverage: coverage_html: coverage html -ui_analysis_report: reports/ui_code node_modules Gruntfile.js - $(GRUNT) plato:report - -reports/ui_code: node_modules clean-ui Brocfile.js bower.json Gruntfile.js - rm -rf reports/ui_code - $(BROCCOLI) build reports/ui_code -- --no-concat --no-tests --no-styles --no-sourcemaps - -# Run UI unit tests -test_ui: node_modules minjs_ci Gruntfile.js - $(GRUNT) karma:ci - # Run API unit tests across multiple Python/Django versions with Tox. test_tox: tox -v @@ -364,44 +371,90 @@ test_tox: test_jenkins: $(PYTHON) manage.py jenkins -v2 --enable-coverage --project-apps-tests -Gruntfile.js: packaging/grunt/Gruntfile.js +# UI TASKS +# -------------------------------------- + +Gruntfile.js: packaging/node/Gruntfile.js cp $< $@ -Brocfile.js: packaging/grunt/Brocfile.js +Brocfile.js: packaging/node/Brocfile.js cp $< $@ -bower.json: packaging/grunt/bower.json +bower.json: packaging/node/bower.json cp $< $@ -package.json: packaging/grunt/package.template +package.json: packaging/node/package.template sed -e 's#%NAME%#$(NAME)#;s#%VERSION%#$(VERSION)#;s#%GIT_REMOTE_URL%#$(GIT_REMOTE_URL)#;' $< > $@ -sync_ui: node_modules Brocfile.js - $(NODE) tools/ui/timepiece.js awx/ui/dist -- --debug +testem.yml: packaging/node/testem.yml + cp $< $@ # Update local npm install node_modules: package.json $(NPM_BIN) install touch $@ -devjs: node_modules clean-ui Brocfile.js bower.json Gruntfile.js - $(BROCCOLI) build awx/ui/dist -- --debug +awx/ui/%: node_modules clean-ui Brocfile.js bower.json + $(BROCCOLI_BIN) build $@ -- $(UI_FLAGS) -# Build minified JS/CSS. -minjs: awx/ui/dist/tower.min.css.gz -awx/ui/dist/tower.min.css.gz: node_modules Brocfile.js - $(BROCCOLI) build awx/ui/dist -- --silent --no-debug --no-tests --compress --no-docs --no-sourcemaps +# Concatenated, non-minified build; contains debug code and sourcemaps; does not include any tests +devjs: awx/ui/static -minjs_ci: node_modules clean-ui Brocfile.js - $(BROCCOLI) build awx/ui/dist -- --no-debug --compress --no-docs +# Concatenated, minified, compressed (production) build with no sourcemaps or tests +minjs: UI_FLAGS=--silent --compress --no-docs --no-debug --no-sourcemaps $(EXTRA_UI_FLAGS) +minjs: awx/ui/static + +# Performs build to awx/ui/build_test and runs node tests via mocha +testjs: UI_FLAGS=--node-tests --no-concat --no-styles $(EXTRA_UI_FLAGS) +testjs: awx/ui/build_test node-tests + +# Performs nonminified, noncompressed build to awx/ui/static and runs browsers tests with testem ci +testjs_ci: UI_FLAGS=--no-styles --no-compress --browser-tests --no-node-tests --no-sourcemaps $(EXTRA_UI_FLAGS) +testjs_ci: awx/ui/static testem.yml browser-tests-ci + +# Performs nonminified, noncompressed build to awx/ui/static and runs browsers tests with testem ci in Chrome +testjs_debug: UI_FLAGS=--no-styles --no-compress --browser-tests --no-node-tests --no-sourcemaps $(EXTRA_UI_FLAGS) +testjs_debug: awx/ui/static testem.yml browser-tests-debug + +# Runs node tests via mocha without building +node-tests: + NODE_PATH=awx/ui/build_test $(MOCHA_BIN) --full-trace $(shell find awx/ui/build_test -name '*-test.js') $(MOCHA_FLAGS) + +# Runs browser tests on PhantomJS. Outputs the results in a consumable manner for Jenkins. +browser-tests-ci: + PATH=./node_modules/.bin:$(PATH) $(TESTEM) ci --file testem.yml -p 7359 -R xunit + +# Runs browser tests using settings from `testem.yml` you can pass in the browser you'd +# like to run the tests on (Defaults to Chrome, other options Safari, Firefox, and PhantomJS). +# If you want to run the tests in Node (which is the quickest, but also more difficult to debug), +# make sure to run the testjs/node-tests targets +browser-tests-debug: + PATH=./node_modules/.bin:$(PATH) $(TESTEM) --file testem.yml -l $(TESTEM_DEBUG_BROWSER) # Check .js files for errors and lint jshint: node_modules Gruntfile.js $(GRUNT) $@ +# Generate UI code documentation ngdocs: devjs Gruntfile.js $(GRUNT) $@ +# Launch watcher for build process +sync_ui: node_modules Brocfile.js testem.yml + $(NODE) tools/ui/timepiece.js awx/ui/static $(WATCHER_FLAGS) -- $(UI_FLAGS) + +# Build code complexity report for UI code +ui_analysis_report: reports/ui_code node_modules Gruntfile.js + $(GRUNT) plato:report + +# Non-concatenated, non-minified build with no tests, no debug code, no sourcemaps for plato reports +reports/ui_code: node_modules clean-ui Brocfile.js bower.json Gruntfile.js + rm -rf reports/ui_code + $(BROCCOLI_BIN) build reports/ui_code -- --no-concat --no-debug --no-styles --no-sourcemaps + +# END UI TASKS +# -------------------------------------- + # Build a pip-installable package into dist/ with a timestamped version number. dev_build: $(PYTHON) setup.py dev_build @@ -438,7 +491,7 @@ release_clean: -(rm *.tar) -(rm -rf ($RELEASE)) -dist/$(SDIST_TAR_FILE): awx/ui/dist/tower.min.css.gz +dist/$(SDIST_TAR_FILE): minjs BUILD="$(BUILD)" $(PYTHON) setup.py sdist sdist: dist/$(SDIST_TAR_FILE) @@ -598,7 +651,7 @@ reprepro: deb-build/$(DEB_NVRA).deb reprepro/conf $(REPREPRO_BIN) $(REPREPRO_OPTS) clearvanished for COMPONENT in non-free $(VERSION); do \ $(REPREPRO_BIN) $(REPREPRO_OPTS) -C $$COMPONENT remove $(DEB_DIST) $(NAME) ; \ - $(REPREPRO_BIN) $(REPREPRO_OPTS) -C $$COMPONENT --keepunreferencedfiles --ignore=brokenold includedeb $(DEB_DIST) deb-build/$(DEB_NVRA).deb ; \ + $(REPREPRO_BIN) $(REPREPRO_OPTS) -C $$COMPONENT --ignore=brokenold includedeb $(DEB_DIST) deb-build/$(DEB_NVRA).deb ; \ done @@ -609,6 +662,7 @@ reprepro: deb-build/$(DEB_NVRA).deb reprepro/conf amazon-ebs: cd packaging/packer && $(PACKER) build -only $@ $(PACKER_BUILD_OPTS) -var "aws_instance_count=$(AWS_INSTANCE_COUNT)" -var "product_version=$(VERSION)" packer-$(NAME).json +# virtualbox virtualbox-ovf: packaging/packer/ansible-tower-$(VERSION)-virtualbox.box packaging/packer/ansible-tower-$(VERSION)-virtualbox.box: packaging/packer/output-virtualbox-iso/centos-7.ovf @@ -617,12 +671,22 @@ packaging/packer/ansible-tower-$(VERSION)-virtualbox.box: packaging/packer/outpu packaging/packer/output-virtualbox-iso/centos-6.ovf: cd packaging/packer && $(PACKER) build packer-centos-6.json -virtualbox-centos-6: packaging/packer/output-virtualbox-iso/centos-6.ovf - packaging/packer/output-virtualbox-iso/centos-7.ovf: - cd packaging/packer && $(PACKER) build packer-centos-7.json + cd packaging/packer && $(PACKER) build -only virtualbox-iso packer-centos-7.json -virtualbox-centos-7: packaging/packer/output-virtualbox-iso/centos-7.ovf +# virtualbox-iso: packaging/packer/output-virtualbox-iso/centos-6.ovf +virtualbox-iso: packaging/packer/output-virtualbox-iso/centos-7.ovf + +# vmware +packaging/packer/output-vmware-iso/centos-7.vmx: + cd packaging/packer && $(PACKER) build -only vmware-iso packer-centos-7.json + +vmware-iso: packaging/packer/output-vmware-iso/centos-7.vmx + +vmware-vmx: packaging/packer/ansible-tower-$(VERSION)-vmx/ansible-tower-$(VERSION).vmx + +packaging/packer/ansible-tower-$(VERSION)-vmx/ansible-tower-$(VERSION).vmx: packaging/packer/output-vmware-iso/centos-7.vmx + cd packaging/packer && $(PACKER) build -only vmware-vmx $(PACKER_BUILD_OPTS) -var "aws_instance_count=$(AWS_INSTANCE_COUNT)" -var "product_version=$(VERSION)" packer-$(NAME).json # TODO - figure out how to build the front-end and python requirements with # 'build' @@ -635,3 +699,15 @@ install: # Docker Compose Development environment docker-compose: docker-compose -f tools/docker-compose.yml up --no-recreate + +docker-compose-test: + cd tools && docker-compose run --rm --service-ports tower /bin/bash + +mongo-debug-ui: + docker run -it --rm --name mongo-express --link tools_mongo_1:mongo -e ME_CONFIG_OPTIONS_EDITORTHEME=ambiance -e ME_CONFIG_BASICAUTH_USERNAME=admin -e ME_CONFIG_BASICAUTH_PASSWORD=password -p 8081:8081 knickers/mongo-express + +mongo-container: + docker run -it --link tools_mongo_1:mongo --rm mongo sh -c 'exec mongo "$MONGO_PORT_27017_TCP_ADDR:$MONGO_PORT_27017_TCP_PORT/system_tracking_dev"' + +psql-container: + docker run -it --link tools_postgres_1:postgres --rm postgres:9.4.1 sh -c 'exec psql -h "$$POSTGRES_PORT_5432_TCP_ADDR" -p "$$POSTGRES_PORT_5432_TCP_PORT" -U postgres' diff --git a/Procfile b/Procfile new file mode 100644 index 0000000000..a301a6aa1a --- /dev/null +++ b/Procfile @@ -0,0 +1,6 @@ +runserver: make runserver +celeryd: make celeryd +taskmanager: make taskmanager +receiver: make receiver +socketservice: make socketservice +factcacher: make factcacher diff --git a/README.md b/README.md index b16ea64a95..2c50c8f920 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Ansible Tower Tower provides a web-based user interface, REST API and task engine built on top of Ansible. -The current version under development is 2.1.0. +The current version under development is 2.2.1. Development releases always use the 'master' branch. @@ -31,10 +31,14 @@ Release History * 2.1.2, March 25, 2015 * 2.1.3, April 15, 2015 * 2.1.4, June 12, 2015 +* 2.1.5, June 15, 2015 +* 2.1.6, June 23, 2015 * 2.2.0, July 14, 2015 * 2.2.1, August 12, 2015 * 2.2.2, August 19, 2015 * 2.3.0, September 22, 2015 +* 2.3.1, October 2, 2015 +* 2.4.0, November 14, 2015 Any fixes should be applied on the appropriate release branch and be cherry-picked to master. @@ -49,3 +53,5 @@ Refer to `setup/README.md` to get started deploying Tower. Refer to `docs/build_system.md` for more about Jenkins and installing nightly builds (as opposed to running from source). Refer to `docs/release_process.md` for information on the steps involved in creating a release. + +Refer to http://docs.ansible.com/ansible-tower/index.html for information on installing/upgrading, setup, troubleshooting, and much more. diff --git a/awx/__init__.py b/awx/__init__.py index 9f223d8e85..2663c7827b 100644 --- a/awx/__init__.py +++ b/awx/__init__.py @@ -6,7 +6,7 @@ import sys import warnings import site -__version__ = '2.3.1' +__version__ = '2.4.0' __all__ = ['__version__'] diff --git a/awx/api/authentication.py b/awx/api/authentication.py index f0bcef9e4d..72dccc61f4 100644 --- a/awx/api/authentication.py +++ b/awx/api/authentication.py @@ -1,6 +1,13 @@ # Copyright (c) 2015 Ansible, Inc. # All Rights Reserved. +# Python +import urllib + +# Django +from django.utils.timezone import now as tz_now +from django.conf import settings + # Django REST Framework from rest_framework import authentication from rest_framework import exceptions @@ -18,24 +25,38 @@ class TokenAuthentication(authentication.TokenAuthentication): model = AuthToken - def _get_x_auth_token_header(self, request): + @staticmethod + def _get_x_auth_token_header(request): auth = request.META.get('HTTP_X_AUTH_TOKEN', '') if isinstance(auth, type('')): # Work around django test client oddness auth = auth.encode(HTTP_HEADER_ENCODING) return auth + @staticmethod + def _get_auth_token_cookie(request): + token = request.COOKIES.get('token', '') + if token: + token = urllib.unquote(token).strip('"') + return 'token %s' % token + return '' + def authenticate(self, request): self.request = request # Prefer the custom X-Auth-Token header over the Authorization header, # to handle cases where the browser submits saved Basic auth and # overrides the UI's normal use of the Authorization header. - auth = self._get_x_auth_token_header(request).split() + auth = TokenAuthentication._get_x_auth_token_header(request).split() if not auth or auth[0].lower() != 'token': auth = authentication.get_authorization_header(request).split() - if not auth or auth[0].lower() != 'token': + # Prefer basic auth over cookie token + if auth and auth[0].lower() == 'basic': return None + elif not auth or auth[0].lower() != 'token': + auth = TokenAuthentication._get_auth_token_cookie(request).split() + if not auth or auth[0].lower() != 'token': + return None if len(auth) == 1: msg = 'Invalid token header. No credentials provided.' @@ -47,6 +68,7 @@ class TokenAuthentication(authentication.TokenAuthentication): return self.authenticate_credentials(auth[1]) def authenticate_credentials(self, key): + now = tz_now() # Retrieve the request hash and token. try: request_hash = self.model.get_request_hash(self.request) @@ -55,25 +77,46 @@ class TokenAuthentication(authentication.TokenAuthentication): request_hash=request_hash, ) except self.model.DoesNotExist: - raise exceptions.AuthenticationFailed('Invalid token') + raise exceptions.AuthenticationFailed(AuthToken.reason_long('invalid_token')) - # Sanity check: Ensure that the token is still valid. - # Tokens expire if they are not used for 30 minutes. - if token.expired: - raise exceptions.AuthenticationFailed('Token is expired') + # Tell the user why their token was previously invalidated. + if token.invalidated: + raise exceptions.AuthenticationFailed(AuthToken.reason_long(token.reason)) - # Sanity check: If the user is inactive, then return an error. + # Explicitly handle expired tokens + if token.is_expired(now=now): + token.invalidate(reason='timeout_reached') + raise exceptions.AuthenticationFailed(AuthToken.reason_long('timeout_reached')) + + # Token invalidated due to session limit config being reduced + # Session limit reached invalidation will also take place on authentication + if settings.AUTH_TOKEN_PER_USER != -1: + if not token.in_valid_tokens(now=now): + token.invalidate(reason='limit_reached') + raise exceptions.AuthenticationFailed(AuthToken.reason_long('limit_reached')) + + # If the user is inactive, then return an error. if not token.user.is_active: raise exceptions.AuthenticationFailed('User inactive or deleted') # Refresh the token. - # This updates the time that the token was last used, meaning that - # now the token is valid for 30 minutes from "right now". - token.refresh() + # The token is extended from "right now" + configurable setting amount. + token.refresh(now=now) # Return the user object and the token. return (token.user, token) + +class TokenGetAuthentication(TokenAuthentication): + + def authenticate(self, request): + if request.method.lower() == 'get': + token = request.GET.get('token', None) + if token: + request.META['HTTP_X_AUTH_TOKEN'] = 'Token %s' % token + return super(TokenGetAuthentication, self).authenticate(request) + + class TaskAuthentication(authentication.BaseAuthentication): ''' Custom authentication used for views accessed by the inventory and callback diff --git a/awx/api/generics.py b/awx/api/generics.py index d0f90c8766..a0f892210c 100644 --- a/awx/api/generics.py +++ b/awx/api/generics.py @@ -142,6 +142,8 @@ class APIView(views.APIView): 'new_in_200': getattr(self, 'new_in_200', False), 'new_in_210': getattr(self, 'new_in_210', False), 'new_in_220': getattr(self, 'new_in_220', False), + 'new_in_230': getattr(self, 'new_in_230', False), + 'new_in_240': getattr(self, 'new_in_240', False), } def get_description(self, html=False): @@ -158,7 +160,7 @@ class APIView(views.APIView): ''' ret = super(APIView, self).metadata(request) added_in_version = '1.2' - for version in ('2.2.0', '2.1.0', '2.0.0', '1.4.8', '1.4.5', '1.4', '1.3'): + for version in ('2.4.0', '2.3.0', '2.2.0', '2.1.0', '2.0.0', '1.4.8', '1.4.5', '1.4', '1.3'): if getattr(self, 'new_in_%s' % version.replace('.', ''), False): added_in_version = version break diff --git a/awx/api/license.py b/awx/api/license.py index acdc508614..60d10f5dcd 100644 --- a/awx/api/license.py +++ b/awx/api/license.py @@ -31,4 +31,17 @@ def feature_enabled(name): return False # Return the correct feature flag. - return get_license()['features'].get(name, False) + return license['features'].get(name, False) + +def feature_exists(name): + """Return True if the requested feature is enabled, False otherwise. + If the feature does not exist, raise KeyError. + """ + license = get_license() + + # Sanity check: If there is no license, the feature is considered + # to be off. + if 'features' not in license: + return False + + return name in license['features'] diff --git a/awx/api/serializers.py b/awx/api/serializers.py index 460447c229..1ab055d8af 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -601,6 +601,8 @@ class UserSerializer(BaseSerializer): ret = super(UserSerializer, self).to_native(obj) ret.pop('password', None) ret.fields.pop('password', None) + if obj: + ret['auth'] = obj.social_auth.values('provider', 'uid') return ret def get_validation_exclusions(self): @@ -628,6 +630,12 @@ class UserSerializer(BaseSerializer): new_password = None except AttributeError: pass + if (getattr(settings, 'SOCIAL_AUTH_GOOGLE_OAUTH2_KEY', None) or + getattr(settings, 'SOCIAL_AUTH_GITHUB_KEY', None) or + getattr(settings, 'SOCIAL_AUTH_GITHUB_ORG_KEY', None) or + getattr(settings, 'SOCIAL_AUTH_GITHUB_TEAM_KEY', None) or + getattr(settings, 'SOCIAL_AUTH_SAML_ENABLED_IDPS', None)) and obj.social_auth.all(): + new_password = None if new_password: obj.set_password(new_password) if not obj.password: @@ -1349,6 +1357,7 @@ class CredentialSerializer(BaseSerializer): # FIXME: may want to make some of these filtered based on user accessing password = serializers.CharField(required=False, default='') + security_token = serializers.CharField(required=False, default='') ssh_key_data = serializers.CharField(required=False, default='') ssh_key_unlock = serializers.CharField(required=False, default='') become_password = serializers.CharField(required=False, default='') @@ -1357,7 +1366,7 @@ class CredentialSerializer(BaseSerializer): class Meta: model = Credential fields = ('*', 'user', 'team', 'kind', 'cloud', 'host', 'username', - 'password', 'project', 'ssh_key_data', 'ssh_key_unlock', + 'password', 'security_token', 'project', 'ssh_key_data', 'ssh_key_unlock', 'become_method', 'become_username', 'become_password', 'vault_password') @@ -2001,11 +2010,12 @@ class ScheduleSerializer(BaseSerializer): class ActivityStreamSerializer(BaseSerializer): changes = serializers.SerializerMethodField('get_changes') + object_association = serializers.SerializerMethodField('get_object_association') class Meta: model = ActivityStream fields = ('*', '-name', '-description', '-created', '-modified', - 'timestamp', 'operation', 'changes', 'object1', 'object2') + 'timestamp', 'operation', 'changes', 'object1', 'object2', 'object_association') def get_fields(self): ret = super(ActivityStreamSerializer, self).get_fields() @@ -2030,6 +2040,13 @@ class ActivityStreamSerializer(BaseSerializer): logger.warn("Error deserializing activity stream json changes") return {} + def get_object_association(self, obj): + try: + return obj.object_relationship_type.split(".")[-1].split("_")[1] + except: + pass + return "" + def get_related(self, obj): rel = {} if obj.actor is not None: diff --git a/awx/api/templates/api/_new_in_awx.md b/awx/api/templates/api/_new_in_awx.md index e9d8967d67..f953afcc14 100644 --- a/awx/api/templates/api/_new_in_awx.md +++ b/awx/api/templates/api/_new_in_awx.md @@ -3,4 +3,6 @@ {% if new_in_145 %}> _Added in Ansible Tower 1.4.5_{% endif %} {% if new_in_148 %}> _Added in Ansible Tower 1.4.8_{% endif %} {% if new_in_200 %}> _New in Ansible Tower 2.0.0_{% endif %} -{% if new_in_220 %}> _New in Ansible Tower 2.2.0_{% endif %} \ No newline at end of file +{% if new_in_220 %}> _New in Ansible Tower 2.2.0_{% endif %} +{% if new_in_230 %}> _New in Ansible Tower 2.3.0_{% endif %} +{% if new_in_240 %}> _New in Ansible Tower 2.4.0_{% endif %} \ No newline at end of file diff --git a/awx/api/urls.py b/awx/api/urls.py index e2b4508e9f..d177d6b9ba 100644 --- a/awx/api/urls.py +++ b/awx/api/urls.py @@ -224,6 +224,7 @@ v1_urls = patterns('awx.api.views', url(r'^$', 'api_v1_root_view'), url(r'^ping/$', 'api_v1_ping_view'), url(r'^config/$', 'api_v1_config_view'), + url(r'^auth/$', 'auth_view'), url(r'^authtoken/$', 'auth_token_view'), url(r'^me/$', 'user_me_list'), url(r'^dashboard/$', 'dashboard_view'), diff --git a/awx/api/views.py b/awx/api/views.py index f45a6b03aa..c6f89bd116 100644 --- a/awx/api/views.py +++ b/awx/api/views.py @@ -11,6 +11,7 @@ import time import socket import sys import errno +from base64 import b64encode # Django from django.conf import settings @@ -47,23 +48,27 @@ import qsstats # ANSIConv import ansiconv +# Python Social Auth +from social.backends.utils import load_backends + # AWX from awx.main.task_engine import TaskSerializer, TASK_FILE, TEMPORARY_TASK_FILE from awx.main.tasks import mongodb_control from awx.main.access import get_user_queryset from awx.main.ha import is_ha_environment -from awx.api.authentication import TaskAuthentication +from awx.api.authentication import TaskAuthentication, TokenGetAuthentication from awx.api.utils.decorators import paginated from awx.api.filters import MongoFilterBackend from awx.api.generics import get_view_name from awx.api.generics import * # noqa -from awx.api.license import feature_enabled, LicenseForbids +from awx.api.license import feature_enabled, feature_exists, LicenseForbids from awx.main.models import * # noqa from awx.main.utils import * # noqa from awx.api.permissions import * # noqa from awx.api.renderers import * # noqa from awx.api.serializers import * # noqa from awx.fact.models import * # noqa +from awx.main.utils import emit_websocket_notification def api_exception_handler(exc): ''' @@ -186,12 +191,15 @@ class ApiV1ConfigView(APIView): license_reader = TaskSerializer() license_data = license_reader.from_file(show_key=request.user.is_superuser) + pendo_state = settings.PENDO_TRACKING_STATE if settings.PENDO_TRACKING_STATE in ('off', 'anonymous', 'detailed') else 'off' + data = dict( time_zone=settings.TIME_ZONE, license_info=license_data, version=get_awx_version(), ansible_version=get_ansible_version(), eula=render_to_string("eula.md"), + analytics_status=pendo_state ) # If LDAP is enabled, user_ldap_fields will return a list of field @@ -510,6 +518,45 @@ class ScheduleUnifiedJobsList(SubListAPIView): view_name = 'Schedule Jobs List' new_in_148 = True +class AuthView(APIView): + + authentication_classes = [] + permission_classes = (AllowAny,) + new_in_240 = True + + def get(self, request): + data = SortedDict() + err_backend, err_message = request.session.get('social_auth_error', (None, None)) + auth_backends = load_backends(settings.AUTHENTICATION_BACKENDS).items() + # Return auth backends in consistent order: Google, GitHub, SAML. + auth_backends.sort(key=lambda x: 'g' if x[0] == 'google-oauth2' else x[0]) + for name, backend in auth_backends: + if (not feature_exists('enterprise_auth') and + not feature_enabled('ldap')) or \ + (not feature_enabled('enterprise_auth') and + name in ['saml', 'radius']): + continue + login_url = reverse('social:begin', args=(name,)) + complete_url = request.build_absolute_uri(reverse('social:complete', args=(name,))) + backend_data = { + 'login_url': login_url, + 'complete_url': complete_url, + } + if name == 'saml': + backend_data['metadata_url'] = reverse('sso:saml_metadata') + for idp in sorted(settings.SOCIAL_AUTH_SAML_ENABLED_IDPS.keys()): + saml_backend_data = dict(backend_data.items()) + saml_backend_data['login_url'] = '%s?idp=%s' % (login_url, idp) + full_backend_name = '%s:%s' % (name, idp) + if err_backend == full_backend_name and err_message: + saml_backend_data['error'] = err_message + data[full_backend_name] = saml_backend_data + else: + if err_backend == name and err_message: + backend_data['error'] = err_message + data[name] = backend_data + return Response(data) + class AuthTokenView(APIView): authentication_classes = [] @@ -524,12 +571,30 @@ class AuthTokenView(APIView): try: token = AuthToken.objects.filter(user=serializer.object['user'], request_hash=request_hash, - expires__gt=now())[0] + expires__gt=now(), + reason='')[0] token.refresh() except IndexError: token = AuthToken.objects.create(user=serializer.object['user'], request_hash=request_hash) - return Response({'token': token.key, 'expires': token.expires}) + # Get user un-expired tokens that are not invalidated that are + # over the configured limit. + # Mark them as invalid and inform the user + invalid_tokens = AuthToken.get_tokens_over_limit(serializer.object['user']) + for t in invalid_tokens: + # TODO: send socket notification + emit_websocket_notification('/socket.io/control', + 'limit_reached', + dict(reason=unicode(AuthToken.reason_long('limit_reached'))), + token_key=t.key) + t.invalidate(reason='limit_reached') + + # Note: This header is normally added in the middleware whenever an + # auth token is included in the request header. + headers = { + 'Auth-Token-Timeout': int(settings.AUTH_TOKEN_EXPIRATION) + } + return Response({'token': token.key, 'expires': token.expires}, headers=headers) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) class OrganizationList(ListCreateAPIView): @@ -2092,12 +2157,6 @@ class SystemJobTemplateSchedulesList(SubListCreateAttachDetachAPIView): relationship = 'schedules' parent_key = 'unified_job_template' - def post(self, request, *args, **kwargs): - system_job = self.get_parent_object() - if system_job.schedules.filter(active=True).count() > 0: - return Response({"error": "Multiple schedules for Systems Jobs is not allowed"}, status=status.HTTP_400_BAD_REQUEST) - return super(SystemJobTemplateSchedulesList, self).post(request, *args, **kwargs) - class SystemJobTemplateJobsList(SubListAPIView): model = SystemJob @@ -2207,6 +2266,7 @@ class JobRelaunch(RetrieveAPIView, GenericAPIView): if not serializer.is_valid(): return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + obj.launch_type = 'relaunch' new_job = obj.copy() result = new_job.signal_start(**request.DATA) if not result: @@ -2788,6 +2848,7 @@ class UnifiedJobList(ListAPIView): class UnifiedJobStdout(RetrieveAPIView): + authentication_classes = [TokenGetAuthentication] + api_settings.DEFAULT_AUTHENTICATION_CLASSES serializer_class = UnifiedJobStdoutSerializer renderer_classes = [BrowsableAPIRenderer, renderers.StaticHTMLRenderer, PlainTextRenderer, AnsiTextRenderer, @@ -2804,8 +2865,10 @@ class UnifiedJobStdout(RetrieveAPIView): return Response({'range': {'start': 0, 'end': 1, 'absolute_end': 1}, 'content': response_message}) else: return Response(response_message) - + if request.accepted_renderer.format in ('html', 'api', 'json'): + content_format = request.QUERY_PARAMS.get('content_format', 'html') + content_encoding = request.QUERY_PARAMS.get('content_encoding', None) start_line = request.QUERY_PARAMS.get('start_line', 0) end_line = request.QUERY_PARAMS.get('end_line', None) dark_val = request.QUERY_PARAMS.get('dark', '') @@ -2826,7 +2889,10 @@ class UnifiedJobStdout(RetrieveAPIView): if request.accepted_renderer.format == 'api': return Response(mark_safe(data)) if request.accepted_renderer.format == 'json': - return Response({'range': {'start': start, 'end': end, 'absolute_end': absolute_end}, 'content': body}) + if content_encoding == 'base64' and content_format == 'ansi': + return Response({'range': {'start': start, 'end': end, 'absolute_end': absolute_end}, 'content': b64encode(content)}) + elif content_format == 'html': + return Response({'range': {'start': start, 'end': end, 'absolute_end': absolute_end}, 'content': body}) return Response(data) elif request.accepted_renderer.format == 'ansi': return Response(unified_job.result_stdout_raw) diff --git a/awx/fact/__init__.py b/awx/fact/__init__.py index db6bd7fb41..e484e62be1 100644 --- a/awx/fact/__init__.py +++ b/awx/fact/__init__.py @@ -1,31 +1,2 @@ # Copyright (c) 2015 Ansible, Inc. # All Rights Reserved. - -from __future__ import absolute_import - -import logging -from django.conf import settings - -from mongoengine import connect -from mongoengine.connection import get_db, ConnectionError -from .utils.dbtransform import register_key_transform - -logger = logging.getLogger('awx.fact') - -# Connect to Mongo -try: - # Sanity check: If we have intentionally invalid settings, then we - # know we cannot connect. - if settings.MONGO_HOST == NotImplemented: - raise ConnectionError - - # Attempt to connect to the MongoDB database. - connect(settings.MONGO_DB, - host=settings.MONGO_HOST, - port=int(settings.MONGO_PORT), - username=settings.MONGO_USERNAME, - password=settings.MONGO_PASSWORD, - tz_aware=settings.USE_TZ) - register_key_transform(get_db()) -except ConnectionError: - logger.info('Failed to establish connect to MongoDB') diff --git a/awx/fact/models/fact.py b/awx/fact/models/fact.py index e6efb9d782..87cc3e1671 100644 --- a/awx/fact/models/fact.py +++ b/awx/fact/models/fact.py @@ -1,12 +1,46 @@ # Copyright (c) 2015 Ansible, Inc. # All Rights Reserved +from mongoengine import connect from mongoengine.base import BaseField from mongoengine import Document, DateTimeField, ReferenceField, StringField, IntField -from awx.fact.utils.dbtransform import KeyTransform +from mongoengine.connection import get_db, ConnectionError +from awx.fact.utils.dbtransform import register_key_transform, KeyTransform + +from django.conf import settings + +import logging +logger = logging.getLogger('awx.fact.models.fact') + key_transform = KeyTransform([('.', '\uff0E'), ('$', '\uff04')]) +# NOTE: I think it might be better to use register_connection here: https://github.com/MongoEngine/mongoengine/blob/0.9/mongoengine/connection.py#L21 +# but I'm not doing that because I don't see how we can also register the key transform as needed or set the tz_aware preference +@classmethod +def _get_db_monkeypatched(cls): + """ Override the default _get_db mechanism to start a connection to the database """ + # Connect to Mongo + try: + # Sanity check: If we have intentionally invalid settings, then we + # know we cannot connect. + if settings.MONGO_HOST == NotImplemented: + raise ConnectionError + + # Attempt to connect to the MongoDB database. + connect(settings.MONGO_DB, + host=settings.MONGO_HOST, + port=int(settings.MONGO_PORT), + username=settings.MONGO_USERNAME, + password=settings.MONGO_PASSWORD, + tz_aware=settings.USE_TZ) + register_key_transform(get_db()) + except ConnectionError: + logger.info('Failed to establish connect to MongoDB') + return get_db(cls._meta.get("db_alias", "default")) + +Document._get_db = _get_db_monkeypatched + class TransformField(BaseField): def to_python(self, value): return key_transform.transform_outgoing(value, None) diff --git a/awx/fact/tests/data/file_scan.json b/awx/fact/tests/data/file_scan.json new file mode 100644 index 0000000000..2ff33091e9 --- /dev/null +++ b/awx/fact/tests/data/file_scan.json @@ -0,0 +1,155011 @@ +{ + "timestamp": "2015-07-13T18:02:56Z", + "host": { + "inventory_id": 1, + "hostname": "host-00", + "id": "55a3fd52e1382311767d6b9d" + }, + "module": "files", + "fact": [ + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5895822, + "inode": 525214, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1948", + "xusr": false, + "atime": 1436810539.5895822, + "isdir": false, + "ctime": 1436810539.5895822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4955823, + "inode": 526295, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3029", + "xusr": false, + "atime": 1436810540.4955823, + "isdir": false, + "ctime": 1436810540.4955823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5825822, + "inode": 526401, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3135", + "xusr": false, + "atime": 1436810540.5825822, + "isdir": false, + "ctime": 1436810540.5825822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8835824, + "inode": 526822, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3556", + "xusr": false, + "atime": 1436810540.8835824, + "isdir": false, + "ctime": 1436810540.8835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8835824, + "inode": 525569, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2303", + "xusr": false, + "atime": 1436810539.8835824, + "isdir": false, + "ctime": 1436810539.8835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3015823, + "inode": 526054, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2788", + "xusr": false, + "atime": 1436810540.3015823, + "isdir": false, + "ctime": 1436810540.3015823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9465823, + "inode": 528245, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4979", + "xusr": false, + "atime": 1436810541.9465823, + "isdir": false, + "ctime": 1436810541.9465823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0575824, + "inode": 525801, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2535", + "xusr": false, + "atime": 1436810540.0575824, + "isdir": false, + "ctime": 1436810540.0575824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5885823, + "inode": 525213, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1947", + "xusr": false, + "atime": 1436810539.5885823, + "isdir": false, + "ctime": 1436810539.5885823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5295823, + "inode": 523867, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/601", + "xusr": false, + "atime": 1436810538.5295823, + "isdir": false, + "ctime": 1436810538.5295823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0595822, + "inode": 527067, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3801", + "xusr": false, + "atime": 1436810541.0595822, + "isdir": false, + "ctime": 1436810541.0595822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0245824, + "inode": 525760, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2494", + "xusr": false, + "atime": 1436810540.0245824, + "isdir": false, + "ctime": 1436810540.0245824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5295823, + "inode": 525150, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1884", + "xusr": false, + "atime": 1436810539.5295823, + "isdir": false, + "ctime": 1436810539.5295823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7625823, + "inode": 524180, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/914", + "xusr": false, + "atime": 1436810538.7625823, + "isdir": false, + "ctime": 1436810538.7625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9495823, + "inode": 524429, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1163", + "xusr": false, + "atime": 1436810538.9495823, + "isdir": false, + "ctime": 1436810538.9495823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9195824, + "inode": 528206, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4940", + "xusr": false, + "atime": 1436810541.9195824, + "isdir": false, + "ctime": 1436810541.9195824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6605823, + "inode": 524046, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/780", + "xusr": false, + "atime": 1436810538.6605823, + "isdir": false, + "ctime": 1436810538.6605823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5925822, + "inode": 523954, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/688", + "xusr": false, + "atime": 1436810538.5925822, + "isdir": false, + "ctime": 1436810538.5925822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1435823, + "inode": 523376, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/110", + "xusr": false, + "atime": 1436810538.1435823, + "isdir": false, + "ctime": 1436810538.1435823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5595822, + "inode": 527711, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4445", + "xusr": false, + "atime": 1436810541.5595822, + "isdir": false, + "ctime": 1436810541.5595822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2895823, + "inode": 527383, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4117", + "xusr": false, + "atime": 1436810541.2895823, + "isdir": false, + "ctime": 1436810541.2895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1475823, + "inode": 524711, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1445", + "xusr": false, + "atime": 1436810539.1475823, + "isdir": false, + "ctime": 1436810539.1475823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1215823, + "inode": 523344, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/78", + "xusr": false, + "atime": 1436810538.1215823, + "isdir": false, + "ctime": 1436810538.1215823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6715822, + "inode": 527864, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4598", + "xusr": false, + "atime": 1436810541.6715822, + "isdir": false, + "ctime": 1436810541.6715822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1315823, + "inode": 525871, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2605", + "xusr": false, + "atime": 1436810540.1315823, + "isdir": false, + "ctime": 1436810540.1315823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7835822, + "inode": 525432, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2166", + "xusr": false, + "atime": 1436810539.7835822, + "isdir": false, + "ctime": 1436810539.7835822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7615824, + "inode": 524178, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/912", + "xusr": false, + "atime": 1436810538.7615824, + "isdir": false, + "ctime": 1436810538.7615824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0505824, + "inode": 524571, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1305", + "xusr": false, + "atime": 1436810539.0505824, + "isdir": false, + "ctime": 1436810539.0505824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9665823, + "inode": 526939, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3673", + "xusr": false, + "atime": 1436810540.9665823, + "isdir": false, + "ctime": 1436810540.9665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0485823, + "inode": 524568, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1302", + "xusr": false, + "atime": 1436810539.0485823, + "isdir": false, + "ctime": 1436810539.0485823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4745822, + "inode": 527594, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4328", + "xusr": false, + "atime": 1436810541.4745822, + "isdir": false, + "ctime": 1436810541.4745822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0955822, + "inode": 524636, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1370", + "xusr": false, + "atime": 1436810539.0955822, + "isdir": false, + "ctime": 1436810539.0955822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6575823, + "inode": 526505, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3239", + "xusr": false, + "atime": 1436810540.6575823, + "isdir": false, + "ctime": 1436810540.6575823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3955822, + "inode": 523690, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/424", + "xusr": false, + "atime": 1436810538.3955822, + "isdir": false, + "ctime": 1436810538.3955822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0785823, + "inode": 525822, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2556", + "xusr": false, + "atime": 1436810540.0785823, + "isdir": false, + "ctime": 1436810540.0785823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4485824, + "inode": 526254, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2988", + "xusr": false, + "atime": 1436810540.4485824, + "isdir": false, + "ctime": 1436810540.4485824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8555822, + "inode": 525529, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2263", + "xusr": false, + "atime": 1436810539.8555822, + "isdir": false, + "ctime": 1436810539.8555822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8085823, + "inode": 525462, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2196", + "xusr": false, + "atime": 1436810539.8085823, + "isdir": false, + "ctime": 1436810539.8085823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5315824, + "inode": 527672, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4406", + "xusr": false, + "atime": 1436810541.5315824, + "isdir": false, + "ctime": 1436810541.5315824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0685823, + "inode": 525811, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2545", + "xusr": false, + "atime": 1436810540.0685823, + "isdir": false, + "ctime": 1436810540.0685823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3035824, + "inode": 523602, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/336", + "xusr": false, + "atime": 1436810538.3035824, + "isdir": false, + "ctime": 1436810538.3035824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0425823, + "inode": 524559, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1293", + "xusr": false, + "atime": 1436810539.0425823, + "isdir": false, + "ctime": 1436810539.0425823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9235823, + "inode": 525624, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2358", + "xusr": false, + "atime": 1436810539.9235823, + "isdir": false, + "ctime": 1436810539.9235823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2015824, + "inode": 523460, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/194", + "xusr": false, + "atime": 1436810538.2015824, + "isdir": false, + "ctime": 1436810538.2015824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7615824, + "inode": 527988, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4722", + "xusr": false, + "atime": 1436810541.7615824, + "isdir": false, + "ctime": 1436810541.7615824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2535822, + "inode": 527332, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4066", + "xusr": false, + "atime": 1436810541.2535822, + "isdir": false, + "ctime": 1436810541.2535822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1555824, + "inode": 524722, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1456", + "xusr": false, + "atime": 1436810539.1555824, + "isdir": false, + "ctime": 1436810539.1555824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4605823, + "inode": 526263, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2997", + "xusr": false, + "atime": 1436810540.4605823, + "isdir": false, + "ctime": 1436810540.4605823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7305822, + "inode": 526609, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3343", + "xusr": false, + "atime": 1436810540.7305822, + "isdir": false, + "ctime": 1436810540.7305822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8645823, + "inode": 526796, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3530", + "xusr": false, + "atime": 1436810540.8645823, + "isdir": false, + "ctime": 1436810540.8645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6285822, + "inode": 526464, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3198", + "xusr": false, + "atime": 1436810540.6285822, + "isdir": false, + "ctime": 1436810540.6285822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5345824, + "inode": 523874, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/608", + "xusr": false, + "atime": 1436810538.5345824, + "isdir": false, + "ctime": 1436810538.5345824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7925823, + "inode": 525444, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2178", + "xusr": false, + "atime": 1436810539.7925823, + "isdir": false, + "ctime": 1436810539.7925823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8855822, + "inode": 524342, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1076", + "xusr": false, + "atime": 1436810538.8855822, + "isdir": false, + "ctime": 1436810538.8855822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8825824, + "inode": 526821, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3555", + "xusr": false, + "atime": 1436810540.8825824, + "isdir": false, + "ctime": 1436810540.8825824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4365823, + "inode": 527541, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4275", + "xusr": false, + "atime": 1436810541.4365823, + "isdir": false, + "ctime": 1436810541.4365823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4725823, + "inode": 523789, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/523", + "xusr": false, + "atime": 1436810538.4725823, + "isdir": false, + "ctime": 1436810538.4725823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6715822, + "inode": 527865, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4599", + "xusr": false, + "atime": 1436810541.6715822, + "isdir": false, + "ctime": 1436810541.6715822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6915822, + "inode": 525324, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2058", + "xusr": false, + "atime": 1436810539.6915822, + "isdir": false, + "ctime": 1436810539.6915822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3015823, + "inode": 523600, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/334", + "xusr": false, + "atime": 1436810538.3015823, + "isdir": false, + "ctime": 1436810538.3015823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4985824, + "inode": 525119, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1853", + "xusr": false, + "atime": 1436810539.4985824, + "isdir": false, + "ctime": 1436810539.4985824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9485824, + "inode": 525658, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2392", + "xusr": false, + "atime": 1436810539.9485824, + "isdir": false, + "ctime": 1436810539.9485824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4795823, + "inode": 526284, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3018", + "xusr": false, + "atime": 1436810540.4795823, + "isdir": false, + "ctime": 1436810540.4795823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6915822, + "inode": 527893, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4627", + "xusr": false, + "atime": 1436810541.6915822, + "isdir": false, + "ctime": 1436810541.6915822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9285824, + "inode": 526886, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3620", + "xusr": false, + "atime": 1436810540.9285824, + "isdir": false, + "ctime": 1436810540.9285824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4095824, + "inode": 526205, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2939", + "xusr": false, + "atime": 1436810540.4095824, + "isdir": false, + "ctime": 1436810540.4095824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2555823, + "inode": 527336, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4070", + "xusr": false, + "atime": 1436810541.2555823, + "isdir": false, + "ctime": 1436810541.2555823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9065824, + "inode": 528189, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4923", + "xusr": false, + "atime": 1436810541.9065824, + "isdir": false, + "ctime": 1436810541.9065824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1295824, + "inode": 524685, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1419", + "xusr": false, + "atime": 1436810539.1295824, + "isdir": false, + "ctime": 1436810539.1295824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3375823, + "inode": 524969, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1703", + "xusr": false, + "atime": 1436810539.3375823, + "isdir": false, + "ctime": 1436810539.3375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0275824, + "inode": 527022, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3756", + "xusr": false, + "atime": 1436810541.0275824, + "isdir": false, + "ctime": 1436810541.0275824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8045824, + "inode": 526712, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3446", + "xusr": false, + "atime": 1436810540.8045824, + "isdir": false, + "ctime": 1436810540.8045824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2685823, + "inode": 527354, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4088", + "xusr": false, + "atime": 1436810541.2685823, + "isdir": false, + "ctime": 1436810541.2685823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7935822, + "inode": 526696, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3430", + "xusr": false, + "atime": 1436810540.7935822, + "isdir": false, + "ctime": 1436810540.7935822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8185823, + "inode": 528068, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4802", + "xusr": false, + "atime": 1436810541.8185823, + "isdir": false, + "ctime": 1436810541.8185823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0145824, + "inode": 524520, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1254", + "xusr": false, + "atime": 1436810539.0145824, + "isdir": false, + "ctime": 1436810539.0145824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1825824, + "inode": 523432, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/166", + "xusr": false, + "atime": 1436810538.1825824, + "isdir": false, + "ctime": 1436810538.1825824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6695824, + "inode": 527861, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4595", + "xusr": false, + "atime": 1436810541.6695824, + "isdir": false, + "ctime": 1436810541.6695824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7015824, + "inode": 524103, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/837", + "xusr": false, + "atime": 1436810538.7015824, + "isdir": false, + "ctime": 1436810538.7015824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0445824, + "inode": 524563, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1297", + "xusr": false, + "atime": 1436810539.0445824, + "isdir": false, + "ctime": 1436810539.0445824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2475822, + "inode": 524854, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1588", + "xusr": false, + "atime": 1436810539.2475822, + "isdir": false, + "ctime": 1436810539.2475822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5665822, + "inode": 523918, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/652", + "xusr": false, + "atime": 1436810538.5665822, + "isdir": false, + "ctime": 1436810538.5665822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6885824, + "inode": 527889, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4623", + "xusr": false, + "atime": 1436810541.6885824, + "isdir": false, + "ctime": 1436810541.6885824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2785823, + "inode": 527368, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4102", + "xusr": false, + "atime": 1436810541.2785823, + "isdir": false, + "ctime": 1436810541.2785823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3805823, + "inode": 525005, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1739", + "xusr": false, + "atime": 1436810539.3805823, + "isdir": false, + "ctime": 1436810539.3805823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4065824, + "inode": 526201, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2935", + "xusr": false, + "atime": 1436810540.4065824, + "isdir": false, + "ctime": 1436810540.4065824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8785822, + "inode": 525562, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2296", + "xusr": false, + "atime": 1436810539.8785822, + "isdir": false, + "ctime": 1436810539.8785822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9635823, + "inode": 525678, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2412", + "xusr": false, + "atime": 1436810539.9635823, + "isdir": false, + "ctime": 1436810539.9635823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8215823, + "inode": 528071, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4805", + "xusr": false, + "atime": 1436810541.8215823, + "isdir": false, + "ctime": 1436810541.8215823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1735823, + "inode": 523418, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/152", + "xusr": false, + "atime": 1436810538.1735823, + "isdir": false, + "ctime": 1436810538.1735823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6045823, + "inode": 526431, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3165", + "xusr": false, + "atime": 1436810540.6045823, + "isdir": false, + "ctime": 1436810540.6045823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4585824, + "inode": 523770, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/504", + "xusr": false, + "atime": 1436810538.4585824, + "isdir": false, + "ctime": 1436810538.4585824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7195823, + "inode": 527932, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4666", + "xusr": false, + "atime": 1436810541.7195823, + "isdir": false, + "ctime": 1436810541.7195823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1465824, + "inode": 523380, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/114", + "xusr": false, + "atime": 1436810538.1465824, + "isdir": false, + "ctime": 1436810538.1465824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3605824, + "inode": 523654, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/388", + "xusr": false, + "atime": 1436810538.3605824, + "isdir": false, + "ctime": 1436810538.3605824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1385822, + "inode": 527176, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3910", + "xusr": false, + "atime": 1436810541.1385822, + "isdir": false, + "ctime": 1436810541.1385822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0205822, + "inode": 524528, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1262", + "xusr": false, + "atime": 1436810539.0205822, + "isdir": false, + "ctime": 1436810539.0205822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2885823, + "inode": 523582, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/316", + "xusr": false, + "atime": 1436810538.2885823, + "isdir": false, + "ctime": 1436810538.2885823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6755824, + "inode": 525311, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2045", + "xusr": false, + "atime": 1436810539.6755824, + "isdir": false, + "ctime": 1436810539.6755824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9795823, + "inode": 525699, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2433", + "xusr": false, + "atime": 1436810539.9795823, + "isdir": false, + "ctime": 1436810539.9795823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5195823, + "inode": 527656, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4390", + "xusr": false, + "atime": 1436810541.5195823, + "isdir": false, + "ctime": 1436810541.5195823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5425823, + "inode": 526346, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3080", + "xusr": false, + "atime": 1436810540.5425823, + "isdir": false, + "ctime": 1436810540.5425823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6315823, + "inode": 526469, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3203", + "xusr": false, + "atime": 1436810540.6315823, + "isdir": false, + "ctime": 1436810540.6315823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8035824, + "inode": 526710, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3444", + "xusr": false, + "atime": 1436810540.8035824, + "isdir": false, + "ctime": 1436810540.8035824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7105823, + "inode": 524114, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/848", + "xusr": false, + "atime": 1436810538.7105823, + "isdir": false, + "ctime": 1436810538.7105823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4325824, + "inode": 523733, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/467", + "xusr": false, + "atime": 1436810538.4325824, + "isdir": false, + "ctime": 1436810538.4325824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2445824, + "inode": 523519, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/253", + "xusr": false, + "atime": 1436810538.2445824, + "isdir": false, + "ctime": 1436810538.2445824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1835823, + "inode": 523434, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/168", + "xusr": false, + "atime": 1436810538.1835823, + "isdir": false, + "ctime": 1436810538.1835823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4275823, + "inode": 525058, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1792", + "xusr": false, + "atime": 1436810539.4275823, + "isdir": false, + "ctime": 1436810539.4275823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9685824, + "inode": 526942, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3676", + "xusr": false, + "atime": 1436810540.9685824, + "isdir": false, + "ctime": 1436810540.9685824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7855823, + "inode": 528022, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4756", + "xusr": false, + "atime": 1436810541.7855823, + "isdir": false, + "ctime": 1436810541.7855823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4885824, + "inode": 527613, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4347", + "xusr": false, + "atime": 1436810541.4885824, + "isdir": false, + "ctime": 1436810541.4885824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2795823, + "inode": 523569, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/303", + "xusr": false, + "atime": 1436810538.2795823, + "isdir": false, + "ctime": 1436810538.2795823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3705823, + "inode": 523662, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/396", + "xusr": false, + "atime": 1436810538.3705823, + "isdir": false, + "ctime": 1436810538.3705823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4145823, + "inode": 526212, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2946", + "xusr": false, + "atime": 1436810540.4145823, + "isdir": false, + "ctime": 1436810540.4145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8575823, + "inode": 526786, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3520", + "xusr": false, + "atime": 1436810540.8575823, + "isdir": false, + "ctime": 1436810540.8575823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5075824, + "inode": 523838, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/572", + "xusr": false, + "atime": 1436810538.5075824, + "isdir": false, + "ctime": 1436810538.5075824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7425823, + "inode": 524154, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/888", + "xusr": false, + "atime": 1436810538.7425823, + "isdir": false, + "ctime": 1436810538.7425823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3695824, + "inode": 524997, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1731", + "xusr": false, + "atime": 1436810539.3695824, + "isdir": false, + "ctime": 1436810539.3695824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1555824, + "inode": 525895, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2629", + "xusr": false, + "atime": 1436810540.1555824, + "isdir": false, + "ctime": 1436810540.1555824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2695823, + "inode": 524886, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1620", + "xusr": false, + "atime": 1436810539.2695823, + "isdir": false, + "ctime": 1436810539.2695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8835824, + "inode": 526823, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3557", + "xusr": false, + "atime": 1436810540.8835824, + "isdir": false, + "ctime": 1436810540.8835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6515822, + "inode": 525288, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2022", + "xusr": false, + "atime": 1436810539.6515822, + "isdir": false, + "ctime": 1436810539.6515822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9625823, + "inode": 524448, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1182", + "xusr": false, + "atime": 1436810538.9625823, + "isdir": false, + "ctime": 1436810538.9625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5745823, + "inode": 523929, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/663", + "xusr": false, + "atime": 1436810538.5745823, + "isdir": false, + "ctime": 1436810538.5745823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9445822, + "inode": 524422, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1156", + "xusr": false, + "atime": 1436810538.9445822, + "isdir": false, + "ctime": 1436810538.9445822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0265822, + "inode": 524537, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1271", + "xusr": false, + "atime": 1436810539.0265822, + "isdir": false, + "ctime": 1436810539.0265822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5675824, + "inode": 525192, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1926", + "xusr": false, + "atime": 1436810539.5675824, + "isdir": false, + "ctime": 1436810539.5675824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4115822, + "inode": 523711, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/445", + "xusr": false, + "atime": 1436810538.4115822, + "isdir": false, + "ctime": 1436810538.4115822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2775824, + "inode": 523566, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/300", + "xusr": false, + "atime": 1436810538.2775824, + "isdir": false, + "ctime": 1436810538.2775824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4945824, + "inode": 525115, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1849", + "xusr": false, + "atime": 1436810539.4945824, + "isdir": false, + "ctime": 1436810539.4945824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8765824, + "inode": 525558, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2292", + "xusr": false, + "atime": 1436810539.8765824, + "isdir": false, + "ctime": 1436810539.8765824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7385824, + "inode": 525376, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2110", + "xusr": false, + "atime": 1436810539.7385824, + "isdir": false, + "ctime": 1436810539.7385824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6885824, + "inode": 524084, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/818", + "xusr": false, + "atime": 1436810538.6885824, + "isdir": false, + "ctime": 1436810538.6885824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9035823, + "inode": 524366, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1100", + "xusr": false, + "atime": 1436810538.9035823, + "isdir": false, + "ctime": 1436810538.9035823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1365824, + "inode": 524695, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1429", + "xusr": false, + "atime": 1436810539.1365824, + "isdir": false, + "ctime": 1436810539.1365824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6355822, + "inode": 526474, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3208", + "xusr": false, + "atime": 1436810540.6355822, + "isdir": false, + "ctime": 1436810540.6355822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8165822, + "inode": 524249, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/983", + "xusr": false, + "atime": 1436810538.8165822, + "isdir": false, + "ctime": 1436810538.8165822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8625822, + "inode": 528126, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4860", + "xusr": false, + "atime": 1436810541.8625822, + "isdir": false, + "ctime": 1436810541.8625822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5895822, + "inode": 523949, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/683", + "xusr": false, + "atime": 1436810538.5895822, + "isdir": false, + "ctime": 1436810538.5895822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3695824, + "inode": 527461, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4195", + "xusr": false, + "atime": 1436810541.3695824, + "isdir": false, + "ctime": 1436810541.3695824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8595824, + "inode": 524306, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1040", + "xusr": false, + "atime": 1436810538.8595824, + "isdir": false, + "ctime": 1436810538.8595824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8595824, + "inode": 525535, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2269", + "xusr": false, + "atime": 1436810539.8595824, + "isdir": false, + "ctime": 1436810539.8595824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2645824, + "inode": 526012, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2746", + "xusr": false, + "atime": 1436810540.2645824, + "isdir": false, + "ctime": 1436810540.2645824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6565824, + "inode": 525293, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2027", + "xusr": false, + "atime": 1436810539.6565824, + "isdir": false, + "ctime": 1436810539.6565824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7885823, + "inode": 525440, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2174", + "xusr": false, + "atime": 1436810539.7885823, + "isdir": false, + "ctime": 1436810539.7885823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5505824, + "inode": 527699, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4433", + "xusr": false, + "atime": 1436810541.5505824, + "isdir": false, + "ctime": 1436810541.5505824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3535824, + "inode": 526126, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2860", + "xusr": false, + "atime": 1436810540.3535824, + "isdir": false, + "ctime": 1436810540.3535824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2065823, + "inode": 524795, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1529", + "xusr": false, + "atime": 1436810539.2065823, + "isdir": false, + "ctime": 1436810539.2065823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2315824, + "inode": 524831, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1565", + "xusr": false, + "atime": 1436810539.2315824, + "isdir": false, + "ctime": 1436810539.2315824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1165824, + "inode": 524666, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1400", + "xusr": false, + "atime": 1436810539.1165824, + "isdir": false, + "ctime": 1436810539.1165824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2895823, + "inode": 526039, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2773", + "xusr": false, + "atime": 1436810540.2895823, + "isdir": false, + "ctime": 1436810540.2895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0575824, + "inode": 524581, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1315", + "xusr": false, + "atime": 1436810539.0575824, + "isdir": false, + "ctime": 1436810539.0575824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7535822, + "inode": 525392, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2126", + "xusr": false, + "atime": 1436810539.7535822, + "isdir": false, + "ctime": 1436810539.7535822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8215823, + "inode": 524255, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/989", + "xusr": false, + "atime": 1436810538.8215823, + "isdir": false, + "ctime": 1436810538.8215823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6765823, + "inode": 526532, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3266", + "xusr": false, + "atime": 1436810540.6765823, + "isdir": false, + "ctime": 1436810540.6765823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2265823, + "inode": 524824, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1558", + "xusr": false, + "atime": 1436810539.2265823, + "isdir": false, + "ctime": 1436810539.2265823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8355823, + "inode": 528090, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4824", + "xusr": false, + "atime": 1436810541.8355823, + "isdir": false, + "ctime": 1436810541.8355823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5985823, + "inode": 525221, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1955", + "xusr": false, + "atime": 1436810539.5985823, + "isdir": false, + "ctime": 1436810539.5985823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0815823, + "inode": 523293, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/27", + "xusr": false, + "atime": 1436810538.0815823, + "isdir": false, + "ctime": 1436810538.0815823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1595824, + "inode": 523399, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/133", + "xusr": false, + "atime": 1436810538.1595824, + "isdir": false, + "ctime": 1436810538.1595824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4895823, + "inode": 523812, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/546", + "xusr": false, + "atime": 1436810538.4895823, + "isdir": false, + "ctime": 1436810538.4895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7525823, + "inode": 527976, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4710", + "xusr": false, + "atime": 1436810541.7525823, + "isdir": false, + "ctime": 1436810541.7525823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6755824, + "inode": 527870, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4604", + "xusr": false, + "atime": 1436810541.6755824, + "isdir": false, + "ctime": 1436810541.6755824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3625822, + "inode": 526139, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2873", + "xusr": false, + "atime": 1436810540.3625822, + "isdir": false, + "ctime": 1436810540.3625822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6665823, + "inode": 525303, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2037", + "xusr": false, + "atime": 1436810539.6665823, + "isdir": false, + "ctime": 1436810539.6665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1755824, + "inode": 527225, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3959", + "xusr": false, + "atime": 1436810541.1755824, + "isdir": false, + "ctime": 1436810541.1755824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9565823, + "inode": 526925, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3659", + "xusr": false, + "atime": 1436810540.9565823, + "isdir": false, + "ctime": 1436810540.9565823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1155822, + "inode": 524664, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1398", + "xusr": false, + "atime": 1436810539.1155822, + "isdir": false, + "ctime": 1436810539.1155822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2765822, + "inode": 527365, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4099", + "xusr": false, + "atime": 1436810541.2765822, + "isdir": false, + "ctime": 1436810541.2765822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0075824, + "inode": 524510, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1244", + "xusr": false, + "atime": 1436810539.0075824, + "isdir": false, + "ctime": 1436810539.0075824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6615822, + "inode": 525299, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2033", + "xusr": false, + "atime": 1436810539.6615822, + "isdir": false, + "ctime": 1436810539.6615822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5355823, + "inode": 527678, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4412", + "xusr": false, + "atime": 1436810541.5355823, + "isdir": false, + "ctime": 1436810541.5355823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8885822, + "inode": 524345, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1079", + "xusr": false, + "atime": 1436810538.8885822, + "isdir": false, + "ctime": 1436810538.8885822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1155822, + "inode": 523336, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/70", + "xusr": false, + "atime": 1436810538.1155822, + "isdir": false, + "ctime": 1436810538.1155822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8715823, + "inode": 526805, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3539", + "xusr": false, + "atime": 1436810540.8715823, + "isdir": false, + "ctime": 1436810540.8715823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1065824, + "inode": 524651, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1385", + "xusr": false, + "atime": 1436810539.1065824, + "isdir": false, + "ctime": 1436810539.1065824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3255823, + "inode": 523621, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/355", + "xusr": false, + "atime": 1436810538.3255823, + "isdir": false, + "ctime": 1436810538.3255823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4165823, + "inode": 527514, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4248", + "xusr": false, + "atime": 1436810541.4165823, + "isdir": false, + "ctime": 1436810541.4165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6065824, + "inode": 526434, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3168", + "xusr": false, + "atime": 1436810540.6065824, + "isdir": false, + "ctime": 1436810540.6065824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6685822, + "inode": 526520, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3254", + "xusr": false, + "atime": 1436810540.6685822, + "isdir": false, + "ctime": 1436810540.6685822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8645823, + "inode": 528129, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4863", + "xusr": false, + "atime": 1436810541.8645823, + "isdir": false, + "ctime": 1436810541.8645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4085822, + "inode": 523707, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/441", + "xusr": false, + "atime": 1436810538.4085822, + "isdir": false, + "ctime": 1436810538.4085822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4625823, + "inode": 525079, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1813", + "xusr": false, + "atime": 1436810539.4625823, + "isdir": false, + "ctime": 1436810539.4625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4665823, + "inode": 526270, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3004", + "xusr": false, + "atime": 1436810540.4665823, + "isdir": false, + "ctime": 1436810540.4665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7385824, + "inode": 526620, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3354", + "xusr": false, + "atime": 1436810540.7385824, + "isdir": false, + "ctime": 1436810540.7385824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6675823, + "inode": 524056, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/790", + "xusr": false, + "atime": 1436810538.6675823, + "isdir": false, + "ctime": 1436810538.6675823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8265824, + "inode": 524262, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/996", + "xusr": false, + "atime": 1436810538.8265824, + "isdir": false, + "ctime": 1436810538.8265824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9025824, + "inode": 526850, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3584", + "xusr": false, + "atime": 1436810540.9025824, + "isdir": false, + "ctime": 1436810540.9025824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4635823, + "inode": 523777, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/511", + "xusr": false, + "atime": 1436810538.4635823, + "isdir": false, + "ctime": 1436810538.4635823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1185822, + "inode": 527149, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3883", + "xusr": false, + "atime": 1436810541.1185822, + "isdir": false, + "ctime": 1436810541.1185822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6235824, + "inode": 523996, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/730", + "xusr": false, + "atime": 1436810538.6235824, + "isdir": false, + "ctime": 1436810538.6235824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6515822, + "inode": 524034, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/768", + "xusr": false, + "atime": 1436810538.6515822, + "isdir": false, + "ctime": 1436810538.6515822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5265822, + "inode": 525146, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1880", + "xusr": false, + "atime": 1436810539.5265822, + "isdir": false, + "ctime": 1436810539.5265822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5255823, + "inode": 526323, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3057", + "xusr": false, + "atime": 1436810540.5255823, + "isdir": false, + "ctime": 1436810540.5255823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5325823, + "inode": 526332, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3066", + "xusr": false, + "atime": 1436810540.5325823, + "isdir": false, + "ctime": 1436810540.5325823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0615823, + "inode": 524587, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1321", + "xusr": false, + "atime": 1436810539.0615823, + "isdir": false, + "ctime": 1436810539.0615823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5515823, + "inode": 526357, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3091", + "xusr": false, + "atime": 1436810540.5515823, + "isdir": false, + "ctime": 1436810540.5515823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5555823, + "inode": 525175, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1909", + "xusr": false, + "atime": 1436810539.5555823, + "isdir": false, + "ctime": 1436810539.5555823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6055822, + "inode": 523972, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/706", + "xusr": false, + "atime": 1436810538.6055822, + "isdir": false, + "ctime": 1436810538.6055822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8885822, + "inode": 528164, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4898", + "xusr": false, + "atime": 1436810541.8885822, + "isdir": false, + "ctime": 1436810541.8885822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0005822, + "inode": 524500, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1234", + "xusr": false, + "atime": 1436810539.0005822, + "isdir": false, + "ctime": 1436810539.0005822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9855824, + "inode": 525708, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2442", + "xusr": false, + "atime": 1436810539.9855824, + "isdir": false, + "ctime": 1436810539.9855824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7715824, + "inode": 528003, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4737", + "xusr": false, + "atime": 1436810541.7715824, + "isdir": false, + "ctime": 1436810541.7715824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1865823, + "inode": 525925, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2659", + "xusr": false, + "atime": 1436810540.1865823, + "isdir": false, + "ctime": 1436810540.1865823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4405823, + "inode": 525063, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1797", + "xusr": false, + "atime": 1436810539.4405823, + "isdir": false, + "ctime": 1436810539.4405823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3505824, + "inode": 524982, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1716", + "xusr": false, + "atime": 1436810539.3505824, + "isdir": false, + "ctime": 1436810539.3505824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6985824, + "inode": 527903, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4637", + "xusr": false, + "atime": 1436810541.6985824, + "isdir": false, + "ctime": 1436810541.6985824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0115824, + "inode": 525744, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2478", + "xusr": false, + "atime": 1436810540.0115824, + "isdir": false, + "ctime": 1436810540.0115824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9175823, + "inode": 524386, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1120", + "xusr": false, + "atime": 1436810538.9175823, + "isdir": false, + "ctime": 1436810538.9175823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2945824, + "inode": 527391, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4125", + "xusr": false, + "atime": 1436810541.2945824, + "isdir": false, + "ctime": 1436810541.2945824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7285824, + "inode": 526606, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3340", + "xusr": false, + "atime": 1436810540.7285824, + "isdir": false, + "ctime": 1436810540.7285824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8185823, + "inode": 525476, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2210", + "xusr": false, + "atime": 1436810539.8185823, + "isdir": false, + "ctime": 1436810539.8185823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6395824, + "inode": 526480, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3214", + "xusr": false, + "atime": 1436810540.6395824, + "isdir": false, + "ctime": 1436810540.6395824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8405824, + "inode": 526762, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3496", + "xusr": false, + "atime": 1436810540.8405824, + "isdir": false, + "ctime": 1436810540.8405824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1595824, + "inode": 527205, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3939", + "xusr": false, + "atime": 1436810541.1595824, + "isdir": false, + "ctime": 1436810541.1595824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5925822, + "inode": 526414, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3148", + "xusr": false, + "atime": 1436810540.5925822, + "isdir": false, + "ctime": 1436810540.5925822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8595824, + "inode": 524307, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1041", + "xusr": false, + "atime": 1436810538.8595824, + "isdir": false, + "ctime": 1436810538.8595824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6735823, + "inode": 526528, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3262", + "xusr": false, + "atime": 1436810540.6735823, + "isdir": false, + "ctime": 1436810540.6735823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6825824, + "inode": 524076, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/810", + "xusr": false, + "atime": 1436810538.6825824, + "isdir": false, + "ctime": 1436810538.6825824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4515824, + "inode": 523759, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/493", + "xusr": false, + "atime": 1436810538.4515824, + "isdir": false, + "ctime": 1436810538.4515824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6645823, + "inode": 527855, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4589", + "xusr": false, + "atime": 1436810541.6645823, + "isdir": false, + "ctime": 1436810541.6645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7285824, + "inode": 525364, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2098", + "xusr": false, + "atime": 1436810539.7285824, + "isdir": false, + "ctime": 1436810539.7285824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0165823, + "inode": 527007, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3741", + "xusr": false, + "atime": 1436810541.0165823, + "isdir": false, + "ctime": 1436810541.0165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4985824, + "inode": 527627, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4361", + "xusr": false, + "atime": 1436810541.4985824, + "isdir": false, + "ctime": 1436810541.4985824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6425824, + "inode": 525278, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2012", + "xusr": false, + "atime": 1436810539.6425824, + "isdir": false, + "ctime": 1436810539.6425824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7635822, + "inode": 524181, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/915", + "xusr": false, + "atime": 1436810538.7635822, + "isdir": false, + "ctime": 1436810538.7635822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2105823, + "inode": 523472, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/206", + "xusr": false, + "atime": 1436810538.2105823, + "isdir": false, + "ctime": 1436810538.2105823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9675822, + "inode": 526941, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3675", + "xusr": false, + "atime": 1436810540.9675822, + "isdir": false, + "ctime": 1436810540.9675822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8975823, + "inode": 524358, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1092", + "xusr": false, + "atime": 1436810538.8975823, + "isdir": false, + "ctime": 1436810538.8975823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4105823, + "inode": 527507, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4241", + "xusr": false, + "atime": 1436810541.4105823, + "isdir": false, + "ctime": 1436810541.4105823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8295822, + "inode": 524266, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1000", + "xusr": false, + "atime": 1436810538.8295822, + "isdir": false, + "ctime": 1436810538.8295822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0925822, + "inode": 525836, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2570", + "xusr": false, + "atime": 1436810540.0925822, + "isdir": false, + "ctime": 1436810540.0925822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5575824, + "inode": 526365, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3099", + "xusr": false, + "atime": 1436810540.5575824, + "isdir": false, + "ctime": 1436810540.5575824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3115823, + "inode": 527411, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4145", + "xusr": false, + "atime": 1436810541.3115823, + "isdir": false, + "ctime": 1436810541.3115823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7375822, + "inode": 525374, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2108", + "xusr": false, + "atime": 1436810539.7375822, + "isdir": false, + "ctime": 1436810539.7375822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2365823, + "inode": 527309, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4043", + "xusr": false, + "atime": 1436810541.2365823, + "isdir": false, + "ctime": 1436810541.2365823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8235824, + "inode": 528074, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4808", + "xusr": false, + "atime": 1436810541.8235824, + "isdir": false, + "ctime": 1436810541.8235824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0995822, + "inode": 523315, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/49", + "xusr": false, + "atime": 1436810538.0995822, + "isdir": false, + "ctime": 1436810538.0995822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5215824, + "inode": 527658, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4392", + "xusr": false, + "atime": 1436810541.5215824, + "isdir": false, + "ctime": 1436810541.5215824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6755824, + "inode": 526530, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3264", + "xusr": false, + "atime": 1436810540.6755824, + "isdir": false, + "ctime": 1436810540.6755824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4365823, + "inode": 526242, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2976", + "xusr": false, + "atime": 1436810540.4365823, + "isdir": false, + "ctime": 1436810540.4365823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5655823, + "inode": 525188, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1922", + "xusr": false, + "atime": 1436810539.5655823, + "isdir": false, + "ctime": 1436810539.5655823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7965822, + "inode": 525448, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2182", + "xusr": false, + "atime": 1436810539.7965822, + "isdir": false, + "ctime": 1436810539.7965822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4005823, + "inode": 523697, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/431", + "xusr": false, + "atime": 1436810538.4005823, + "isdir": false, + "ctime": 1436810538.4005823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2665823, + "inode": 526014, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2748", + "xusr": false, + "atime": 1436810540.2665823, + "isdir": false, + "ctime": 1436810540.2665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4765823, + "inode": 525096, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1830", + "xusr": false, + "atime": 1436810539.4765823, + "isdir": false, + "ctime": 1436810539.4765823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3985822, + "inode": 527491, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4225", + "xusr": false, + "atime": 1436810541.3985822, + "isdir": false, + "ctime": 1436810541.3985822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2705822, + "inode": 523557, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/291", + "xusr": false, + "atime": 1436810538.2705822, + "isdir": false, + "ctime": 1436810538.2705822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8115823, + "inode": 526721, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3455", + "xusr": false, + "atime": 1436810540.8115823, + "isdir": false, + "ctime": 1436810540.8115823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4625823, + "inode": 523775, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/509", + "xusr": false, + "atime": 1436810538.4625823, + "isdir": false, + "ctime": 1436810538.4625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7345824, + "inode": 527952, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4686", + "xusr": false, + "atime": 1436810541.7345824, + "isdir": false, + "ctime": 1436810541.7345824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5675824, + "inode": 523919, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/653", + "xusr": false, + "atime": 1436810538.5675824, + "isdir": false, + "ctime": 1436810538.5675824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9585824, + "inode": 524441, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1175", + "xusr": false, + "atime": 1436810538.9585824, + "isdir": false, + "ctime": 1436810538.9585824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5705824, + "inode": 525196, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1930", + "xusr": false, + "atime": 1436810539.5705824, + "isdir": false, + "ctime": 1436810539.5705824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0725822, + "inode": 525816, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2550", + "xusr": false, + "atime": 1436810540.0725822, + "isdir": false, + "ctime": 1436810540.0725822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4055824, + "inode": 527500, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4234", + "xusr": false, + "atime": 1436810541.4055824, + "isdir": false, + "ctime": 1436810541.4055824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2275822, + "inode": 527296, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4030", + "xusr": false, + "atime": 1436810541.2275822, + "isdir": false, + "ctime": 1436810541.2275822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1075823, + "inode": 527134, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3868", + "xusr": false, + "atime": 1436810541.1075823, + "isdir": false, + "ctime": 1436810541.1075823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9565823, + "inode": 528258, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4992", + "xusr": false, + "atime": 1436810541.9565823, + "isdir": false, + "ctime": 1436810541.9565823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9335823, + "inode": 524407, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1141", + "xusr": false, + "atime": 1436810538.9335823, + "isdir": false, + "ctime": 1436810538.9335823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7505822, + "inode": 526636, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3370", + "xusr": false, + "atime": 1436810540.7505822, + "isdir": false, + "ctime": 1436810540.7505822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9535823, + "inode": 524435, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1169", + "xusr": false, + "atime": 1436810538.9535823, + "isdir": false, + "ctime": 1436810538.9535823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8875823, + "inode": 528162, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4896", + "xusr": false, + "atime": 1436810541.8875823, + "isdir": false, + "ctime": 1436810541.8875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8945823, + "inode": 526838, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3572", + "xusr": false, + "atime": 1436810540.8945823, + "isdir": false, + "ctime": 1436810540.8945823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3485823, + "inode": 524980, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1714", + "xusr": false, + "atime": 1436810539.3485823, + "isdir": false, + "ctime": 1436810539.3485823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7635822, + "inode": 525404, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2138", + "xusr": false, + "atime": 1436810539.7635822, + "isdir": false, + "ctime": 1436810539.7635822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4835823, + "inode": 526289, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3023", + "xusr": false, + "atime": 1436810540.4835823, + "isdir": false, + "ctime": 1436810540.4835823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9755824, + "inode": 524466, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1200", + "xusr": false, + "atime": 1436810538.9755824, + "isdir": false, + "ctime": 1436810538.9755824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5885823, + "inode": 523948, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/682", + "xusr": false, + "atime": 1436810538.5885823, + "isdir": false, + "ctime": 1436810538.5885823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9325824, + "inode": 528225, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4959", + "xusr": false, + "atime": 1436810541.9325824, + "isdir": false, + "ctime": 1436810541.9325824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6165824, + "inode": 525245, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1979", + "xusr": false, + "atime": 1436810539.6165824, + "isdir": false, + "ctime": 1436810539.6165824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9855824, + "inode": 524481, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1215", + "xusr": false, + "atime": 1436810538.9855824, + "isdir": false, + "ctime": 1436810538.9855824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8205824, + "inode": 526734, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3468", + "xusr": false, + "atime": 1436810540.8205824, + "isdir": false, + "ctime": 1436810540.8205824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9385824, + "inode": 524414, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1148", + "xusr": false, + "atime": 1436810538.9385824, + "isdir": false, + "ctime": 1436810538.9385824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9925823, + "inode": 524489, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1223", + "xusr": false, + "atime": 1436810538.9925823, + "isdir": false, + "ctime": 1436810538.9925823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3755822, + "inode": 526157, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2891", + "xusr": false, + "atime": 1436810540.3755822, + "isdir": false, + "ctime": 1436810540.3755822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2075822, + "inode": 524796, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1530", + "xusr": false, + "atime": 1436810539.2075822, + "isdir": false, + "ctime": 1436810539.2075822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6785824, + "inode": 525313, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2047", + "xusr": false, + "atime": 1436810539.6785824, + "isdir": false, + "ctime": 1436810539.6785824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6305823, + "inode": 526467, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3201", + "xusr": false, + "atime": 1436810540.6305823, + "isdir": false, + "ctime": 1436810540.6305823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6225822, + "inode": 527799, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4533", + "xusr": false, + "atime": 1436810541.6225822, + "isdir": false, + "ctime": 1436810541.6225822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8815823, + "inode": 524336, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1070", + "xusr": false, + "atime": 1436810538.8815823, + "isdir": false, + "ctime": 1436810538.8815823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6125822, + "inode": 527785, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4519", + "xusr": false, + "atime": 1436810541.6125822, + "isdir": false, + "ctime": 1436810541.6125822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1845822, + "inode": 527237, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3971", + "xusr": false, + "atime": 1436810541.1845822, + "isdir": false, + "ctime": 1436810541.1845822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5195823, + "inode": 523854, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/588", + "xusr": false, + "atime": 1436810538.5195823, + "isdir": false, + "ctime": 1436810538.5195823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6305823, + "inode": 527809, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4543", + "xusr": false, + "atime": 1436810541.6305823, + "isdir": false, + "ctime": 1436810541.6305823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3535824, + "inode": 524987, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1721", + "xusr": false, + "atime": 1436810539.3535824, + "isdir": false, + "ctime": 1436810539.3535824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6595824, + "inode": 526508, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3242", + "xusr": false, + "atime": 1436810540.6595824, + "isdir": false, + "ctime": 1436810540.6595824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8875823, + "inode": 525574, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2308", + "xusr": false, + "atime": 1436810539.8875823, + "isdir": false, + "ctime": 1436810539.8875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3925824, + "inode": 526182, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2916", + "xusr": false, + "atime": 1436810540.3925824, + "isdir": false, + "ctime": 1436810540.3925824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1595824, + "inode": 523398, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/132", + "xusr": false, + "atime": 1436810538.1595824, + "isdir": false, + "ctime": 1436810538.1595824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6615822, + "inode": 527851, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4585", + "xusr": false, + "atime": 1436810541.6615822, + "isdir": false, + "ctime": 1436810541.6615822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2575824, + "inode": 524868, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1602", + "xusr": false, + "atime": 1436810539.2575824, + "isdir": false, + "ctime": 1436810539.2575824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8835824, + "inode": 528156, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4890", + "xusr": false, + "atime": 1436810541.8835824, + "isdir": false, + "ctime": 1436810541.8835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8535824, + "inode": 526780, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3514", + "xusr": false, + "atime": 1436810540.8535824, + "isdir": false, + "ctime": 1436810540.8535824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2135823, + "inode": 524805, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1539", + "xusr": false, + "atime": 1436810539.2135823, + "isdir": false, + "ctime": 1436810539.2135823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2985823, + "inode": 523597, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/331", + "xusr": false, + "atime": 1436810538.2985823, + "isdir": false, + "ctime": 1436810538.2985823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6645823, + "inode": 524052, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/786", + "xusr": false, + "atime": 1436810538.6645823, + "isdir": false, + "ctime": 1436810538.6645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2855823, + "inode": 523579, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/313", + "xusr": false, + "atime": 1436810538.2855823, + "isdir": false, + "ctime": 1436810538.2855823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9065824, + "inode": 524371, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1105", + "xusr": false, + "atime": 1436810538.9065824, + "isdir": false, + "ctime": 1436810538.9065824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8335824, + "inode": 524272, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1006", + "xusr": false, + "atime": 1436810538.8335824, + "isdir": false, + "ctime": 1436810538.8335824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8455822, + "inode": 525515, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2249", + "xusr": false, + "atime": 1436810539.8455822, + "isdir": false, + "ctime": 1436810539.8455822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9805822, + "inode": 526959, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3693", + "xusr": false, + "atime": 1436810540.9805822, + "isdir": false, + "ctime": 1436810540.9805822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6585822, + "inode": 525295, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2029", + "xusr": false, + "atime": 1436810539.6585822, + "isdir": false, + "ctime": 1436810539.6585822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0065823, + "inode": 525738, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2472", + "xusr": false, + "atime": 1436810540.0065823, + "isdir": false, + "ctime": 1436810540.0065823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4645822, + "inode": 527579, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4313", + "xusr": false, + "atime": 1436810541.4645822, + "isdir": false, + "ctime": 1436810541.4645822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2015824, + "inode": 525941, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2675", + "xusr": false, + "atime": 1436810540.2015824, + "isdir": false, + "ctime": 1436810540.2015824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2595823, + "inode": 524871, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1605", + "xusr": false, + "atime": 1436810539.2595823, + "isdir": false, + "ctime": 1436810539.2595823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7485824, + "inode": 524162, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/896", + "xusr": false, + "atime": 1436810538.7485824, + "isdir": false, + "ctime": 1436810538.7485824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2075822, + "inode": 525948, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2682", + "xusr": false, + "atime": 1436810540.2075822, + "isdir": false, + "ctime": 1436810540.2075822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5305824, + "inode": 526329, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3063", + "xusr": false, + "atime": 1436810540.5305824, + "isdir": false, + "ctime": 1436810540.5305824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3835824, + "inode": 525008, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1742", + "xusr": false, + "atime": 1436810539.3835824, + "isdir": false, + "ctime": 1436810539.3835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9715824, + "inode": 525688, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2422", + "xusr": false, + "atime": 1436810539.9715824, + "isdir": false, + "ctime": 1436810539.9715824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5135822, + "inode": 527648, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4382", + "xusr": false, + "atime": 1436810541.5135822, + "isdir": false, + "ctime": 1436810541.5135822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9015822, + "inode": 524363, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1097", + "xusr": false, + "atime": 1436810538.9015822, + "isdir": false, + "ctime": 1436810538.9015822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9295824, + "inode": 525632, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2366", + "xusr": false, + "atime": 1436810539.9295824, + "isdir": false, + "ctime": 1436810539.9295824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2095823, + "inode": 524799, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1533", + "xusr": false, + "atime": 1436810539.2095823, + "isdir": false, + "ctime": 1436810539.2095823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4635823, + "inode": 526266, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3000", + "xusr": false, + "atime": 1436810540.4635823, + "isdir": false, + "ctime": 1436810540.4635823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7875824, + "inode": 525439, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2173", + "xusr": false, + "atime": 1436810539.7875824, + "isdir": false, + "ctime": 1436810539.7875824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4745822, + "inode": 525093, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1827", + "xusr": false, + "atime": 1436810539.4745822, + "isdir": false, + "ctime": 1436810539.4745822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9675822, + "inode": 524455, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1189", + "xusr": false, + "atime": 1436810538.9675822, + "isdir": false, + "ctime": 1436810538.9675822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2665823, + "inode": 523551, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/285", + "xusr": false, + "atime": 1436810538.2665823, + "isdir": false, + "ctime": 1436810538.2665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2835822, + "inode": 523576, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/310", + "xusr": false, + "atime": 1436810538.2835822, + "isdir": false, + "ctime": 1436810538.2835822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9205823, + "inode": 525620, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2354", + "xusr": false, + "atime": 1436810539.9205823, + "isdir": false, + "ctime": 1436810539.9205823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4275823, + "inode": 526230, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2964", + "xusr": false, + "atime": 1436810540.4275823, + "isdir": false, + "ctime": 1436810540.4275823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6735823, + "inode": 527868, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4602", + "xusr": false, + "atime": 1436810541.6735823, + "isdir": false, + "ctime": 1436810541.6735823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3945823, + "inode": 525018, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1752", + "xusr": false, + "atime": 1436810539.3945823, + "isdir": false, + "ctime": 1436810539.3945823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7175822, + "inode": 526590, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3324", + "xusr": false, + "atime": 1436810540.7175822, + "isdir": false, + "ctime": 1436810540.7175822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1195824, + "inode": 524670, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1404", + "xusr": false, + "atime": 1436810539.1195824, + "isdir": false, + "ctime": 1436810539.1195824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9855824, + "inode": 526966, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3700", + "xusr": false, + "atime": 1436810540.9855824, + "isdir": false, + "ctime": 1436810540.9855824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9195824, + "inode": 526873, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3607", + "xusr": false, + "atime": 1436810540.9195824, + "isdir": false, + "ctime": 1436810540.9195824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6895823, + "inode": 525322, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2056", + "xusr": false, + "atime": 1436810539.6895823, + "isdir": false, + "ctime": 1436810539.6895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0295823, + "inode": 525767, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2501", + "xusr": false, + "atime": 1436810540.0295823, + "isdir": false, + "ctime": 1436810540.0295823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5595822, + "inode": 523909, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/643", + "xusr": false, + "atime": 1436810538.5595822, + "isdir": false, + "ctime": 1436810538.5595822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8865824, + "inode": 526827, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3561", + "xusr": false, + "atime": 1436810540.8865824, + "isdir": false, + "ctime": 1436810540.8865824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9545822, + "inode": 524436, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1170", + "xusr": false, + "atime": 1436810538.9545822, + "isdir": false, + "ctime": 1436810538.9545822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4165823, + "inode": 527515, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4249", + "xusr": false, + "atime": 1436810541.4165823, + "isdir": false, + "ctime": 1436810541.4165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9115822, + "inode": 528196, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4930", + "xusr": false, + "atime": 1436810541.9115822, + "isdir": false, + "ctime": 1436810541.9115822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2055824, + "inode": 523466, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/200", + "xusr": false, + "atime": 1436810538.2055824, + "isdir": false, + "ctime": 1436810538.2055824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7955823, + "inode": 524220, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/954", + "xusr": false, + "atime": 1436810538.7955823, + "isdir": false, + "ctime": 1436810538.7955823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4095824, + "inode": 525035, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1769", + "xusr": false, + "atime": 1436810539.4095824, + "isdir": false, + "ctime": 1436810539.4095824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1915822, + "inode": 525931, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2665", + "xusr": false, + "atime": 1436810540.1915822, + "isdir": false, + "ctime": 1436810540.1915822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9105823, + "inode": 526860, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3594", + "xusr": false, + "atime": 1436810540.9105823, + "isdir": false, + "ctime": 1436810540.9105823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7445824, + "inode": 525382, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2116", + "xusr": false, + "atime": 1436810539.7445824, + "isdir": false, + "ctime": 1436810539.7445824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7035823, + "inode": 526570, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3304", + "xusr": false, + "atime": 1436810540.7035823, + "isdir": false, + "ctime": 1436810540.7035823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4395823, + "inode": 526245, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2979", + "xusr": false, + "atime": 1436810540.4395823, + "isdir": false, + "ctime": 1436810540.4395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7515824, + "inode": 527975, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4709", + "xusr": false, + "atime": 1436810541.7515824, + "isdir": false, + "ctime": 1436810541.7515824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5855823, + "inode": 525211, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1945", + "xusr": false, + "atime": 1436810539.5855823, + "isdir": false, + "ctime": 1436810539.5855823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0815823, + "inode": 527097, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3831", + "xusr": false, + "atime": 1436810541.0815823, + "isdir": false, + "ctime": 1436810541.0815823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4385824, + "inode": 526244, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2978", + "xusr": false, + "atime": 1436810540.4385824, + "isdir": false, + "ctime": 1436810540.4385824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9855824, + "inode": 524480, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1214", + "xusr": false, + "atime": 1436810538.9855824, + "isdir": false, + "ctime": 1436810538.9855824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3365824, + "inode": 524968, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1702", + "xusr": false, + "atime": 1436810539.3365824, + "isdir": false, + "ctime": 1436810539.3365824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4185822, + "inode": 525047, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1781", + "xusr": false, + "atime": 1436810539.4185822, + "isdir": false, + "ctime": 1436810539.4185822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7925823, + "inode": 524216, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/950", + "xusr": false, + "atime": 1436810538.7925823, + "isdir": false, + "ctime": 1436810538.7925823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4455824, + "inode": 526250, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2984", + "xusr": false, + "atime": 1436810540.4455824, + "isdir": false, + "ctime": 1436810540.4455824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9985824, + "inode": 526983, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3717", + "xusr": false, + "atime": 1436810540.9985824, + "isdir": false, + "ctime": 1436810540.9985824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9115822, + "inode": 524378, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1112", + "xusr": false, + "atime": 1436810538.9115822, + "isdir": false, + "ctime": 1436810538.9115822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5175824, + "inode": 525136, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1870", + "xusr": false, + "atime": 1436810539.5175824, + "isdir": false, + "ctime": 1436810539.5175824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8055823, + "inode": 526713, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3447", + "xusr": false, + "atime": 1436810540.8055823, + "isdir": false, + "ctime": 1436810540.8055823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8485823, + "inode": 526773, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3507", + "xusr": false, + "atime": 1436810540.8485823, + "isdir": false, + "ctime": 1436810540.8485823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2485824, + "inode": 523525, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/259", + "xusr": false, + "atime": 1436810538.2485824, + "isdir": false, + "ctime": 1436810538.2485824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2435822, + "inode": 524848, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1582", + "xusr": false, + "atime": 1436810539.2435822, + "isdir": false, + "ctime": 1436810539.2435822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2275822, + "inode": 523496, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/230", + "xusr": false, + "atime": 1436810538.2275822, + "isdir": false, + "ctime": 1436810538.2275822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7705822, + "inode": 526663, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3397", + "xusr": false, + "atime": 1436810540.7705822, + "isdir": false, + "ctime": 1436810540.7705822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0915823, + "inode": 527111, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3845", + "xusr": false, + "atime": 1436810541.0915823, + "isdir": false, + "ctime": 1436810541.0915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6405823, + "inode": 524019, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/753", + "xusr": false, + "atime": 1436810538.6405823, + "isdir": false, + "ctime": 1436810538.6405823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2675824, + "inode": 527352, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4086", + "xusr": false, + "atime": 1436810541.2675824, + "isdir": false, + "ctime": 1436810541.2675824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2585824, + "inode": 527340, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4074", + "xusr": false, + "atime": 1436810541.2585824, + "isdir": false, + "ctime": 1436810541.2585824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5455823, + "inode": 526349, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3083", + "xusr": false, + "atime": 1436810540.5455823, + "isdir": false, + "ctime": 1436810540.5455823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1545823, + "inode": 525893, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2627", + "xusr": false, + "atime": 1436810540.1545823, + "isdir": false, + "ctime": 1436810540.1545823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0615823, + "inode": 527069, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3803", + "xusr": false, + "atime": 1436810541.0615823, + "isdir": false, + "ctime": 1436810541.0615823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8085823, + "inode": 524238, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/972", + "xusr": false, + "atime": 1436810538.8085823, + "isdir": false, + "ctime": 1436810538.8085823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6355822, + "inode": 525271, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2005", + "xusr": false, + "atime": 1436810539.6355822, + "isdir": false, + "ctime": 1436810539.6355822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6365824, + "inode": 526476, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3210", + "xusr": false, + "atime": 1436810540.6365824, + "isdir": false, + "ctime": 1436810540.6365824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6015823, + "inode": 527769, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4503", + "xusr": false, + "atime": 1436810541.6015823, + "isdir": false, + "ctime": 1436810541.6015823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6905823, + "inode": 526552, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3286", + "xusr": false, + "atime": 1436810540.6905823, + "isdir": false, + "ctime": 1436810540.6905823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1605823, + "inode": 527206, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3940", + "xusr": false, + "atime": 1436810541.1605823, + "isdir": false, + "ctime": 1436810541.1605823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7925823, + "inode": 528032, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4766", + "xusr": false, + "atime": 1436810541.7925823, + "isdir": false, + "ctime": 1436810541.7925823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2165823, + "inode": 524810, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1544", + "xusr": false, + "atime": 1436810539.2165823, + "isdir": false, + "ctime": 1436810539.2165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0345824, + "inode": 524548, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1282", + "xusr": false, + "atime": 1436810539.0345824, + "isdir": false, + "ctime": 1436810539.0345824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4145823, + "inode": 526213, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2947", + "xusr": false, + "atime": 1436810540.4145823, + "isdir": false, + "ctime": 1436810540.4145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9235823, + "inode": 524395, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1129", + "xusr": false, + "atime": 1436810538.9235823, + "isdir": false, + "ctime": 1436810538.9235823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8385823, + "inode": 525505, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2239", + "xusr": false, + "atime": 1436810539.8385823, + "isdir": false, + "ctime": 1436810539.8385823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9945824, + "inode": 525720, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2454", + "xusr": false, + "atime": 1436810539.9945824, + "isdir": false, + "ctime": 1436810539.9945824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9385824, + "inode": 526900, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3634", + "xusr": false, + "atime": 1436810540.9385824, + "isdir": false, + "ctime": 1436810540.9385824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3775823, + "inode": 523670, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/404", + "xusr": false, + "atime": 1436810538.3775823, + "isdir": false, + "ctime": 1436810538.3775823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0355823, + "inode": 525776, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2510", + "xusr": false, + "atime": 1436810540.0355823, + "isdir": false, + "ctime": 1436810540.0355823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0755823, + "inode": 524607, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1341", + "xusr": false, + "atime": 1436810539.0755823, + "isdir": false, + "ctime": 1436810539.0755823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7755823, + "inode": 524195, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/929", + "xusr": false, + "atime": 1436810538.7755823, + "isdir": false, + "ctime": 1436810538.7755823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7125823, + "inode": 524116, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/850", + "xusr": false, + "atime": 1436810538.7125823, + "isdir": false, + "ctime": 1436810538.7125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5765822, + "inode": 527734, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4468", + "xusr": false, + "atime": 1436810541.5765822, + "isdir": false, + "ctime": 1436810541.5765822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7275822, + "inode": 527942, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4676", + "xusr": false, + "atime": 1436810541.7275822, + "isdir": false, + "ctime": 1436810541.7275822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8885822, + "inode": 528163, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4897", + "xusr": false, + "atime": 1436810541.8885822, + "isdir": false, + "ctime": 1436810541.8885822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9775822, + "inode": 524469, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1203", + "xusr": false, + "atime": 1436810538.9775822, + "isdir": false, + "ctime": 1436810538.9775822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1005824, + "inode": 527123, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3857", + "xusr": false, + "atime": 1436810541.1005824, + "isdir": false, + "ctime": 1436810541.1005824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7525823, + "inode": 526639, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3373", + "xusr": false, + "atime": 1436810540.7525823, + "isdir": false, + "ctime": 1436810540.7525823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5465822, + "inode": 526351, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3085", + "xusr": false, + "atime": 1436810540.5465822, + "isdir": false, + "ctime": 1436810540.5465822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1705823, + "inode": 525909, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2643", + "xusr": false, + "atime": 1436810540.1705823, + "isdir": false, + "ctime": 1436810540.1705823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6225822, + "inode": 526456, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3190", + "xusr": false, + "atime": 1436810540.6225822, + "isdir": false, + "ctime": 1436810540.6225822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3325822, + "inode": 526097, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2831", + "xusr": false, + "atime": 1436810540.3325822, + "isdir": false, + "ctime": 1436810540.3325822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1785824, + "inode": 523426, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/160", + "xusr": false, + "atime": 1436810538.1785824, + "isdir": false, + "ctime": 1436810538.1785824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0085824, + "inode": 524511, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1245", + "xusr": false, + "atime": 1436810539.0085824, + "isdir": false, + "ctime": 1436810539.0085824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2645824, + "inode": 527348, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4082", + "xusr": false, + "atime": 1436810541.2645824, + "isdir": false, + "ctime": 1436810541.2645824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5855823, + "inode": 527747, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4481", + "xusr": false, + "atime": 1436810541.5855823, + "isdir": false, + "ctime": 1436810541.5855823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8605824, + "inode": 526790, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3524", + "xusr": false, + "atime": 1436810540.8605824, + "isdir": false, + "ctime": 1436810540.8605824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5805824, + "inode": 527740, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4474", + "xusr": false, + "atime": 1436810541.5805824, + "isdir": false, + "ctime": 1436810541.5805824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2705822, + "inode": 526019, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2753", + "xusr": false, + "atime": 1436810540.2705822, + "isdir": false, + "ctime": 1436810540.2705822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1015823, + "inode": 523318, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/52", + "xusr": false, + "atime": 1436810538.1015823, + "isdir": false, + "ctime": 1436810538.1015823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2035823, + "inode": 523462, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/196", + "xusr": false, + "atime": 1436810538.2035823, + "isdir": false, + "ctime": 1436810538.2035823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1025822, + "inode": 527126, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3860", + "xusr": false, + "atime": 1436810541.1025822, + "isdir": false, + "ctime": 1436810541.1025822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4015822, + "inode": 525026, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1760", + "xusr": false, + "atime": 1436810539.4015822, + "isdir": false, + "ctime": 1436810539.4015822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2125823, + "inode": 524804, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1538", + "xusr": false, + "atime": 1436810539.2125823, + "isdir": false, + "ctime": 1436810539.2125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9135823, + "inode": 525610, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2344", + "xusr": false, + "atime": 1436810539.9135823, + "isdir": false, + "ctime": 1436810539.9135823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3105824, + "inode": 527409, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4143", + "xusr": false, + "atime": 1436810541.3105824, + "isdir": false, + "ctime": 1436810541.3105824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1355822, + "inode": 525875, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2609", + "xusr": false, + "atime": 1436810540.1355822, + "isdir": false, + "ctime": 1436810540.1355822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0795822, + "inode": 525823, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2557", + "xusr": false, + "atime": 1436810540.0795822, + "isdir": false, + "ctime": 1436810540.0795822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0275824, + "inode": 524538, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1272", + "xusr": false, + "atime": 1436810539.0275824, + "isdir": false, + "ctime": 1436810539.0275824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9405823, + "inode": 528236, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4970", + "xusr": false, + "atime": 1436810541.9405823, + "isdir": false, + "ctime": 1436810541.9405823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9985824, + "inode": 525726, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2460", + "xusr": false, + "atime": 1436810539.9985824, + "isdir": false, + "ctime": 1436810539.9985824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3605824, + "inode": 524990, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1724", + "xusr": false, + "atime": 1436810539.3605824, + "isdir": false, + "ctime": 1436810539.3605824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8115823, + "inode": 525467, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2201", + "xusr": false, + "atime": 1436810539.8115823, + "isdir": false, + "ctime": 1436810539.8115823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1755824, + "inode": 523422, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/156", + "xusr": false, + "atime": 1436810538.1755824, + "isdir": false, + "ctime": 1436810538.1755824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6785824, + "inode": 526534, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3268", + "xusr": false, + "atime": 1436810540.6785824, + "isdir": false, + "ctime": 1436810540.6785824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4195824, + "inode": 527519, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4253", + "xusr": false, + "atime": 1436810541.4195824, + "isdir": false, + "ctime": 1436810541.4195824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5395823, + "inode": 526341, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3075", + "xusr": false, + "atime": 1436810540.5395823, + "isdir": false, + "ctime": 1436810540.5395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3215823, + "inode": 526082, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2816", + "xusr": false, + "atime": 1436810540.3215823, + "isdir": false, + "ctime": 1436810540.3215823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6335824, + "inode": 526472, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3206", + "xusr": false, + "atime": 1436810540.6335824, + "isdir": false, + "ctime": 1436810540.6335824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1575823, + "inode": 527202, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3936", + "xusr": false, + "atime": 1436810541.1575823, + "isdir": false, + "ctime": 1436810541.1575823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7235823, + "inode": 526599, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3333", + "xusr": false, + "atime": 1436810540.7235823, + "isdir": false, + "ctime": 1436810540.7235823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2715824, + "inode": 523558, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/292", + "xusr": false, + "atime": 1436810538.2715824, + "isdir": false, + "ctime": 1436810538.2715824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1465824, + "inode": 523381, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/115", + "xusr": false, + "atime": 1436810538.1465824, + "isdir": false, + "ctime": 1436810538.1465824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7965822, + "inode": 524221, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/955", + "xusr": false, + "atime": 1436810538.7965822, + "isdir": false, + "ctime": 1436810538.7965822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5915823, + "inode": 523952, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/686", + "xusr": false, + "atime": 1436810538.5915823, + "isdir": false, + "ctime": 1436810538.5915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8015823, + "inode": 524229, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/963", + "xusr": false, + "atime": 1436810538.8015823, + "isdir": false, + "ctime": 1436810538.8015823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2745824, + "inode": 523563, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/297", + "xusr": false, + "atime": 1436810538.2745824, + "isdir": false, + "ctime": 1436810538.2745824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1895823, + "inode": 524770, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1504", + "xusr": false, + "atime": 1436810539.1895823, + "isdir": false, + "ctime": 1436810539.1895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0375824, + "inode": 525779, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2513", + "xusr": false, + "atime": 1436810540.0375824, + "isdir": false, + "ctime": 1436810540.0375824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6465824, + "inode": 524027, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/761", + "xusr": false, + "atime": 1436810538.6465824, + "isdir": false, + "ctime": 1436810538.6465824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5735824, + "inode": 525199, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1933", + "xusr": false, + "atime": 1436810539.5735824, + "isdir": false, + "ctime": 1436810539.5735824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8585823, + "inode": 525533, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2267", + "xusr": false, + "atime": 1436810539.8585823, + "isdir": false, + "ctime": 1436810539.8585823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5745823, + "inode": 526389, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3123", + "xusr": false, + "atime": 1436810540.5745823, + "isdir": false, + "ctime": 1436810540.5745823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9325824, + "inode": 528224, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4958", + "xusr": false, + "atime": 1436810541.9325824, + "isdir": false, + "ctime": 1436810541.9325824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7635822, + "inode": 527991, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4725", + "xusr": false, + "atime": 1436810541.7635822, + "isdir": false, + "ctime": 1436810541.7635822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5635824, + "inode": 525186, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1920", + "xusr": false, + "atime": 1436810539.5635824, + "isdir": false, + "ctime": 1436810539.5635824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6155822, + "inode": 523985, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/719", + "xusr": false, + "atime": 1436810538.6155822, + "isdir": false, + "ctime": 1436810538.6155822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6235824, + "inode": 526458, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3192", + "xusr": false, + "atime": 1436810540.6235824, + "isdir": false, + "ctime": 1436810540.6235824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9675822, + "inode": 526940, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3674", + "xusr": false, + "atime": 1436810540.9675822, + "isdir": false, + "ctime": 1436810540.9675822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2395823, + "inode": 527314, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4048", + "xusr": false, + "atime": 1436810541.2395823, + "isdir": false, + "ctime": 1436810541.2395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9155824, + "inode": 526868, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3602", + "xusr": false, + "atime": 1436810540.9155824, + "isdir": false, + "ctime": 1436810540.9155824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5085824, + "inode": 527641, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4375", + "xusr": false, + "atime": 1436810541.5085824, + "isdir": false, + "ctime": 1436810541.5085824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4195824, + "inode": 525048, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1782", + "xusr": false, + "atime": 1436810539.4195824, + "isdir": false, + "ctime": 1436810539.4195824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9715824, + "inode": 524460, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1194", + "xusr": false, + "atime": 1436810538.9715824, + "isdir": false, + "ctime": 1436810538.9715824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4465823, + "inode": 527555, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4289", + "xusr": false, + "atime": 1436810541.4465823, + "isdir": false, + "ctime": 1436810541.4465823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0625823, + "inode": 524588, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1322", + "xusr": false, + "atime": 1436810539.0625823, + "isdir": false, + "ctime": 1436810539.0625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4735823, + "inode": 523790, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/524", + "xusr": false, + "atime": 1436810538.4735823, + "isdir": false, + "ctime": 1436810538.4735823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9415822, + "inode": 524418, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1152", + "xusr": false, + "atime": 1436810538.9415822, + "isdir": false, + "ctime": 1436810538.9415822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1845822, + "inode": 525922, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2656", + "xusr": false, + "atime": 1436810540.1845822, + "isdir": false, + "ctime": 1436810540.1845822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3005824, + "inode": 524930, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1664", + "xusr": false, + "atime": 1436810539.3005824, + "isdir": false, + "ctime": 1436810539.3005824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6845822, + "inode": 526543, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3277", + "xusr": false, + "atime": 1436810540.6845822, + "isdir": false, + "ctime": 1436810540.6845822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6875823, + "inode": 525321, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2055", + "xusr": false, + "atime": 1436810539.6875823, + "isdir": false, + "ctime": 1436810539.6875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7375822, + "inode": 524147, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/881", + "xusr": false, + "atime": 1436810538.7375822, + "isdir": false, + "ctime": 1436810538.7375822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3735824, + "inode": 526154, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2888", + "xusr": false, + "atime": 1436810540.3735824, + "isdir": false, + "ctime": 1436810540.3735824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3465824, + "inode": 526117, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2851", + "xusr": false, + "atime": 1436810540.3465824, + "isdir": false, + "ctime": 1436810540.3465824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8595824, + "inode": 526789, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3523", + "xusr": false, + "atime": 1436810540.8595824, + "isdir": false, + "ctime": 1436810540.8595824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0745823, + "inode": 527088, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3822", + "xusr": false, + "atime": 1436810541.0745823, + "isdir": false, + "ctime": 1436810541.0745823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1305823, + "inode": 523358, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/92", + "xusr": false, + "atime": 1436810538.1305823, + "isdir": false, + "ctime": 1436810538.1305823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8285823, + "inode": 528080, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4814", + "xusr": false, + "atime": 1436810541.8285823, + "isdir": false, + "ctime": 1436810541.8285823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4845824, + "inode": 526290, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3024", + "xusr": false, + "atime": 1436810540.4845824, + "isdir": false, + "ctime": 1436810540.4845824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0875823, + "inode": 524625, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1359", + "xusr": false, + "atime": 1436810539.0875823, + "isdir": false, + "ctime": 1436810539.0875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7605822, + "inode": 527987, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4721", + "xusr": false, + "atime": 1436810541.7605822, + "isdir": false, + "ctime": 1436810541.7605822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6295824, + "inode": 527808, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4542", + "xusr": false, + "atime": 1436810541.6295824, + "isdir": false, + "ctime": 1436810541.6295824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1105824, + "inode": 527138, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3872", + "xusr": false, + "atime": 1436810541.1105824, + "isdir": false, + "ctime": 1436810541.1105824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4035823, + "inode": 527497, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4231", + "xusr": false, + "atime": 1436810541.4035823, + "isdir": false, + "ctime": 1436810541.4035823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7645824, + "inode": 525406, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2140", + "xusr": false, + "atime": 1436810539.7645824, + "isdir": false, + "ctime": 1436810539.7645824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0155823, + "inode": 527006, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3740", + "xusr": false, + "atime": 1436810541.0155823, + "isdir": false, + "ctime": 1436810541.0155823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4765823, + "inode": 527596, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4330", + "xusr": false, + "atime": 1436810541.4765823, + "isdir": false, + "ctime": 1436810541.4765823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2925823, + "inode": 523588, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/322", + "xusr": false, + "atime": 1436810538.2925823, + "isdir": false, + "ctime": 1436810538.2925823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7815824, + "inode": 528017, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4751", + "xusr": false, + "atime": 1436810541.7815824, + "isdir": false, + "ctime": 1436810541.7815824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1045823, + "inode": 525847, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2581", + "xusr": false, + "atime": 1436810540.1045823, + "isdir": false, + "ctime": 1436810540.1045823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8795824, + "inode": 526817, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3551", + "xusr": false, + "atime": 1436810540.8795824, + "isdir": false, + "ctime": 1436810540.8795824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7815824, + "inode": 525430, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2164", + "xusr": false, + "atime": 1436810539.7815824, + "isdir": false, + "ctime": 1436810539.7815824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5355823, + "inode": 527677, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4411", + "xusr": false, + "atime": 1436810541.5355823, + "isdir": false, + "ctime": 1436810541.5355823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1695824, + "inode": 527217, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3951", + "xusr": false, + "atime": 1436810541.1695824, + "isdir": false, + "ctime": 1436810541.1695824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4155824, + "inode": 526214, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2948", + "xusr": false, + "atime": 1436810540.4155824, + "isdir": false, + "ctime": 1436810540.4155824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7255824, + "inode": 525361, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2095", + "xusr": false, + "atime": 1436810539.7255824, + "isdir": false, + "ctime": 1436810539.7255824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7285824, + "inode": 524136, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/870", + "xusr": false, + "atime": 1436810538.7285824, + "isdir": false, + "ctime": 1436810538.7285824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1155822, + "inode": 524665, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1399", + "xusr": false, + "atime": 1436810539.1155822, + "isdir": false, + "ctime": 1436810539.1155822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2525823, + "inode": 526001, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2735", + "xusr": false, + "atime": 1436810540.2525823, + "isdir": false, + "ctime": 1436810540.2525823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1075823, + "inode": 527133, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3867", + "xusr": false, + "atime": 1436810541.1075823, + "isdir": false, + "ctime": 1436810541.1075823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9535823, + "inode": 526920, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3654", + "xusr": false, + "atime": 1436810540.9535823, + "isdir": false, + "ctime": 1436810540.9535823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3435824, + "inode": 523641, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/375", + "xusr": false, + "atime": 1436810538.3435824, + "isdir": false, + "ctime": 1436810538.3435824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8455822, + "inode": 524288, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1022", + "xusr": false, + "atime": 1436810538.8455822, + "isdir": false, + "ctime": 1436810538.8455822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8255823, + "inode": 526741, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3475", + "xusr": false, + "atime": 1436810540.8255823, + "isdir": false, + "ctime": 1436810540.8255823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6765823, + "inode": 526531, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3265", + "xusr": false, + "atime": 1436810540.6765823, + "isdir": false, + "ctime": 1436810540.6765823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9125824, + "inode": 526863, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3597", + "xusr": false, + "atime": 1436810540.9125824, + "isdir": false, + "ctime": 1436810540.9125824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6935823, + "inode": 526555, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3289", + "xusr": false, + "atime": 1436810540.6935823, + "isdir": false, + "ctime": 1436810540.6935823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9265823, + "inode": 525627, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2361", + "xusr": false, + "atime": 1436810539.9265823, + "isdir": false, + "ctime": 1436810539.9265823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4905822, + "inode": 525111, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1845", + "xusr": false, + "atime": 1436810539.4905822, + "isdir": false, + "ctime": 1436810539.4905822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7885823, + "inode": 524211, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/945", + "xusr": false, + "atime": 1436810538.7885823, + "isdir": false, + "ctime": 1436810538.7885823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3345823, + "inode": 526100, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2834", + "xusr": false, + "atime": 1436810540.3345823, + "isdir": false, + "ctime": 1436810540.3345823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1315823, + "inode": 523359, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/93", + "xusr": false, + "atime": 1436810538.1315823, + "isdir": false, + "ctime": 1436810538.1315823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2535822, + "inode": 524863, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1597", + "xusr": false, + "atime": 1436810539.2535822, + "isdir": false, + "ctime": 1436810539.2535822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2005823, + "inode": 523458, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/192", + "xusr": false, + "atime": 1436810538.2005823, + "isdir": false, + "ctime": 1436810538.2005823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8575823, + "inode": 528119, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4853", + "xusr": false, + "atime": 1436810541.8575823, + "isdir": false, + "ctime": 1436810541.8575823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5205822, + "inode": 527657, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4391", + "xusr": false, + "atime": 1436810541.5205822, + "isdir": false, + "ctime": 1436810541.5205822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4755824, + "inode": 525094, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1828", + "xusr": false, + "atime": 1436810539.4755824, + "isdir": false, + "ctime": 1436810539.4755824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1855824, + "inode": 523437, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/171", + "xusr": false, + "atime": 1436810538.1855824, + "isdir": false, + "ctime": 1436810538.1855824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6625824, + "inode": 527852, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4586", + "xusr": false, + "atime": 1436810541.6625824, + "isdir": false, + "ctime": 1436810541.6625824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5035822, + "inode": 527633, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4367", + "xusr": false, + "atime": 1436810541.5035822, + "isdir": false, + "ctime": 1436810541.5035822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4995823, + "inode": 523826, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/560", + "xusr": false, + "atime": 1436810538.4995823, + "isdir": false, + "ctime": 1436810538.4995823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8175824, + "inode": 525475, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2209", + "xusr": false, + "atime": 1436810539.8175824, + "isdir": false, + "ctime": 1436810539.8175824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8865824, + "inode": 528160, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4894", + "xusr": false, + "atime": 1436810541.8865824, + "isdir": false, + "ctime": 1436810541.8865824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6565824, + "inode": 527844, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4578", + "xusr": false, + "atime": 1436810541.6565824, + "isdir": false, + "ctime": 1436810541.6565824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2225823, + "inode": 527290, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4024", + "xusr": false, + "atime": 1436810541.2225823, + "isdir": false, + "ctime": 1436810541.2225823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1915822, + "inode": 523445, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/179", + "xusr": false, + "atime": 1436810538.1915822, + "isdir": false, + "ctime": 1436810538.1915822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1855824, + "inode": 525923, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2657", + "xusr": false, + "atime": 1436810540.1855824, + "isdir": false, + "ctime": 1436810540.1855824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8455822, + "inode": 528103, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4837", + "xusr": false, + "atime": 1436810541.8455822, + "isdir": false, + "ctime": 1436810541.8455822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4175823, + "inode": 523719, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/453", + "xusr": false, + "atime": 1436810538.4175823, + "isdir": false, + "ctime": 1436810538.4175823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1695824, + "inode": 525908, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2642", + "xusr": false, + "atime": 1436810540.1695824, + "isdir": false, + "ctime": 1436810540.1695824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8295822, + "inode": 526746, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3480", + "xusr": false, + "atime": 1436810540.8295822, + "isdir": false, + "ctime": 1436810540.8295822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5735824, + "inode": 523927, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/661", + "xusr": false, + "atime": 1436810538.5735824, + "isdir": false, + "ctime": 1436810538.5735824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0505824, + "inode": 525795, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2529", + "xusr": false, + "atime": 1436810540.0505824, + "isdir": false, + "ctime": 1436810540.0505824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6045823, + "inode": 525230, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1964", + "xusr": false, + "atime": 1436810539.6045823, + "isdir": false, + "ctime": 1436810539.6045823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6005824, + "inode": 526426, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3160", + "xusr": false, + "atime": 1436810540.6005824, + "isdir": false, + "ctime": 1436810540.6005824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1735823, + "inode": 524748, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1482", + "xusr": false, + "atime": 1436810539.1735823, + "isdir": false, + "ctime": 1436810539.1735823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6255822, + "inode": 525257, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1991", + "xusr": false, + "atime": 1436810539.6255822, + "isdir": false, + "ctime": 1436810539.6255822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1095824, + "inode": 527136, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3870", + "xusr": false, + "atime": 1436810541.1095824, + "isdir": false, + "ctime": 1436810541.1095824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9425824, + "inode": 526906, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3640", + "xusr": false, + "atime": 1436810540.9425824, + "isdir": false, + "ctime": 1436810540.9425824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5705824, + "inode": 526383, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3117", + "xusr": false, + "atime": 1436810540.5705824, + "isdir": false, + "ctime": 1436810540.5705824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8315823, + "inode": 525495, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2229", + "xusr": false, + "atime": 1436810539.8315823, + "isdir": false, + "ctime": 1436810539.8315823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4235823, + "inode": 527524, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4258", + "xusr": false, + "atime": 1436810541.4235823, + "isdir": false, + "ctime": 1436810541.4235823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5585823, + "inode": 526367, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3101", + "xusr": false, + "atime": 1436810540.5585823, + "isdir": false, + "ctime": 1436810540.5585823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6375823, + "inode": 527819, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4553", + "xusr": false, + "atime": 1436810541.6375823, + "isdir": false, + "ctime": 1436810541.6375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9505823, + "inode": 526916, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3650", + "xusr": false, + "atime": 1436810540.9505823, + "isdir": false, + "ctime": 1436810540.9505823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5715823, + "inode": 527727, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4461", + "xusr": false, + "atime": 1436810541.5715823, + "isdir": false, + "ctime": 1436810541.5715823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2375822, + "inode": 524839, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1573", + "xusr": false, + "atime": 1436810539.2375822, + "isdir": false, + "ctime": 1436810539.2375822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3425822, + "inode": 526111, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2845", + "xusr": false, + "atime": 1436810540.3425822, + "isdir": false, + "ctime": 1436810540.3425822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9005823, + "inode": 525593, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2327", + "xusr": false, + "atime": 1436810539.9005823, + "isdir": false, + "ctime": 1436810539.9005823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8715823, + "inode": 524323, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1057", + "xusr": false, + "atime": 1436810538.8715823, + "isdir": false, + "ctime": 1436810538.8715823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3125823, + "inode": 527412, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4146", + "xusr": false, + "atime": 1436810541.3125823, + "isdir": false, + "ctime": 1436810541.3125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9915824, + "inode": 525716, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2450", + "xusr": false, + "atime": 1436810539.9915824, + "isdir": false, + "ctime": 1436810539.9915824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7345824, + "inode": 525370, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2104", + "xusr": false, + "atime": 1436810539.7345824, + "isdir": false, + "ctime": 1436810539.7345824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2335823, + "inode": 523504, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/238", + "xusr": false, + "atime": 1436810538.2335823, + "isdir": false, + "ctime": 1436810538.2335823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8515823, + "inode": 525523, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2257", + "xusr": false, + "atime": 1436810539.8515823, + "isdir": false, + "ctime": 1436810539.8515823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5865824, + "inode": 526406, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3140", + "xusr": false, + "atime": 1436810540.5865824, + "isdir": false, + "ctime": 1436810540.5865824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5535824, + "inode": 523900, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/634", + "xusr": false, + "atime": 1436810538.5535824, + "isdir": false, + "ctime": 1436810538.5535824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7695823, + "inode": 524188, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/922", + "xusr": false, + "atime": 1436810538.7695823, + "isdir": false, + "ctime": 1436810538.7695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1625824, + "inode": 527209, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3943", + "xusr": false, + "atime": 1436810541.1625824, + "isdir": false, + "ctime": 1436810541.1625824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7425823, + "inode": 526625, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3359", + "xusr": false, + "atime": 1436810540.7425823, + "isdir": false, + "ctime": 1436810540.7425823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8415823, + "inode": 526763, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3497", + "xusr": false, + "atime": 1436810540.8415823, + "isdir": false, + "ctime": 1436810540.8415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6505823, + "inode": 527836, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4570", + "xusr": false, + "atime": 1436810541.6505823, + "isdir": false, + "ctime": 1436810541.6505823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4475822, + "inode": 523754, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/488", + "xusr": false, + "atime": 1436810538.4475822, + "isdir": false, + "ctime": 1436810538.4475822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5355823, + "inode": 523876, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/610", + "xusr": false, + "atime": 1436810538.5355823, + "isdir": false, + "ctime": 1436810538.5355823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0215824, + "inode": 527014, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3748", + "xusr": false, + "atime": 1436810541.0215824, + "isdir": false, + "ctime": 1436810541.0215824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0495822, + "inode": 524570, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1304", + "xusr": false, + "atime": 1436810539.0495822, + "isdir": false, + "ctime": 1436810539.0495822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4115822, + "inode": 526208, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2942", + "xusr": false, + "atime": 1436810540.4115822, + "isdir": false, + "ctime": 1436810540.4115822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1895823, + "inode": 525928, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2662", + "xusr": false, + "atime": 1436810540.1895823, + "isdir": false, + "ctime": 1436810540.1895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3325822, + "inode": 523631, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/365", + "xusr": false, + "atime": 1436810538.3325822, + "isdir": false, + "ctime": 1436810538.3325822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7295823, + "inode": 526607, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3341", + "xusr": false, + "atime": 1436810540.7295823, + "isdir": false, + "ctime": 1436810540.7295823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5145824, + "inode": 525134, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1868", + "xusr": false, + "atime": 1436810539.5145824, + "isdir": false, + "ctime": 1436810539.5145824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9325824, + "inode": 524406, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1140", + "xusr": false, + "atime": 1436810538.9325824, + "isdir": false, + "ctime": 1436810538.9325824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1415823, + "inode": 525881, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2615", + "xusr": false, + "atime": 1436810540.1415823, + "isdir": false, + "ctime": 1436810540.1415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8345823, + "inode": 524274, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1008", + "xusr": false, + "atime": 1436810538.8345823, + "isdir": false, + "ctime": 1436810538.8345823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7405822, + "inode": 527960, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4694", + "xusr": false, + "atime": 1436810541.7405822, + "isdir": false, + "ctime": 1436810541.7405822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7685823, + "inode": 527998, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4732", + "xusr": false, + "atime": 1436810541.7685823, + "isdir": false, + "ctime": 1436810541.7685823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2385824, + "inode": 525984, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2718", + "xusr": false, + "atime": 1436810540.2385824, + "isdir": false, + "ctime": 1436810540.2385824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7795823, + "inode": 526676, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3410", + "xusr": false, + "atime": 1436810540.7795823, + "isdir": false, + "ctime": 1436810540.7795823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5415823, + "inode": 523883, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/617", + "xusr": false, + "atime": 1436810538.5415823, + "isdir": false, + "ctime": 1436810538.5415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7725823, + "inode": 526666, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3400", + "xusr": false, + "atime": 1436810540.7725823, + "isdir": false, + "ctime": 1436810540.7725823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0895822, + "inode": 524627, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1361", + "xusr": false, + "atime": 1436810539.0895822, + "isdir": false, + "ctime": 1436810539.0895822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3035824, + "inode": 523603, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/337", + "xusr": false, + "atime": 1436810538.3035824, + "isdir": false, + "ctime": 1436810538.3035824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3925824, + "inode": 526181, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2915", + "xusr": false, + "atime": 1436810540.3925824, + "isdir": false, + "ctime": 1436810540.3925824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6385822, + "inode": 524016, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/750", + "xusr": false, + "atime": 1436810538.6385822, + "isdir": false, + "ctime": 1436810538.6385822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2425823, + "inode": 525988, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2722", + "xusr": false, + "atime": 1436810540.2425823, + "isdir": false, + "ctime": 1436810540.2425823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4465823, + "inode": 525066, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1800", + "xusr": false, + "atime": 1436810539.4465823, + "isdir": false, + "ctime": 1436810539.4465823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8505824, + "inode": 525522, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2256", + "xusr": false, + "atime": 1436810539.8505824, + "isdir": false, + "ctime": 1436810539.8505824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5365822, + "inode": 527679, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4413", + "xusr": false, + "atime": 1436810541.5365822, + "isdir": false, + "ctime": 1436810541.5365822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9105823, + "inode": 524376, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1110", + "xusr": false, + "atime": 1436810538.9105823, + "isdir": false, + "ctime": 1436810538.9105823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6915822, + "inode": 526553, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3287", + "xusr": false, + "atime": 1436810540.6915822, + "isdir": false, + "ctime": 1436810540.6915822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5365822, + "inode": 523877, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/611", + "xusr": false, + "atime": 1436810538.5365822, + "isdir": false, + "ctime": 1436810538.5365822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7855823, + "inode": 526684, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3418", + "xusr": false, + "atime": 1436810540.7855823, + "isdir": false, + "ctime": 1436810540.7855823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6985824, + "inode": 526563, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3297", + "xusr": false, + "atime": 1436810540.6985824, + "isdir": false, + "ctime": 1436810540.6985824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4225824, + "inode": 525052, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1786", + "xusr": false, + "atime": 1436810539.4225824, + "isdir": false, + "ctime": 1436810539.4225824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2605822, + "inode": 523542, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/276", + "xusr": false, + "atime": 1436810538.2605822, + "isdir": false, + "ctime": 1436810538.2605822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9445822, + "inode": 526908, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3642", + "xusr": false, + "atime": 1436810540.9445822, + "isdir": false, + "ctime": 1436810540.9445822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7335823, + "inode": 526613, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3347", + "xusr": false, + "atime": 1436810540.7335823, + "isdir": false, + "ctime": 1436810540.7335823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0605824, + "inode": 525803, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2537", + "xusr": false, + "atime": 1436810540.0605824, + "isdir": false, + "ctime": 1436810540.0605824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5155823, + "inode": 527650, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4384", + "xusr": false, + "atime": 1436810541.5155823, + "isdir": false, + "ctime": 1436810541.5155823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5385823, + "inode": 525158, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1892", + "xusr": false, + "atime": 1436810539.5385823, + "isdir": false, + "ctime": 1436810539.5385823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8365824, + "inode": 524276, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1010", + "xusr": false, + "atime": 1436810538.8365824, + "isdir": false, + "ctime": 1436810538.8365824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3975823, + "inode": 523692, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/426", + "xusr": false, + "atime": 1436810538.3975823, + "isdir": false, + "ctime": 1436810538.3975823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1275823, + "inode": 524682, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1416", + "xusr": false, + "atime": 1436810539.1275823, + "isdir": false, + "ctime": 1436810539.1275823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9525824, + "inode": 525662, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2396", + "xusr": false, + "atime": 1436810539.9525824, + "isdir": false, + "ctime": 1436810539.9525824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2745824, + "inode": 524893, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1627", + "xusr": false, + "atime": 1436810539.2745824, + "isdir": false, + "ctime": 1436810539.2745824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4625823, + "inode": 527577, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4311", + "xusr": false, + "atime": 1436810541.4625823, + "isdir": false, + "ctime": 1436810541.4625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8645823, + "inode": 526795, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3529", + "xusr": false, + "atime": 1436810540.8645823, + "isdir": false, + "ctime": 1436810540.8645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2255824, + "inode": 524822, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1556", + "xusr": false, + "atime": 1436810539.2255824, + "isdir": false, + "ctime": 1436810539.2255824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8335824, + "inode": 525498, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2232", + "xusr": false, + "atime": 1436810539.8335824, + "isdir": false, + "ctime": 1436810539.8335824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0025823, + "inode": 526988, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3722", + "xusr": false, + "atime": 1436810541.0025823, + "isdir": false, + "ctime": 1436810541.0025823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3025823, + "inode": 523601, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/335", + "xusr": false, + "atime": 1436810538.3025823, + "isdir": false, + "ctime": 1436810538.3025823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0845823, + "inode": 524620, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1354", + "xusr": false, + "atime": 1436810539.0845823, + "isdir": false, + "ctime": 1436810539.0845823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0375824, + "inode": 524552, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1286", + "xusr": false, + "atime": 1436810539.0375824, + "isdir": false, + "ctime": 1436810539.0375824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6615822, + "inode": 526510, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3244", + "xusr": false, + "atime": 1436810540.6615822, + "isdir": false, + "ctime": 1436810540.6615822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2585824, + "inode": 524870, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1604", + "xusr": false, + "atime": 1436810539.2585824, + "isdir": false, + "ctime": 1436810539.2585824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8955822, + "inode": 525585, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2319", + "xusr": false, + "atime": 1436810539.8955822, + "isdir": false, + "ctime": 1436810539.8955822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4305823, + "inode": 527533, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4267", + "xusr": false, + "atime": 1436810541.4305823, + "isdir": false, + "ctime": 1436810541.4305823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6275823, + "inode": 525260, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1994", + "xusr": false, + "atime": 1436810539.6275823, + "isdir": false, + "ctime": 1436810539.6275823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1835823, + "inode": 525921, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2655", + "xusr": false, + "atime": 1436810540.1835823, + "isdir": false, + "ctime": 1436810540.1835823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1715822, + "inode": 524744, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1478", + "xusr": false, + "atime": 1436810539.1715822, + "isdir": false, + "ctime": 1436810539.1715822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9295824, + "inode": 528221, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4955", + "xusr": false, + "atime": 1436810541.9295824, + "isdir": false, + "ctime": 1436810541.9295824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1435823, + "inode": 525884, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2618", + "xusr": false, + "atime": 1436810540.1435823, + "isdir": false, + "ctime": 1436810540.1435823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8785822, + "inode": 526815, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3549", + "xusr": false, + "atime": 1436810540.8785822, + "isdir": false, + "ctime": 1436810540.8785822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9255824, + "inode": 525626, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2360", + "xusr": false, + "atime": 1436810539.9255824, + "isdir": false, + "ctime": 1436810539.9255824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4615824, + "inode": 526264, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2998", + "xusr": false, + "atime": 1436810540.4615824, + "isdir": false, + "ctime": 1436810540.4615824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7185824, + "inode": 527930, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4664", + "xusr": false, + "atime": 1436810541.7185824, + "isdir": false, + "ctime": 1436810541.7185824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9055824, + "inode": 528187, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4921", + "xusr": false, + "atime": 1436810541.9055824, + "isdir": false, + "ctime": 1436810541.9055824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8905823, + "inode": 528166, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4900", + "xusr": false, + "atime": 1436810541.8905823, + "isdir": false, + "ctime": 1436810541.8905823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3705823, + "inode": 526150, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2884", + "xusr": false, + "atime": 1436810540.3705823, + "isdir": false, + "ctime": 1436810540.3705823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2735822, + "inode": 524892, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1626", + "xusr": false, + "atime": 1436810539.2735822, + "isdir": false, + "ctime": 1436810539.2735822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5365822, + "inode": 526337, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3071", + "xusr": false, + "atime": 1436810540.5365822, + "isdir": false, + "ctime": 1436810540.5365822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0735824, + "inode": 527087, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3821", + "xusr": false, + "atime": 1436810541.0735824, + "isdir": false, + "ctime": 1436810541.0735824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7365823, + "inode": 524146, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/880", + "xusr": false, + "atime": 1436810538.7365823, + "isdir": false, + "ctime": 1436810538.7365823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6185822, + "inode": 526451, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3185", + "xusr": false, + "atime": 1436810540.6185822, + "isdir": false, + "ctime": 1436810540.6185822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1405823, + "inode": 524701, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1435", + "xusr": false, + "atime": 1436810539.1405823, + "isdir": false, + "ctime": 1436810539.1405823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9735823, + "inode": 524463, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1197", + "xusr": false, + "atime": 1436810538.9735823, + "isdir": false, + "ctime": 1436810538.9735823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0435822, + "inode": 527044, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3778", + "xusr": false, + "atime": 1436810541.0435822, + "isdir": false, + "ctime": 1436810541.0435822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2115824, + "inode": 524802, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1536", + "xusr": false, + "atime": 1436810539.2115824, + "isdir": false, + "ctime": 1436810539.2115824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9335823, + "inode": 526894, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3628", + "xusr": false, + "atime": 1436810540.9335823, + "isdir": false, + "ctime": 1436810540.9335823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4165823, + "inode": 523718, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/452", + "xusr": false, + "atime": 1436810538.4165823, + "isdir": false, + "ctime": 1436810538.4165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5725822, + "inode": 525198, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1932", + "xusr": false, + "atime": 1436810539.5725822, + "isdir": false, + "ctime": 1436810539.5725822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2925823, + "inode": 523589, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/323", + "xusr": false, + "atime": 1436810538.2925823, + "isdir": false, + "ctime": 1436810538.2925823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1835823, + "inode": 527235, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3969", + "xusr": false, + "atime": 1436810541.1835823, + "isdir": false, + "ctime": 1436810541.1835823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7485824, + "inode": 524161, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/895", + "xusr": false, + "atime": 1436810538.7485824, + "isdir": false, + "ctime": 1436810538.7485824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7345824, + "inode": 526614, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3348", + "xusr": false, + "atime": 1436810540.7345824, + "isdir": false, + "ctime": 1436810540.7345824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7125823, + "inode": 527922, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4656", + "xusr": false, + "atime": 1436810541.7125823, + "isdir": false, + "ctime": 1436810541.7125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8155823, + "inode": 524248, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/982", + "xusr": false, + "atime": 1436810538.8155823, + "isdir": false, + "ctime": 1436810538.8155823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7975824, + "inode": 525449, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2183", + "xusr": false, + "atime": 1436810539.7975824, + "isdir": false, + "ctime": 1436810539.7975824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8615823, + "inode": 525538, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2272", + "xusr": false, + "atime": 1436810539.8615823, + "isdir": false, + "ctime": 1436810539.8615823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9175823, + "inode": 525615, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2349", + "xusr": false, + "atime": 1436810539.9175823, + "isdir": false, + "ctime": 1436810539.9175823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7935822, + "inode": 524217, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/951", + "xusr": false, + "atime": 1436810538.7935822, + "isdir": false, + "ctime": 1436810538.7935822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5975823, + "inode": 523961, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/695", + "xusr": false, + "atime": 1436810538.5975823, + "isdir": false, + "ctime": 1436810538.5975823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9675822, + "inode": 524454, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1188", + "xusr": false, + "atime": 1436810538.9675822, + "isdir": false, + "ctime": 1436810538.9675822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3115823, + "inode": 527410, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4144", + "xusr": false, + "atime": 1436810541.3115823, + "isdir": false, + "ctime": 1436810541.3115823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3865824, + "inode": 526173, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2907", + "xusr": false, + "atime": 1436810540.3865824, + "isdir": false, + "ctime": 1436810540.3865824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4385824, + "inode": 527544, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4278", + "xusr": false, + "atime": 1436810541.4385824, + "isdir": false, + "ctime": 1436810541.4385824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9065824, + "inode": 526855, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3589", + "xusr": false, + "atime": 1436810540.9065824, + "isdir": false, + "ctime": 1436810540.9065824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1155822, + "inode": 523337, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/71", + "xusr": false, + "atime": 1436810538.1155822, + "isdir": false, + "ctime": 1436810538.1155822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6605823, + "inode": 525297, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2031", + "xusr": false, + "atime": 1436810539.6605823, + "isdir": false, + "ctime": 1436810539.6605823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4575822, + "inode": 527570, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4304", + "xusr": false, + "atime": 1436810541.4575822, + "isdir": false, + "ctime": 1436810541.4575822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0565822, + "inode": 527062, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3796", + "xusr": false, + "atime": 1436810541.0565822, + "isdir": false, + "ctime": 1436810541.0565822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9255824, + "inode": 528215, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4949", + "xusr": false, + "atime": 1436810541.9255824, + "isdir": false, + "ctime": 1436810541.9255824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8305824, + "inode": 524268, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1002", + "xusr": false, + "atime": 1436810538.8305824, + "isdir": false, + "ctime": 1436810538.8305824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9745822, + "inode": 525693, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2427", + "xusr": false, + "atime": 1436810539.9745822, + "isdir": false, + "ctime": 1436810539.9745822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1995823, + "inode": 527258, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3992", + "xusr": false, + "atime": 1436810541.1995823, + "isdir": false, + "ctime": 1436810541.1995823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8485823, + "inode": 524291, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1025", + "xusr": false, + "atime": 1436810538.8485823, + "isdir": false, + "ctime": 1436810538.8485823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2385824, + "inode": 523511, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/245", + "xusr": false, + "atime": 1436810538.2385824, + "isdir": false, + "ctime": 1436810538.2385824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5335822, + "inode": 526333, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3067", + "xusr": false, + "atime": 1436810540.5335822, + "isdir": false, + "ctime": 1436810540.5335822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8445823, + "inode": 525513, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2247", + "xusr": false, + "atime": 1436810539.8445823, + "isdir": false, + "ctime": 1436810539.8445823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5385823, + "inode": 525159, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1893", + "xusr": false, + "atime": 1436810539.5385823, + "isdir": false, + "ctime": 1436810539.5385823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8675823, + "inode": 528134, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4868", + "xusr": false, + "atime": 1436810541.8675823, + "isdir": false, + "ctime": 1436810541.8675823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2145822, + "inode": 524807, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1541", + "xusr": false, + "atime": 1436810539.2145822, + "isdir": false, + "ctime": 1436810539.2145822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7185824, + "inode": 525355, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2089", + "xusr": false, + "atime": 1436810539.7185824, + "isdir": false, + "ctime": 1436810539.7185824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5905824, + "inode": 527754, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4488", + "xusr": false, + "atime": 1436810541.5905824, + "isdir": false, + "ctime": 1436810541.5905824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6525824, + "inode": 527838, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4572", + "xusr": false, + "atime": 1436810541.6525824, + "isdir": false, + "ctime": 1436810541.6525824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2115824, + "inode": 523474, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/208", + "xusr": false, + "atime": 1436810538.2115824, + "isdir": false, + "ctime": 1436810538.2115824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4045823, + "inode": 526199, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2933", + "xusr": false, + "atime": 1436810540.4045823, + "isdir": false, + "ctime": 1436810540.4045823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5565822, + "inode": 523904, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/638", + "xusr": false, + "atime": 1436810538.5565822, + "isdir": false, + "ctime": 1436810538.5565822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9105823, + "inode": 526861, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3595", + "xusr": false, + "atime": 1436810540.9105823, + "isdir": false, + "ctime": 1436810540.9105823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4475822, + "inode": 526253, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2987", + "xusr": false, + "atime": 1436810540.4475822, + "isdir": false, + "ctime": 1436810540.4475822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1415823, + "inode": 527180, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3914", + "xusr": false, + "atime": 1436810541.1415823, + "isdir": false, + "ctime": 1436810541.1415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5425823, + "inode": 525164, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1898", + "xusr": false, + "atime": 1436810539.5425823, + "isdir": false, + "ctime": 1436810539.5425823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2265823, + "inode": 523494, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/228", + "xusr": false, + "atime": 1436810538.2265823, + "isdir": false, + "ctime": 1436810538.2265823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3285823, + "inode": 526091, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2825", + "xusr": false, + "atime": 1436810540.3285823, + "isdir": false, + "ctime": 1436810540.3285823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9125824, + "inode": 526864, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3598", + "xusr": false, + "atime": 1436810540.9125824, + "isdir": false, + "ctime": 1436810540.9125824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9205823, + "inode": 524390, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1124", + "xusr": false, + "atime": 1436810538.9205823, + "isdir": false, + "ctime": 1436810538.9205823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1055822, + "inode": 523324, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/58", + "xusr": false, + "atime": 1436810538.1055822, + "isdir": false, + "ctime": 1436810538.1055822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8325822, + "inode": 528086, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4820", + "xusr": false, + "atime": 1436810541.8325822, + "isdir": false, + "ctime": 1436810541.8325822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6405823, + "inode": 526482, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3216", + "xusr": false, + "atime": 1436810540.6405823, + "isdir": false, + "ctime": 1436810540.6405823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9245822, + "inode": 528213, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4947", + "xusr": false, + "atime": 1436810541.9245822, + "isdir": false, + "ctime": 1436810541.9245822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0315824, + "inode": 525771, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2505", + "xusr": false, + "atime": 1436810540.0315824, + "isdir": false, + "ctime": 1436810540.0315824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4595823, + "inode": 525076, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1810", + "xusr": false, + "atime": 1436810539.4595823, + "isdir": false, + "ctime": 1436810539.4595823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1515822, + "inode": 523388, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/122", + "xusr": false, + "atime": 1436810538.1515822, + "isdir": false, + "ctime": 1436810538.1515822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8175824, + "inode": 524250, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/984", + "xusr": false, + "atime": 1436810538.8175824, + "isdir": false, + "ctime": 1436810538.8175824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3525822, + "inode": 524986, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1720", + "xusr": false, + "atime": 1436810539.3525822, + "isdir": false, + "ctime": 1436810539.3525822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0575824, + "inode": 527064, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3798", + "xusr": false, + "atime": 1436810541.0575824, + "isdir": false, + "ctime": 1436810541.0575824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5265822, + "inode": 523864, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/598", + "xusr": false, + "atime": 1436810538.5265822, + "isdir": false, + "ctime": 1436810538.5265822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5615823, + "inode": 526371, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3105", + "xusr": false, + "atime": 1436810540.5615823, + "isdir": false, + "ctime": 1436810540.5615823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1995823, + "inode": 524785, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1519", + "xusr": false, + "atime": 1436810539.1995823, + "isdir": false, + "ctime": 1436810539.1995823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3515823, + "inode": 524984, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1718", + "xusr": false, + "atime": 1436810539.3515823, + "isdir": false, + "ctime": 1436810539.3515823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5745823, + "inode": 523928, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/662", + "xusr": false, + "atime": 1436810538.5745823, + "isdir": false, + "ctime": 1436810538.5745823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1185822, + "inode": 524669, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1403", + "xusr": false, + "atime": 1436810539.1185822, + "isdir": false, + "ctime": 1436810539.1185822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9075823, + "inode": 526857, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3591", + "xusr": false, + "atime": 1436810540.9075823, + "isdir": false, + "ctime": 1436810540.9075823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6495824, + "inode": 526493, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3227", + "xusr": false, + "atime": 1436810540.6495824, + "isdir": false, + "ctime": 1436810540.6495824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5785823, + "inode": 526395, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3129", + "xusr": false, + "atime": 1436810540.5785823, + "isdir": false, + "ctime": 1436810540.5785823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5155823, + "inode": 527651, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4385", + "xusr": false, + "atime": 1436810541.5155823, + "isdir": false, + "ctime": 1436810541.5155823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7305822, + "inode": 525366, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2100", + "xusr": false, + "atime": 1436810539.7305822, + "isdir": false, + "ctime": 1436810539.7305822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7305822, + "inode": 527946, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4680", + "xusr": false, + "atime": 1436810541.7305822, + "isdir": false, + "ctime": 1436810541.7305822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2465823, + "inode": 524853, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1587", + "xusr": false, + "atime": 1436810539.2465823, + "isdir": false, + "ctime": 1436810539.2465823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4295824, + "inode": 526234, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2968", + "xusr": false, + "atime": 1436810540.4295824, + "isdir": false, + "ctime": 1436810540.4295824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1485822, + "inode": 523384, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/118", + "xusr": false, + "atime": 1436810538.1485822, + "isdir": false, + "ctime": 1436810538.1485822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3155823, + "inode": 524946, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1680", + "xusr": false, + "atime": 1436810539.3155823, + "isdir": false, + "ctime": 1436810539.3155823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6725824, + "inode": 525308, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2042", + "xusr": false, + "atime": 1436810539.6725824, + "isdir": false, + "ctime": 1436810539.6725824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8675823, + "inode": 524317, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1051", + "xusr": false, + "atime": 1436810538.8675823, + "isdir": false, + "ctime": 1436810538.8675823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0845823, + "inode": 527102, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3836", + "xusr": false, + "atime": 1436810541.0845823, + "isdir": false, + "ctime": 1436810541.0845823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6955824, + "inode": 527898, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4632", + "xusr": false, + "atime": 1436810541.6955824, + "isdir": false, + "ctime": 1436810541.6955824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9395823, + "inode": 526901, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3635", + "xusr": false, + "atime": 1436810540.9395823, + "isdir": false, + "ctime": 1436810540.9395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7825823, + "inode": 526681, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3415", + "xusr": false, + "atime": 1436810540.7825823, + "isdir": false, + "ctime": 1436810540.7825823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3695824, + "inode": 526149, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2883", + "xusr": false, + "atime": 1436810540.3695824, + "isdir": false, + "ctime": 1436810540.3695824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1905823, + "inode": 527245, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3979", + "xusr": false, + "atime": 1436810541.1905823, + "isdir": false, + "ctime": 1436810541.1905823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6165824, + "inode": 526448, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3182", + "xusr": false, + "atime": 1436810540.6165824, + "isdir": false, + "ctime": 1436810540.6165824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2275822, + "inode": 525973, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2707", + "xusr": false, + "atime": 1436810540.2275822, + "isdir": false, + "ctime": 1436810540.2275822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8855822, + "inode": 528159, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4893", + "xusr": false, + "atime": 1436810541.8855822, + "isdir": false, + "ctime": 1436810541.8855822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6185822, + "inode": 527794, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4528", + "xusr": false, + "atime": 1436810541.6185822, + "isdir": false, + "ctime": 1436810541.6185822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7275822, + "inode": 525363, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2097", + "xusr": false, + "atime": 1436810539.7275822, + "isdir": false, + "ctime": 1436810539.7275822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2655823, + "inode": 524880, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1614", + "xusr": false, + "atime": 1436810539.2655823, + "isdir": false, + "ctime": 1436810539.2655823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8525822, + "inode": 525524, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2258", + "xusr": false, + "atime": 1436810539.8525822, + "isdir": false, + "ctime": 1436810539.8525822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2095823, + "inode": 525951, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2685", + "xusr": false, + "atime": 1436810540.2095823, + "isdir": false, + "ctime": 1436810540.2095823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6695824, + "inode": 526521, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3255", + "xusr": false, + "atime": 1436810540.6695824, + "isdir": false, + "ctime": 1436810540.6695824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0705824, + "inode": 524600, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1334", + "xusr": false, + "atime": 1436810539.0705824, + "isdir": false, + "ctime": 1436810539.0705824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2565823, + "inode": 526005, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2739", + "xusr": false, + "atime": 1436810540.2565823, + "isdir": false, + "ctime": 1436810540.2565823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9755824, + "inode": 525694, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2428", + "xusr": false, + "atime": 1436810539.9755824, + "isdir": false, + "ctime": 1436810539.9755824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1645823, + "inode": 524735, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1469", + "xusr": false, + "atime": 1436810539.1645823, + "isdir": false, + "ctime": 1436810539.1645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0935824, + "inode": 525838, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2572", + "xusr": false, + "atime": 1436810540.0935824, + "isdir": false, + "ctime": 1436810540.0935824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2815824, + "inode": 527373, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4107", + "xusr": false, + "atime": 1436810541.2815824, + "isdir": false, + "ctime": 1436810541.2815824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5975823, + "inode": 523960, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/694", + "xusr": false, + "atime": 1436810538.5975823, + "isdir": false, + "ctime": 1436810538.5975823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6095824, + "inode": 527781, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4515", + "xusr": false, + "atime": 1436810541.6095824, + "isdir": false, + "ctime": 1436810541.6095824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9795823, + "inode": 525700, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2434", + "xusr": false, + "atime": 1436810539.9795823, + "isdir": false, + "ctime": 1436810539.9795823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0755823, + "inode": 527089, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3823", + "xusr": false, + "atime": 1436810541.0755823, + "isdir": false, + "ctime": 1436810541.0755823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3975823, + "inode": 525022, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1756", + "xusr": false, + "atime": 1436810539.3975823, + "isdir": false, + "ctime": 1436810539.3975823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7735822, + "inode": 528005, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4739", + "xusr": false, + "atime": 1436810541.7735822, + "isdir": false, + "ctime": 1436810541.7735822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7645824, + "inode": 527992, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4726", + "xusr": false, + "atime": 1436810541.7645824, + "isdir": false, + "ctime": 1436810541.7645824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1135824, + "inode": 527142, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3876", + "xusr": false, + "atime": 1436810541.1135824, + "isdir": false, + "ctime": 1436810541.1135824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6205823, + "inode": 527796, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4530", + "xusr": false, + "atime": 1436810541.6205823, + "isdir": false, + "ctime": 1436810541.6205823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5365822, + "inode": 525156, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1890", + "xusr": false, + "atime": 1436810539.5365822, + "isdir": false, + "ctime": 1436810539.5365822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8355823, + "inode": 525501, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2235", + "xusr": false, + "atime": 1436810539.8355823, + "isdir": false, + "ctime": 1436810539.8355823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7985823, + "inode": 528040, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4774", + "xusr": false, + "atime": 1436810541.7985823, + "isdir": false, + "ctime": 1436810541.7985823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0045824, + "inode": 526991, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3725", + "xusr": false, + "atime": 1436810541.0045824, + "isdir": false, + "ctime": 1436810541.0045824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1295824, + "inode": 525870, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2604", + "xusr": false, + "atime": 1436810540.1295824, + "isdir": false, + "ctime": 1436810540.1295824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3565824, + "inode": 526131, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2865", + "xusr": false, + "atime": 1436810540.3565824, + "isdir": false, + "ctime": 1436810540.3565824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2605822, + "inode": 526008, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2742", + "xusr": false, + "atime": 1436810540.2605822, + "isdir": false, + "ctime": 1436810540.2605822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6855824, + "inode": 526545, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3279", + "xusr": false, + "atime": 1436810540.6855824, + "isdir": false, + "ctime": 1436810540.6855824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0635824, + "inode": 523267, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1", + "xusr": false, + "atime": 1436810538.0635824, + "isdir": false, + "ctime": 1436810538.0635824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8145823, + "inode": 525471, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2205", + "xusr": false, + "atime": 1436810539.8145823, + "isdir": false, + "ctime": 1436810539.8145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0745823, + "inode": 525818, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2552", + "xusr": false, + "atime": 1436810540.0745823, + "isdir": false, + "ctime": 1436810540.0745823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1495824, + "inode": 527191, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3925", + "xusr": false, + "atime": 1436810541.1495824, + "isdir": false, + "ctime": 1436810541.1495824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8225822, + "inode": 524257, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/991", + "xusr": false, + "atime": 1436810538.8225822, + "isdir": false, + "ctime": 1436810538.8225822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3355823, + "inode": 524966, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1700", + "xusr": false, + "atime": 1436810539.3355823, + "isdir": false, + "ctime": 1436810539.3355823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4965823, + "inode": 527624, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4358", + "xusr": false, + "atime": 1436810541.4965823, + "isdir": false, + "ctime": 1436810541.4965823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6145823, + "inode": 523984, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/718", + "xusr": false, + "atime": 1436810538.6145823, + "isdir": false, + "ctime": 1436810538.6145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5415823, + "inode": 523884, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/618", + "xusr": false, + "atime": 1436810538.5415823, + "isdir": false, + "ctime": 1436810538.5415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3345823, + "inode": 527434, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4168", + "xusr": false, + "atime": 1436810541.3345823, + "isdir": false, + "ctime": 1436810541.3345823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4245822, + "inode": 527525, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4259", + "xusr": false, + "atime": 1436810541.4245822, + "isdir": false, + "ctime": 1436810541.4245822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5815823, + "inode": 526399, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3133", + "xusr": false, + "atime": 1436810540.5815823, + "isdir": false, + "ctime": 1436810540.5815823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4125824, + "inode": 527509, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4243", + "xusr": false, + "atime": 1436810541.4125824, + "isdir": false, + "ctime": 1436810541.4125824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1875823, + "inode": 527240, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3974", + "xusr": false, + "atime": 1436810541.1875823, + "isdir": false, + "ctime": 1436810541.1875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3945823, + "inode": 525019, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1753", + "xusr": false, + "atime": 1436810539.3945823, + "isdir": false, + "ctime": 1436810539.3945823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9615824, + "inode": 528265, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4999", + "xusr": false, + "atime": 1436810541.9615824, + "isdir": false, + "ctime": 1436810541.9615824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2495823, + "inode": 525997, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2731", + "xusr": false, + "atime": 1436810540.2495823, + "isdir": false, + "ctime": 1436810540.2495823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4405823, + "inode": 523743, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/477", + "xusr": false, + "atime": 1436810538.4405823, + "isdir": false, + "ctime": 1436810538.4405823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8695824, + "inode": 526803, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3537", + "xusr": false, + "atime": 1436810540.8695824, + "isdir": false, + "ctime": 1436810540.8695824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4865823, + "inode": 523809, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/543", + "xusr": false, + "atime": 1436810538.4865823, + "isdir": false, + "ctime": 1436810538.4865823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3515823, + "inode": 526124, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2858", + "xusr": false, + "atime": 1436810540.3515823, + "isdir": false, + "ctime": 1436810540.3515823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2225823, + "inode": 523489, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/223", + "xusr": false, + "atime": 1436810538.2225823, + "isdir": false, + "ctime": 1436810538.2225823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0085824, + "inode": 526996, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3730", + "xusr": false, + "atime": 1436810541.0085824, + "isdir": false, + "ctime": 1436810541.0085824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8365824, + "inode": 526756, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3490", + "xusr": false, + "atime": 1436810540.8365824, + "isdir": false, + "ctime": 1436810540.8365824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7715824, + "inode": 528002, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4736", + "xusr": false, + "atime": 1436810541.7715824, + "isdir": false, + "ctime": 1436810541.7715824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6175823, + "inode": 526449, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3183", + "xusr": false, + "atime": 1436810540.6175823, + "isdir": false, + "ctime": 1436810540.6175823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4455824, + "inode": 527553, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4287", + "xusr": false, + "atime": 1436810541.4455824, + "isdir": false, + "ctime": 1436810541.4455824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2145822, + "inode": 523478, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/212", + "xusr": false, + "atime": 1436810538.2145822, + "isdir": false, + "ctime": 1436810538.2145822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7835822, + "inode": 524205, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/939", + "xusr": false, + "atime": 1436810538.7835822, + "isdir": false, + "ctime": 1436810538.7835822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3665824, + "inode": 523661, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/395", + "xusr": false, + "atime": 1436810538.3665824, + "isdir": false, + "ctime": 1436810538.3665824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0835824, + "inode": 527100, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3834", + "xusr": false, + "atime": 1436810541.0835824, + "isdir": false, + "ctime": 1436810541.0835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6595824, + "inode": 524045, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/779", + "xusr": false, + "atime": 1436810538.6595824, + "isdir": false, + "ctime": 1436810538.6595824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1965823, + "inode": 523452, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/186", + "xusr": false, + "atime": 1436810538.1965823, + "isdir": false, + "ctime": 1436810538.1965823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5025823, + "inode": 525124, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1858", + "xusr": false, + "atime": 1436810539.5025823, + "isdir": false, + "ctime": 1436810539.5025823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8925824, + "inode": 525582, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2316", + "xusr": false, + "atime": 1436810539.8925824, + "isdir": false, + "ctime": 1436810539.8925824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5445824, + "inode": 523888, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/622", + "xusr": false, + "atime": 1436810538.5445824, + "isdir": false, + "ctime": 1436810538.5445824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3105824, + "inode": 524941, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1675", + "xusr": false, + "atime": 1436810539.3105824, + "isdir": false, + "ctime": 1436810539.3105824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4095824, + "inode": 526206, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2940", + "xusr": false, + "atime": 1436810540.4095824, + "isdir": false, + "ctime": 1436810540.4095824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4665823, + "inode": 523781, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/515", + "xusr": false, + "atime": 1436810538.4665823, + "isdir": false, + "ctime": 1436810538.4665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9485824, + "inode": 524428, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1162", + "xusr": false, + "atime": 1436810538.9485824, + "isdir": false, + "ctime": 1436810538.9485824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3305824, + "inode": 523628, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/362", + "xusr": false, + "atime": 1436810538.3305824, + "isdir": false, + "ctime": 1436810538.3305824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7585824, + "inode": 527985, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4719", + "xusr": false, + "atime": 1436810541.7585824, + "isdir": false, + "ctime": 1436810541.7585824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1715822, + "inode": 525910, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2644", + "xusr": false, + "atime": 1436810540.1715822, + "isdir": false, + "ctime": 1436810540.1715822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2565823, + "inode": 524867, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1601", + "xusr": false, + "atime": 1436810539.2565823, + "isdir": false, + "ctime": 1436810539.2565823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5475824, + "inode": 525167, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1901", + "xusr": false, + "atime": 1436810539.5475824, + "isdir": false, + "ctime": 1436810539.5475824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5745823, + "inode": 525201, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1935", + "xusr": false, + "atime": 1436810539.5745823, + "isdir": false, + "ctime": 1436810539.5745823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0215824, + "inode": 525756, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2490", + "xusr": false, + "atime": 1436810540.0215824, + "isdir": false, + "ctime": 1436810540.0215824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9935822, + "inode": 524491, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1225", + "xusr": false, + "atime": 1436810538.9935822, + "isdir": false, + "ctime": 1436810538.9935822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1885824, + "inode": 523441, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/175", + "xusr": false, + "atime": 1436810538.1885824, + "isdir": false, + "ctime": 1436810538.1885824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9225824, + "inode": 526878, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3612", + "xusr": false, + "atime": 1436810540.9225824, + "isdir": false, + "ctime": 1436810540.9225824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4565823, + "inode": 523766, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/500", + "xusr": false, + "atime": 1436810538.4565823, + "isdir": false, + "ctime": 1436810538.4565823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6785824, + "inode": 527874, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4608", + "xusr": false, + "atime": 1436810541.6785824, + "isdir": false, + "ctime": 1436810541.6785824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4535823, + "inode": 525072, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1806", + "xusr": false, + "atime": 1436810539.4535823, + "isdir": false, + "ctime": 1436810539.4535823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0585823, + "inode": 525802, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2536", + "xusr": false, + "atime": 1436810540.0585823, + "isdir": false, + "ctime": 1436810540.0585823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7625823, + "inode": 527990, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4724", + "xusr": false, + "atime": 1436810541.7625823, + "isdir": false, + "ctime": 1436810541.7625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7595823, + "inode": 525399, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2133", + "xusr": false, + "atime": 1436810539.7595823, + "isdir": false, + "ctime": 1436810539.7595823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5575824, + "inode": 525178, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1912", + "xusr": false, + "atime": 1436810539.5575824, + "isdir": false, + "ctime": 1436810539.5575824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0135822, + "inode": 525747, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2481", + "xusr": false, + "atime": 1436810540.0135822, + "isdir": false, + "ctime": 1436810540.0135822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4135823, + "inode": 527511, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4245", + "xusr": false, + "atime": 1436810541.4135823, + "isdir": false, + "ctime": 1436810541.4135823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6465824, + "inode": 527830, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4564", + "xusr": false, + "atime": 1436810541.6465824, + "isdir": false, + "ctime": 1436810541.6465824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2245822, + "inode": 527293, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4027", + "xusr": false, + "atime": 1436810541.2245822, + "isdir": false, + "ctime": 1436810541.2245822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2725823, + "inode": 526022, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2756", + "xusr": false, + "atime": 1436810540.2725823, + "isdir": false, + "ctime": 1436810540.2725823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6005824, + "inode": 525224, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1958", + "xusr": false, + "atime": 1436810539.6005824, + "isdir": false, + "ctime": 1436810539.6005824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2815824, + "inode": 526032, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2766", + "xusr": false, + "atime": 1436810540.2815824, + "isdir": false, + "ctime": 1436810540.2815824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3315823, + "inode": 524961, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1695", + "xusr": false, + "atime": 1436810539.3315823, + "isdir": false, + "ctime": 1436810539.3315823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0565822, + "inode": 527063, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3797", + "xusr": false, + "atime": 1436810541.0565822, + "isdir": false, + "ctime": 1436810541.0565822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8815823, + "inode": 526820, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3554", + "xusr": false, + "atime": 1436810540.8815823, + "isdir": false, + "ctime": 1436810540.8815823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8925824, + "inode": 524351, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1085", + "xusr": false, + "atime": 1436810538.8925824, + "isdir": false, + "ctime": 1436810538.8925824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9455824, + "inode": 525653, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2387", + "xusr": false, + "atime": 1436810539.9455824, + "isdir": false, + "ctime": 1436810539.9455824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1385822, + "inode": 525878, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2612", + "xusr": false, + "atime": 1436810540.1385822, + "isdir": false, + "ctime": 1436810540.1385822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5015824, + "inode": 523829, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/563", + "xusr": false, + "atime": 1436810538.5015824, + "isdir": false, + "ctime": 1436810538.5015824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3145823, + "inode": 526073, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2807", + "xusr": false, + "atime": 1436810540.3145823, + "isdir": false, + "ctime": 1436810540.3145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4655824, + "inode": 526269, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3003", + "xusr": false, + "atime": 1436810540.4655824, + "isdir": false, + "ctime": 1436810540.4655824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9575822, + "inode": 526927, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3661", + "xusr": false, + "atime": 1436810540.9575822, + "isdir": false, + "ctime": 1436810540.9575822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3645823, + "inode": 527460, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4194", + "xusr": false, + "atime": 1436810541.3645823, + "isdir": false, + "ctime": 1436810541.3645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4155824, + "inode": 523716, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/450", + "xusr": false, + "atime": 1436810538.4155824, + "isdir": false, + "ctime": 1436810538.4155824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2285824, + "inode": 525975, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2709", + "xusr": false, + "atime": 1436810540.2285824, + "isdir": false, + "ctime": 1436810540.2285824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9525824, + "inode": 528253, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4987", + "xusr": false, + "atime": 1436810541.9525824, + "isdir": false, + "ctime": 1436810541.9525824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1765823, + "inode": 527227, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3961", + "xusr": false, + "atime": 1436810541.1765823, + "isdir": false, + "ctime": 1436810541.1765823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2395823, + "inode": 523512, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/246", + "xusr": false, + "atime": 1436810538.2395823, + "isdir": false, + "ctime": 1436810538.2395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2195823, + "inode": 527285, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4019", + "xusr": false, + "atime": 1436810541.2195823, + "isdir": false, + "ctime": 1436810541.2195823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2715824, + "inode": 524888, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1622", + "xusr": false, + "atime": 1436810539.2715824, + "isdir": false, + "ctime": 1436810539.2715824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5375824, + "inode": 527680, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4414", + "xusr": false, + "atime": 1436810541.5375824, + "isdir": false, + "ctime": 1436810541.5375824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1135824, + "inode": 524661, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1395", + "xusr": false, + "atime": 1436810539.1135824, + "isdir": false, + "ctime": 1436810539.1135824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5965824, + "inode": 526420, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3154", + "xusr": false, + "atime": 1436810540.5965824, + "isdir": false, + "ctime": 1436810540.5965824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1965823, + "inode": 524781, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1515", + "xusr": false, + "atime": 1436810539.1965823, + "isdir": false, + "ctime": 1436810539.1965823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2215824, + "inode": 527288, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4022", + "xusr": false, + "atime": 1436810541.2215824, + "isdir": false, + "ctime": 1436810541.2215824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6805823, + "inode": 524073, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/807", + "xusr": false, + "atime": 1436810538.6805823, + "isdir": false, + "ctime": 1436810538.6805823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7665823, + "inode": 524184, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/918", + "xusr": false, + "atime": 1436810538.7665823, + "isdir": false, + "ctime": 1436810538.7665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8985822, + "inode": 524359, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1093", + "xusr": false, + "atime": 1436810538.8985822, + "isdir": false, + "ctime": 1436810538.8985822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8805823, + "inode": 528152, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4886", + "xusr": false, + "atime": 1436810541.8805823, + "isdir": false, + "ctime": 1436810541.8805823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2075822, + "inode": 523469, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/203", + "xusr": false, + "atime": 1436810538.2075822, + "isdir": false, + "ctime": 1436810538.2075822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8125823, + "inode": 524244, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/978", + "xusr": false, + "atime": 1436810538.8125823, + "isdir": false, + "ctime": 1436810538.8125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0965824, + "inode": 524637, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1371", + "xusr": false, + "atime": 1436810539.0965824, + "isdir": false, + "ctime": 1436810539.0965824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5105822, + "inode": 525131, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1865", + "xusr": false, + "atime": 1436810539.5105822, + "isdir": false, + "ctime": 1436810539.5105822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1165824, + "inode": 527146, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3880", + "xusr": false, + "atime": 1436810541.1165824, + "isdir": false, + "ctime": 1436810541.1165824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5685823, + "inode": 523921, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/655", + "xusr": false, + "atime": 1436810538.5685823, + "isdir": false, + "ctime": 1436810538.5685823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6335824, + "inode": 524009, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/743", + "xusr": false, + "atime": 1436810538.6335824, + "isdir": false, + "ctime": 1436810538.6335824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0775824, + "inode": 523287, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/21", + "xusr": false, + "atime": 1436810538.0775824, + "isdir": false, + "ctime": 1436810538.0775824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0745823, + "inode": 523282, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/16", + "xusr": false, + "atime": 1436810538.0745823, + "isdir": false, + "ctime": 1436810538.0745823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4465823, + "inode": 523753, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/487", + "xusr": false, + "atime": 1436810538.4465823, + "isdir": false, + "ctime": 1436810538.4465823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6215823, + "inode": 527797, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4531", + "xusr": false, + "atime": 1436810541.6215823, + "isdir": false, + "ctime": 1436810541.6215823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3835824, + "inode": 526168, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2902", + "xusr": false, + "atime": 1436810540.3835824, + "isdir": false, + "ctime": 1436810540.3835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8045824, + "inode": 524232, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/966", + "xusr": false, + "atime": 1436810538.8045824, + "isdir": false, + "ctime": 1436810538.8045824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5735824, + "inode": 527731, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4465", + "xusr": false, + "atime": 1436810541.5735824, + "isdir": false, + "ctime": 1436810541.5735824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4785824, + "inode": 525099, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1833", + "xusr": false, + "atime": 1436810539.4785824, + "isdir": false, + "ctime": 1436810539.4785824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6145823, + "inode": 527787, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4521", + "xusr": false, + "atime": 1436810541.6145823, + "isdir": false, + "ctime": 1436810541.6145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4415822, + "inode": 523745, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/479", + "xusr": false, + "atime": 1436810538.4415822, + "isdir": false, + "ctime": 1436810538.4415822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2025824, + "inode": 527261, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3995", + "xusr": false, + "atime": 1436810541.2025824, + "isdir": false, + "ctime": 1436810541.2025824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1275823, + "inode": 527161, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3895", + "xusr": false, + "atime": 1436810541.1275823, + "isdir": false, + "ctime": 1436810541.1275823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6815822, + "inode": 527879, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4613", + "xusr": false, + "atime": 1436810541.6815822, + "isdir": false, + "ctime": 1436810541.6815822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9605823, + "inode": 526931, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3665", + "xusr": false, + "atime": 1436810540.9605823, + "isdir": false, + "ctime": 1436810540.9605823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4785824, + "inode": 527599, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4333", + "xusr": false, + "atime": 1436810541.4785824, + "isdir": false, + "ctime": 1436810541.4785824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0825822, + "inode": 524617, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1351", + "xusr": false, + "atime": 1436810539.0825822, + "isdir": false, + "ctime": 1436810539.0825822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7235823, + "inode": 527937, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4671", + "xusr": false, + "atime": 1436810541.7235823, + "isdir": false, + "ctime": 1436810541.7235823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6165824, + "inode": 527791, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4525", + "xusr": false, + "atime": 1436810541.6165824, + "isdir": false, + "ctime": 1436810541.6165824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4515824, + "inode": 523760, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/494", + "xusr": false, + "atime": 1436810538.4515824, + "isdir": false, + "ctime": 1436810538.4515824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8545823, + "inode": 524300, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1034", + "xusr": false, + "atime": 1436810538.8545823, + "isdir": false, + "ctime": 1436810538.8545823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5725822, + "inode": 527729, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4463", + "xusr": false, + "atime": 1436810541.5725822, + "isdir": false, + "ctime": 1436810541.5725822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9295824, + "inode": 526888, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3622", + "xusr": false, + "atime": 1436810540.9295824, + "isdir": false, + "ctime": 1436810540.9295824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6115823, + "inode": 527784, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4518", + "xusr": false, + "atime": 1436810541.6115823, + "isdir": false, + "ctime": 1436810541.6115823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7345824, + "inode": 524144, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/878", + "xusr": false, + "atime": 1436810538.7345824, + "isdir": false, + "ctime": 1436810538.7345824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4215822, + "inode": 527521, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4255", + "xusr": false, + "atime": 1436810541.4215822, + "isdir": false, + "ctime": 1436810541.4215822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7965822, + "inode": 526700, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3434", + "xusr": false, + "atime": 1436810540.7965822, + "isdir": false, + "ctime": 1436810540.7965822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0625823, + "inode": 527071, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3805", + "xusr": false, + "atime": 1436810541.0625823, + "isdir": false, + "ctime": 1436810541.0625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1345823, + "inode": 523364, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/98", + "xusr": false, + "atime": 1436810538.1345823, + "isdir": false, + "ctime": 1436810538.1345823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9015822, + "inode": 525594, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2328", + "xusr": false, + "atime": 1436810539.9015822, + "isdir": false, + "ctime": 1436810539.9015822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6535823, + "inode": 527840, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4574", + "xusr": false, + "atime": 1436810541.6535823, + "isdir": false, + "ctime": 1436810541.6535823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9205823, + "inode": 528208, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4942", + "xusr": false, + "atime": 1436810541.9205823, + "isdir": false, + "ctime": 1436810541.9205823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0695822, + "inode": 527080, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3814", + "xusr": false, + "atime": 1436810541.0695822, + "isdir": false, + "ctime": 1436810541.0695822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2265823, + "inode": 527295, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4029", + "xusr": false, + "atime": 1436810541.2265823, + "isdir": false, + "ctime": 1436810541.2265823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0475824, + "inode": 527050, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3784", + "xusr": false, + "atime": 1436810541.0475824, + "isdir": false, + "ctime": 1436810541.0475824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2015824, + "inode": 524787, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1521", + "xusr": false, + "atime": 1436810539.2015824, + "isdir": false, + "ctime": 1436810539.2015824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2195823, + "inode": 527286, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4020", + "xusr": false, + "atime": 1436810541.2195823, + "isdir": false, + "ctime": 1436810541.2195823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8455822, + "inode": 526769, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3503", + "xusr": false, + "atime": 1436810540.8455822, + "isdir": false, + "ctime": 1436810540.8455822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3965824, + "inode": 527488, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4222", + "xusr": false, + "atime": 1436810541.3965824, + "isdir": false, + "ctime": 1436810541.3965824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6695824, + "inode": 524058, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/792", + "xusr": false, + "atime": 1436810538.6695824, + "isdir": false, + "ctime": 1436810538.6695824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1725824, + "inode": 525911, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2645", + "xusr": false, + "atime": 1436810540.1725824, + "isdir": false, + "ctime": 1436810540.1725824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4215822, + "inode": 525050, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1784", + "xusr": false, + "atime": 1436810539.4215822, + "isdir": false, + "ctime": 1436810539.4215822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7695823, + "inode": 526661, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3395", + "xusr": false, + "atime": 1436810540.7695823, + "isdir": false, + "ctime": 1436810540.7695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3935823, + "inode": 527485, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4219", + "xusr": false, + "atime": 1436810541.3935823, + "isdir": false, + "ctime": 1436810541.3935823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9395823, + "inode": 528234, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4968", + "xusr": false, + "atime": 1436810541.9395823, + "isdir": false, + "ctime": 1436810541.9395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0405824, + "inode": 527040, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3774", + "xusr": false, + "atime": 1436810541.0405824, + "isdir": false, + "ctime": 1436810541.0405824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5065823, + "inode": 523837, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/571", + "xusr": false, + "atime": 1436810538.5065823, + "isdir": false, + "ctime": 1436810538.5065823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5455823, + "inode": 526350, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3084", + "xusr": false, + "atime": 1436810540.5455823, + "isdir": false, + "ctime": 1436810540.5455823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2635822, + "inode": 527347, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4081", + "xusr": false, + "atime": 1436810541.2635822, + "isdir": false, + "ctime": 1436810541.2635822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4395823, + "inode": 527545, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4279", + "xusr": false, + "atime": 1436810541.4395823, + "isdir": false, + "ctime": 1436810541.4395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8565824, + "inode": 525530, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2264", + "xusr": false, + "atime": 1436810539.8565824, + "isdir": false, + "ctime": 1436810539.8565824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1685822, + "inode": 524741, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1475", + "xusr": false, + "atime": 1436810539.1685822, + "isdir": false, + "ctime": 1436810539.1685822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6825824, + "inode": 527880, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4614", + "xusr": false, + "atime": 1436810541.6825824, + "isdir": false, + "ctime": 1436810541.6825824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5765824, + "inode": 523932, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/666", + "xusr": false, + "atime": 1436810538.5765824, + "isdir": false, + "ctime": 1436810538.5765824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8555822, + "inode": 526783, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3517", + "xusr": false, + "atime": 1436810540.8555822, + "isdir": false, + "ctime": 1436810540.8555822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5785823, + "inode": 527737, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4471", + "xusr": false, + "atime": 1436810541.5785823, + "isdir": false, + "ctime": 1436810541.5785823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8795824, + "inode": 524334, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1068", + "xusr": false, + "atime": 1436810538.8795824, + "isdir": false, + "ctime": 1436810538.8795824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6675823, + "inode": 526518, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3252", + "xusr": false, + "atime": 1436810540.6675823, + "isdir": false, + "ctime": 1436810540.6675823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6095824, + "inode": 525236, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1970", + "xusr": false, + "atime": 1436810539.6095824, + "isdir": false, + "ctime": 1436810539.6095824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2555823, + "inode": 524866, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1600", + "xusr": false, + "atime": 1436810539.2555823, + "isdir": false, + "ctime": 1436810539.2555823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3995824, + "inode": 526191, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2925", + "xusr": false, + "atime": 1436810540.3995824, + "isdir": false, + "ctime": 1436810540.3995824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7775824, + "inode": 528011, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4745", + "xusr": false, + "atime": 1436810541.7775824, + "isdir": false, + "ctime": 1436810541.7775824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6865823, + "inode": 527885, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4619", + "xusr": false, + "atime": 1436810541.6865823, + "isdir": false, + "ctime": 1436810541.6865823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1375823, + "inode": 525877, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2611", + "xusr": false, + "atime": 1436810540.1375823, + "isdir": false, + "ctime": 1436810540.1375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0635824, + "inode": 527072, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3806", + "xusr": false, + "atime": 1436810541.0635824, + "isdir": false, + "ctime": 1436810541.0635824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1805823, + "inode": 523429, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/163", + "xusr": false, + "atime": 1436810538.1805823, + "isdir": false, + "ctime": 1436810538.1805823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9155824, + "inode": 528201, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4935", + "xusr": false, + "atime": 1436810541.9155824, + "isdir": false, + "ctime": 1436810541.9155824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4165823, + "inode": 525044, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1778", + "xusr": false, + "atime": 1436810539.4165823, + "isdir": false, + "ctime": 1436810539.4165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7225823, + "inode": 526598, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3332", + "xusr": false, + "atime": 1436810540.7225823, + "isdir": false, + "ctime": 1436810540.7225823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6265824, + "inode": 527804, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4538", + "xusr": false, + "atime": 1436810541.6265824, + "isdir": false, + "ctime": 1436810541.6265824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8805823, + "inode": 525565, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2299", + "xusr": false, + "atime": 1436810539.8805823, + "isdir": false, + "ctime": 1436810539.8805823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9545822, + "inode": 528255, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4989", + "xusr": false, + "atime": 1436810541.9545822, + "isdir": false, + "ctime": 1436810541.9545822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0175824, + "inode": 524524, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1258", + "xusr": false, + "atime": 1436810539.0175824, + "isdir": false, + "ctime": 1436810539.0175824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0875823, + "inode": 523300, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/34", + "xusr": false, + "atime": 1436810538.0875823, + "isdir": false, + "ctime": 1436810538.0875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8765824, + "inode": 528147, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4881", + "xusr": false, + "atime": 1436810541.8765824, + "isdir": false, + "ctime": 1436810541.8765824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1235824, + "inode": 524676, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1410", + "xusr": false, + "atime": 1436810539.1235824, + "isdir": false, + "ctime": 1436810539.1235824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8955822, + "inode": 528173, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4907", + "xusr": false, + "atime": 1436810541.8955822, + "isdir": false, + "ctime": 1436810541.8955822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8855822, + "inode": 526826, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3560", + "xusr": false, + "atime": 1436810540.8855822, + "isdir": false, + "ctime": 1436810540.8855822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3655822, + "inode": 523660, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/394", + "xusr": false, + "atime": 1436810538.3655822, + "isdir": false, + "ctime": 1436810538.3655822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4045823, + "inode": 523702, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/436", + "xusr": false, + "atime": 1436810538.4045823, + "isdir": false, + "ctime": 1436810538.4045823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1025822, + "inode": 525846, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2580", + "xusr": false, + "atime": 1436810540.1025822, + "isdir": false, + "ctime": 1436810540.1025822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1755824, + "inode": 525915, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2649", + "xusr": false, + "atime": 1436810540.1755824, + "isdir": false, + "ctime": 1436810540.1755824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6945822, + "inode": 527897, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4631", + "xusr": false, + "atime": 1436810541.6945822, + "isdir": false, + "ctime": 1436810541.6945822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3535824, + "inode": 526127, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2861", + "xusr": false, + "atime": 1436810540.3535824, + "isdir": false, + "ctime": 1436810540.3535824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0245824, + "inode": 524533, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1267", + "xusr": false, + "atime": 1436810539.0245824, + "isdir": false, + "ctime": 1436810539.0245824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2915823, + "inode": 526041, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2775", + "xusr": false, + "atime": 1436810540.2915823, + "isdir": false, + "ctime": 1436810540.2915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1385822, + "inode": 524698, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1432", + "xusr": false, + "atime": 1436810539.1385822, + "isdir": false, + "ctime": 1436810539.1385822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3205824, + "inode": 524953, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1687", + "xusr": false, + "atime": 1436810539.3205824, + "isdir": false, + "ctime": 1436810539.3205824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3875823, + "inode": 525013, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1747", + "xusr": false, + "atime": 1436810539.3875823, + "isdir": false, + "ctime": 1436810539.3875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7655823, + "inode": 524183, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/917", + "xusr": false, + "atime": 1436810538.7655823, + "isdir": false, + "ctime": 1436810538.7655823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1995823, + "inode": 527257, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3991", + "xusr": false, + "atime": 1436810541.1995823, + "isdir": false, + "ctime": 1436810541.1995823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2835822, + "inode": 523575, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/309", + "xusr": false, + "atime": 1436810538.2835822, + "isdir": false, + "ctime": 1436810538.2835822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4215822, + "inode": 525051, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1785", + "xusr": false, + "atime": 1436810539.4215822, + "isdir": false, + "ctime": 1436810539.4215822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2345824, + "inode": 523506, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/240", + "xusr": false, + "atime": 1436810538.2345824, + "isdir": false, + "ctime": 1436810538.2345824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0885823, + "inode": 524626, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1360", + "xusr": false, + "atime": 1436810539.0885823, + "isdir": false, + "ctime": 1436810539.0885823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0695822, + "inode": 525813, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2547", + "xusr": false, + "atime": 1436810540.0695822, + "isdir": false, + "ctime": 1436810540.0695822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7325823, + "inode": 524141, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/875", + "xusr": false, + "atime": 1436810538.7325823, + "isdir": false, + "ctime": 1436810538.7325823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6045823, + "inode": 527774, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4508", + "xusr": false, + "atime": 1436810541.6045823, + "isdir": false, + "ctime": 1436810541.6045823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5985823, + "inode": 527766, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4500", + "xusr": false, + "atime": 1436810541.5985823, + "isdir": false, + "ctime": 1436810541.5985823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9135823, + "inode": 528199, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4933", + "xusr": false, + "atime": 1436810541.9135823, + "isdir": false, + "ctime": 1436810541.9135823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1115823, + "inode": 524658, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1392", + "xusr": false, + "atime": 1436810539.1115823, + "isdir": false, + "ctime": 1436810539.1115823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0905824, + "inode": 527110, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3844", + "xusr": false, + "atime": 1436810541.0905824, + "isdir": false, + "ctime": 1436810541.0905824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7315824, + "inode": 524140, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/874", + "xusr": false, + "atime": 1436810538.7315824, + "isdir": false, + "ctime": 1436810538.7315824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1535823, + "inode": 524719, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1453", + "xusr": false, + "atime": 1436810539.1535823, + "isdir": false, + "ctime": 1436810539.1535823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3075824, + "inode": 524938, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1672", + "xusr": false, + "atime": 1436810539.3075824, + "isdir": false, + "ctime": 1436810539.3075824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3155823, + "inode": 527415, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4149", + "xusr": false, + "atime": 1436810541.3155823, + "isdir": false, + "ctime": 1436810541.3155823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5995822, + "inode": 526424, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3158", + "xusr": false, + "atime": 1436810540.5995822, + "isdir": false, + "ctime": 1436810540.5995822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8705823, + "inode": 526804, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3538", + "xusr": false, + "atime": 1436810540.8705823, + "isdir": false, + "ctime": 1436810540.8705823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6595824, + "inode": 527848, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4582", + "xusr": false, + "atime": 1436810541.6595824, + "isdir": false, + "ctime": 1436810541.6595824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5895822, + "inode": 527753, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4487", + "xusr": false, + "atime": 1436810541.5895822, + "isdir": false, + "ctime": 1436810541.5895822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2175822, + "inode": 524811, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1545", + "xusr": false, + "atime": 1436810539.2175822, + "isdir": false, + "ctime": 1436810539.2175822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8985822, + "inode": 528178, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4912", + "xusr": false, + "atime": 1436810541.8985822, + "isdir": false, + "ctime": 1436810541.8985822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9085822, + "inode": 526858, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3592", + "xusr": false, + "atime": 1436810540.9085822, + "isdir": false, + "ctime": 1436810540.9085822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7985823, + "inode": 526703, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3437", + "xusr": false, + "atime": 1436810540.7985823, + "isdir": false, + "ctime": 1436810540.7985823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6915822, + "inode": 527892, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4626", + "xusr": false, + "atime": 1436810541.6915822, + "isdir": false, + "ctime": 1436810541.6915822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4065824, + "inode": 525031, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1765", + "xusr": false, + "atime": 1436810539.4065824, + "isdir": false, + "ctime": 1436810539.4065824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2745824, + "inode": 527362, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4096", + "xusr": false, + "atime": 1436810541.2745824, + "isdir": false, + "ctime": 1436810541.2745824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3855822, + "inode": 526171, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2905", + "xusr": false, + "atime": 1436810540.3855822, + "isdir": false, + "ctime": 1436810540.3855822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2205822, + "inode": 524815, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1549", + "xusr": false, + "atime": 1436810539.2205822, + "isdir": false, + "ctime": 1436810539.2205822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9215822, + "inode": 526877, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3611", + "xusr": false, + "atime": 1436810540.9215822, + "isdir": false, + "ctime": 1436810540.9215822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9695823, + "inode": 526943, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3677", + "xusr": false, + "atime": 1436810540.9695823, + "isdir": false, + "ctime": 1436810540.9695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1775823, + "inode": 527228, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3962", + "xusr": false, + "atime": 1436810541.1775823, + "isdir": false, + "ctime": 1436810541.1775823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8295822, + "inode": 528082, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4816", + "xusr": false, + "atime": 1436810541.8295822, + "isdir": false, + "ctime": 1436810541.8295822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2715824, + "inode": 524889, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1623", + "xusr": false, + "atime": 1436810539.2715824, + "isdir": false, + "ctime": 1436810539.2715824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2525823, + "inode": 523531, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/265", + "xusr": false, + "atime": 1436810538.2525823, + "isdir": false, + "ctime": 1436810538.2525823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8185823, + "inode": 526731, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3465", + "xusr": false, + "atime": 1436810540.8185823, + "isdir": false, + "ctime": 1436810540.8185823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1625824, + "inode": 523403, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/137", + "xusr": false, + "atime": 1436810538.1625824, + "isdir": false, + "ctime": 1436810538.1625824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9655824, + "inode": 526938, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3672", + "xusr": false, + "atime": 1436810540.9655824, + "isdir": false, + "ctime": 1436810540.9655824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5875823, + "inode": 523946, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/680", + "xusr": false, + "atime": 1436810538.5875823, + "isdir": false, + "ctime": 1436810538.5875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0225823, + "inode": 524531, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1265", + "xusr": false, + "atime": 1436810539.0225823, + "isdir": false, + "ctime": 1436810539.0225823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3465824, + "inode": 527445, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4179", + "xusr": false, + "atime": 1436810541.3465824, + "isdir": false, + "ctime": 1436810541.3465824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5135822, + "inode": 525133, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1867", + "xusr": false, + "atime": 1436810539.5135822, + "isdir": false, + "ctime": 1436810539.5135822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7575824, + "inode": 525397, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2131", + "xusr": false, + "atime": 1436810539.7575824, + "isdir": false, + "ctime": 1436810539.7575824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3025823, + "inode": 527400, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4134", + "xusr": false, + "atime": 1436810541.3025823, + "isdir": false, + "ctime": 1436810541.3025823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1405823, + "inode": 525880, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2614", + "xusr": false, + "atime": 1436810540.1405823, + "isdir": false, + "ctime": 1436810540.1405823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4235823, + "inode": 523728, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/462", + "xusr": false, + "atime": 1436810538.4235823, + "isdir": false, + "ctime": 1436810538.4235823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1235824, + "inode": 523347, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/81", + "xusr": false, + "atime": 1436810538.1235824, + "isdir": false, + "ctime": 1436810538.1235824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4055824, + "inode": 523704, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/438", + "xusr": false, + "atime": 1436810538.4055824, + "isdir": false, + "ctime": 1436810538.4055824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2055824, + "inode": 523465, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/199", + "xusr": false, + "atime": 1436810538.2055824, + "isdir": false, + "ctime": 1436810538.2055824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9765823, + "inode": 525695, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2429", + "xusr": false, + "atime": 1436810539.9765823, + "isdir": false, + "ctime": 1436810539.9765823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8095822, + "inode": 528055, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4789", + "xusr": false, + "atime": 1436810541.8095822, + "isdir": false, + "ctime": 1436810541.8095822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7135823, + "inode": 525349, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2083", + "xusr": false, + "atime": 1436810539.7135823, + "isdir": false, + "ctime": 1436810539.7135823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0735824, + "inode": 527086, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3820", + "xusr": false, + "atime": 1436810541.0735824, + "isdir": false, + "ctime": 1436810541.0735824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1225822, + "inode": 524674, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1408", + "xusr": false, + "atime": 1436810539.1225822, + "isdir": false, + "ctime": 1436810539.1225822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6195824, + "inode": 526452, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3186", + "xusr": false, + "atime": 1436810540.6195824, + "isdir": false, + "ctime": 1436810540.6195824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6775823, + "inode": 524070, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/804", + "xusr": false, + "atime": 1436810538.6775823, + "isdir": false, + "ctime": 1436810538.6775823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5405824, + "inode": 527685, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4419", + "xusr": false, + "atime": 1436810541.5405824, + "isdir": false, + "ctime": 1436810541.5405824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5975823, + "inode": 526422, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3156", + "xusr": false, + "atime": 1436810540.5975823, + "isdir": false, + "ctime": 1436810540.5975823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8135824, + "inode": 528062, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4796", + "xusr": false, + "atime": 1436810541.8135824, + "isdir": false, + "ctime": 1436810541.8135824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7065823, + "inode": 526575, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3309", + "xusr": false, + "atime": 1436810540.7065823, + "isdir": false, + "ctime": 1436810540.7065823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1215823, + "inode": 525861, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2595", + "xusr": false, + "atime": 1436810540.1215823, + "isdir": false, + "ctime": 1436810540.1215823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0485823, + "inode": 525793, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2527", + "xusr": false, + "atime": 1436810540.0485823, + "isdir": false, + "ctime": 1436810540.0485823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7455823, + "inode": 527967, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4701", + "xusr": false, + "atime": 1436810541.7455823, + "isdir": false, + "ctime": 1436810541.7455823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2995822, + "inode": 526052, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2786", + "xusr": false, + "atime": 1436810540.2995822, + "isdir": false, + "ctime": 1436810540.2995822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3135824, + "inode": 527413, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4147", + "xusr": false, + "atime": 1436810541.3135824, + "isdir": false, + "ctime": 1436810541.3135824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9405823, + "inode": 526903, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3637", + "xusr": false, + "atime": 1436810540.9405823, + "isdir": false, + "ctime": 1436810540.9405823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7775824, + "inode": 526673, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3407", + "xusr": false, + "atime": 1436810540.7775824, + "isdir": false, + "ctime": 1436810540.7775824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3585823, + "inode": 526134, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2868", + "xusr": false, + "atime": 1436810540.3585823, + "isdir": false, + "ctime": 1436810540.3585823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8045824, + "inode": 528049, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4783", + "xusr": false, + "atime": 1436810541.8045824, + "isdir": false, + "ctime": 1436810541.8045824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5795822, + "inode": 526396, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3130", + "xusr": false, + "atime": 1436810540.5795822, + "isdir": false, + "ctime": 1436810540.5795822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6975822, + "inode": 526561, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3295", + "xusr": false, + "atime": 1436810540.6975822, + "isdir": false, + "ctime": 1436810540.6975822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6435823, + "inode": 525279, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2013", + "xusr": false, + "atime": 1436810539.6435823, + "isdir": false, + "ctime": 1436810539.6435823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7025824, + "inode": 526569, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3303", + "xusr": false, + "atime": 1436810540.7025824, + "isdir": false, + "ctime": 1436810540.7025824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0045824, + "inode": 524505, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1239", + "xusr": false, + "atime": 1436810539.0045824, + "isdir": false, + "ctime": 1436810539.0045824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9085822, + "inode": 524373, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1107", + "xusr": false, + "atime": 1436810538.9085822, + "isdir": false, + "ctime": 1436810538.9085822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5875823, + "inode": 523947, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/681", + "xusr": false, + "atime": 1436810538.5875823, + "isdir": false, + "ctime": 1436810538.5875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6965823, + "inode": 524095, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/829", + "xusr": false, + "atime": 1436810538.6965823, + "isdir": false, + "ctime": 1436810538.6965823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5935824, + "inode": 526415, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3149", + "xusr": false, + "atime": 1436810540.5935824, + "isdir": false, + "ctime": 1436810540.5935824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3065822, + "inode": 524937, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1671", + "xusr": false, + "atime": 1436810539.3065822, + "isdir": false, + "ctime": 1436810539.3065822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9265823, + "inode": 524398, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1132", + "xusr": false, + "atime": 1436810538.9265823, + "isdir": false, + "ctime": 1436810538.9265823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4745822, + "inode": 523791, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/525", + "xusr": false, + "atime": 1436810538.4745822, + "isdir": false, + "ctime": 1436810538.4745822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9545822, + "inode": 525665, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2399", + "xusr": false, + "atime": 1436810539.9545822, + "isdir": false, + "ctime": 1436810539.9545822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2605822, + "inode": 527343, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4077", + "xusr": false, + "atime": 1436810541.2605822, + "isdir": false, + "ctime": 1436810541.2605822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5145824, + "inode": 523847, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/581", + "xusr": false, + "atime": 1436810538.5145824, + "isdir": false, + "ctime": 1436810538.5145824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8915823, + "inode": 524349, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1083", + "xusr": false, + "atime": 1436810538.8915823, + "isdir": false, + "ctime": 1436810538.8915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0495822, + "inode": 524569, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1303", + "xusr": false, + "atime": 1436810539.0495822, + "isdir": false, + "ctime": 1436810539.0495822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5645823, + "inode": 525187, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1921", + "xusr": false, + "atime": 1436810539.5645823, + "isdir": false, + "ctime": 1436810539.5645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5545824, + "inode": 523902, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/636", + "xusr": false, + "atime": 1436810538.5545824, + "isdir": false, + "ctime": 1436810538.5545824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9185822, + "inode": 525617, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2351", + "xusr": false, + "atime": 1436810539.9185822, + "isdir": false, + "ctime": 1436810539.9185822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9175823, + "inode": 525616, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2350", + "xusr": false, + "atime": 1436810539.9175823, + "isdir": false, + "ctime": 1436810539.9175823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0075824, + "inode": 526995, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3729", + "xusr": false, + "atime": 1436810541.0075824, + "isdir": false, + "ctime": 1436810541.0075824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1285822, + "inode": 525869, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2603", + "xusr": false, + "atime": 1436810540.1285822, + "isdir": false, + "ctime": 1436810540.1285822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9145823, + "inode": 526867, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3601", + "xusr": false, + "atime": 1436810540.9145823, + "isdir": false, + "ctime": 1436810540.9145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8925824, + "inode": 528169, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4903", + "xusr": false, + "atime": 1436810541.8925824, + "isdir": false, + "ctime": 1436810541.8925824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1545823, + "inode": 524720, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1454", + "xusr": false, + "atime": 1436810539.1545823, + "isdir": false, + "ctime": 1436810539.1545823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0625823, + "inode": 527070, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3804", + "xusr": false, + "atime": 1436810541.0625823, + "isdir": false, + "ctime": 1436810541.0625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3805823, + "inode": 526164, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2898", + "xusr": false, + "atime": 1436810540.3805823, + "isdir": false, + "ctime": 1436810540.3805823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0645823, + "inode": 525807, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2541", + "xusr": false, + "atime": 1436810540.0645823, + "isdir": false, + "ctime": 1436810540.0645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8385823, + "inode": 528095, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4829", + "xusr": false, + "atime": 1436810541.8385823, + "isdir": false, + "ctime": 1436810541.8385823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6915822, + "inode": 524088, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/822", + "xusr": false, + "atime": 1436810538.6915822, + "isdir": false, + "ctime": 1436810538.6915822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3605824, + "inode": 527454, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4188", + "xusr": false, + "atime": 1436810541.3605824, + "isdir": false, + "ctime": 1436810541.3605824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3825824, + "inode": 525007, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1741", + "xusr": false, + "atime": 1436810539.3825824, + "isdir": false, + "ctime": 1436810539.3825824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4345822, + "inode": 523735, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/469", + "xusr": false, + "atime": 1436810538.4345822, + "isdir": false, + "ctime": 1436810538.4345822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3935823, + "inode": 523687, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/421", + "xusr": false, + "atime": 1436810538.3935823, + "isdir": false, + "ctime": 1436810538.3935823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4125824, + "inode": 526209, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2943", + "xusr": false, + "atime": 1436810540.4125824, + "isdir": false, + "ctime": 1436810540.4125824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9785824, + "inode": 525698, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2432", + "xusr": false, + "atime": 1436810539.9785824, + "isdir": false, + "ctime": 1436810539.9785824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8245823, + "inode": 526739, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3473", + "xusr": false, + "atime": 1436810540.8245823, + "isdir": false, + "ctime": 1436810540.8245823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9255824, + "inode": 524397, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1131", + "xusr": false, + "atime": 1436810538.9255824, + "isdir": false, + "ctime": 1436810538.9255824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4345822, + "inode": 527538, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4272", + "xusr": false, + "atime": 1436810541.4345822, + "isdir": false, + "ctime": 1436810541.4345822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7175822, + "inode": 524122, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/856", + "xusr": false, + "atime": 1436810538.7175822, + "isdir": false, + "ctime": 1436810538.7175822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5315824, + "inode": 523871, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/605", + "xusr": false, + "atime": 1436810538.5315824, + "isdir": false, + "ctime": 1436810538.5315824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5335822, + "inode": 527674, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4408", + "xusr": false, + "atime": 1436810541.5335822, + "isdir": false, + "ctime": 1436810541.5335822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6045823, + "inode": 523971, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/705", + "xusr": false, + "atime": 1436810538.6045823, + "isdir": false, + "ctime": 1436810538.6045823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7695823, + "inode": 527999, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4733", + "xusr": false, + "atime": 1436810541.7695823, + "isdir": false, + "ctime": 1436810541.7695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8345823, + "inode": 526753, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3487", + "xusr": false, + "atime": 1436810540.8345823, + "isdir": false, + "ctime": 1436810540.8345823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6715822, + "inode": 526524, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3258", + "xusr": false, + "atime": 1436810540.6715822, + "isdir": false, + "ctime": 1436810540.6715822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3505824, + "inode": 524983, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1717", + "xusr": false, + "atime": 1436810539.3505824, + "isdir": false, + "ctime": 1436810539.3505824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4495823, + "inode": 523757, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/491", + "xusr": false, + "atime": 1436810538.4495823, + "isdir": false, + "ctime": 1436810538.4495823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4635823, + "inode": 523776, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/510", + "xusr": false, + "atime": 1436810538.4635823, + "isdir": false, + "ctime": 1436810538.4635823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9105823, + "inode": 525606, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2340", + "xusr": false, + "atime": 1436810539.9105823, + "isdir": false, + "ctime": 1436810539.9105823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0685823, + "inode": 527079, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3813", + "xusr": false, + "atime": 1436810541.0685823, + "isdir": false, + "ctime": 1436810541.0685823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9705822, + "inode": 525687, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2421", + "xusr": false, + "atime": 1436810539.9705822, + "isdir": false, + "ctime": 1436810539.9705822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0365822, + "inode": 525777, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2511", + "xusr": false, + "atime": 1436810540.0365822, + "isdir": false, + "ctime": 1436810540.0365822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1225822, + "inode": 525862, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2596", + "xusr": false, + "atime": 1436810540.1225822, + "isdir": false, + "ctime": 1436810540.1225822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1365824, + "inode": 527173, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3907", + "xusr": false, + "atime": 1436810541.1365824, + "isdir": false, + "ctime": 1436810541.1365824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9765823, + "inode": 526953, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3687", + "xusr": false, + "atime": 1436810540.9765823, + "isdir": false, + "ctime": 1436810540.9765823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0095823, + "inode": 526998, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3732", + "xusr": false, + "atime": 1436810541.0095823, + "isdir": false, + "ctime": 1436810541.0095823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3015823, + "inode": 524932, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1666", + "xusr": false, + "atime": 1436810539.3015823, + "isdir": false, + "ctime": 1436810539.3015823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5845823, + "inode": 523942, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/676", + "xusr": false, + "atime": 1436810538.5845823, + "isdir": false, + "ctime": 1436810538.5845823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9675822, + "inode": 525683, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2417", + "xusr": false, + "atime": 1436810539.9675822, + "isdir": false, + "ctime": 1436810539.9675822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4135823, + "inode": 526211, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2945", + "xusr": false, + "atime": 1436810540.4135823, + "isdir": false, + "ctime": 1436810540.4135823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7355824, + "inode": 526616, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3350", + "xusr": false, + "atime": 1436810540.7355824, + "isdir": false, + "ctime": 1436810540.7355824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8835824, + "inode": 528157, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4891", + "xusr": false, + "atime": 1436810541.8835824, + "isdir": false, + "ctime": 1436810541.8835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1655824, + "inode": 527212, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3946", + "xusr": false, + "atime": 1436810541.1655824, + "isdir": false, + "ctime": 1436810541.1655824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1065824, + "inode": 523325, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/59", + "xusr": false, + "atime": 1436810538.1065824, + "isdir": false, + "ctime": 1436810538.1065824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0035822, + "inode": 526990, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3724", + "xusr": false, + "atime": 1436810541.0035822, + "isdir": false, + "ctime": 1436810541.0035822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4875822, + "inode": 527612, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4346", + "xusr": false, + "atime": 1436810541.4875822, + "isdir": false, + "ctime": 1436810541.4875822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7235823, + "inode": 524129, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/863", + "xusr": false, + "atime": 1436810538.7235823, + "isdir": false, + "ctime": 1436810538.7235823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4185822, + "inode": 526218, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2952", + "xusr": false, + "atime": 1436810540.4185822, + "isdir": false, + "ctime": 1436810540.4185822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3405824, + "inode": 527437, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4171", + "xusr": false, + "atime": 1436810541.3405824, + "isdir": false, + "ctime": 1436810541.3405824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6455822, + "inode": 524026, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/760", + "xusr": false, + "atime": 1436810538.6455822, + "isdir": false, + "ctime": 1436810538.6455822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6705823, + "inode": 525307, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2041", + "xusr": false, + "atime": 1436810539.6705823, + "isdir": false, + "ctime": 1436810539.6705823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0995822, + "inode": 524641, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1375", + "xusr": false, + "atime": 1436810539.0995822, + "isdir": false, + "ctime": 1436810539.0995822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5305824, + "inode": 525151, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1885", + "xusr": false, + "atime": 1436810539.5305824, + "isdir": false, + "ctime": 1436810539.5305824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1285822, + "inode": 523355, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/89", + "xusr": false, + "atime": 1436810538.1285822, + "isdir": false, + "ctime": 1436810538.1285822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8305824, + "inode": 526747, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3481", + "xusr": false, + "atime": 1436810540.8305824, + "isdir": false, + "ctime": 1436810540.8305824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9555824, + "inode": 526924, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3658", + "xusr": false, + "atime": 1436810540.9555824, + "isdir": false, + "ctime": 1436810540.9555824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6775823, + "inode": 525312, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2046", + "xusr": false, + "atime": 1436810539.6775823, + "isdir": false, + "ctime": 1436810539.6775823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6025822, + "inode": 526429, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3163", + "xusr": false, + "atime": 1436810540.6025822, + "isdir": false, + "ctime": 1436810540.6025822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7515824, + "inode": 524166, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/900", + "xusr": false, + "atime": 1436810538.7515824, + "isdir": false, + "ctime": 1436810538.7515824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3075824, + "inode": 526063, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2797", + "xusr": false, + "atime": 1436810540.3075824, + "isdir": false, + "ctime": 1436810540.3075824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3035824, + "inode": 524934, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1668", + "xusr": false, + "atime": 1436810539.3035824, + "isdir": false, + "ctime": 1436810539.3035824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4665823, + "inode": 525083, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1817", + "xusr": false, + "atime": 1436810539.4665823, + "isdir": false, + "ctime": 1436810539.4665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7555823, + "inode": 527980, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4714", + "xusr": false, + "atime": 1436810541.7555823, + "isdir": false, + "ctime": 1436810541.7555823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4855824, + "inode": 527609, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4343", + "xusr": false, + "atime": 1436810541.4855824, + "isdir": false, + "ctime": 1436810541.4855824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2905824, + "inode": 526040, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2774", + "xusr": false, + "atime": 1436810540.2905824, + "isdir": false, + "ctime": 1436810540.2905824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8005824, + "inode": 525452, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2186", + "xusr": false, + "atime": 1436810539.8005824, + "isdir": false, + "ctime": 1436810539.8005824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2295823, + "inode": 524828, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1562", + "xusr": false, + "atime": 1436810539.2295823, + "isdir": false, + "ctime": 1436810539.2295823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5215824, + "inode": 523856, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/590", + "xusr": false, + "atime": 1436810538.5215824, + "isdir": false, + "ctime": 1436810538.5215824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1335824, + "inode": 523362, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/96", + "xusr": false, + "atime": 1436810538.1335824, + "isdir": false, + "ctime": 1436810538.1335824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1995823, + "inode": 525939, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2673", + "xusr": false, + "atime": 1436810540.1995823, + "isdir": false, + "ctime": 1436810540.1995823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8625822, + "inode": 524310, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1044", + "xusr": false, + "atime": 1436810538.8625822, + "isdir": false, + "ctime": 1436810538.8625822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9875822, + "inode": 524484, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1218", + "xusr": false, + "atime": 1436810538.9875822, + "isdir": false, + "ctime": 1436810538.9875822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1505823, + "inode": 527192, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3926", + "xusr": false, + "atime": 1436810541.1505823, + "isdir": false, + "ctime": 1436810541.1505823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9895823, + "inode": 524485, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1219", + "xusr": false, + "atime": 1436810538.9895823, + "isdir": false, + "ctime": 1436810538.9895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4945824, + "inode": 526294, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3028", + "xusr": false, + "atime": 1436810540.4945824, + "isdir": false, + "ctime": 1436810540.4945824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3885822, + "inode": 527479, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4213", + "xusr": false, + "atime": 1436810541.3885822, + "isdir": false, + "ctime": 1436810541.3885822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9605823, + "inode": 528263, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4997", + "xusr": false, + "atime": 1436810541.9605823, + "isdir": false, + "ctime": 1436810541.9605823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9915824, + "inode": 525717, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2451", + "xusr": false, + "atime": 1436810539.9915824, + "isdir": false, + "ctime": 1436810539.9915824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5885823, + "inode": 527751, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4485", + "xusr": false, + "atime": 1436810541.5885823, + "isdir": false, + "ctime": 1436810541.5885823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0435822, + "inode": 527045, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3779", + "xusr": false, + "atime": 1436810541.0435822, + "isdir": false, + "ctime": 1436810541.0435822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2255824, + "inode": 523493, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/227", + "xusr": false, + "atime": 1436810538.2255824, + "isdir": false, + "ctime": 1436810538.2255824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4375823, + "inode": 523740, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/474", + "xusr": false, + "atime": 1436810538.4375823, + "isdir": false, + "ctime": 1436810538.4375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7065823, + "inode": 525342, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2076", + "xusr": false, + "atime": 1436810539.7065823, + "isdir": false, + "ctime": 1436810539.7065823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9375823, + "inode": 525642, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2376", + "xusr": false, + "atime": 1436810539.9375823, + "isdir": false, + "ctime": 1436810539.9375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2905824, + "inode": 527385, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4119", + "xusr": false, + "atime": 1436810541.2905824, + "isdir": false, + "ctime": 1436810541.2905824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1045823, + "inode": 524649, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1383", + "xusr": false, + "atime": 1436810539.1045823, + "isdir": false, + "ctime": 1436810539.1045823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3765824, + "inode": 526159, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2893", + "xusr": false, + "atime": 1436810540.3765824, + "isdir": false, + "ctime": 1436810540.3765824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2045822, + "inode": 527265, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3999", + "xusr": false, + "atime": 1436810541.2045822, + "isdir": false, + "ctime": 1436810541.2045822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1635823, + "inode": 525902, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2636", + "xusr": false, + "atime": 1436810540.1635823, + "isdir": false, + "ctime": 1436810540.1635823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2225823, + "inode": 525966, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2700", + "xusr": false, + "atime": 1436810540.2225823, + "isdir": false, + "ctime": 1436810540.2225823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8435824, + "inode": 528101, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4835", + "xusr": false, + "atime": 1436810541.8435824, + "isdir": false, + "ctime": 1436810541.8435824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5205822, + "inode": 525139, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1873", + "xusr": false, + "atime": 1436810539.5205822, + "isdir": false, + "ctime": 1436810539.5205822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7245822, + "inode": 524130, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/864", + "xusr": false, + "atime": 1436810538.7245822, + "isdir": false, + "ctime": 1436810538.7245822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8335824, + "inode": 526752, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3486", + "xusr": false, + "atime": 1436810540.8335824, + "isdir": false, + "ctime": 1436810540.8335824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2025824, + "inode": 523461, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/195", + "xusr": false, + "atime": 1436810538.2025824, + "isdir": false, + "ctime": 1436810538.2025824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1225822, + "inode": 527154, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3888", + "xusr": false, + "atime": 1436810541.1225822, + "isdir": false, + "ctime": 1436810541.1225822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7185824, + "inode": 524123, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/857", + "xusr": false, + "atime": 1436810538.7185824, + "isdir": false, + "ctime": 1436810538.7185824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7035823, + "inode": 527909, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4643", + "xusr": false, + "atime": 1436810541.7035823, + "isdir": false, + "ctime": 1436810541.7035823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3965824, + "inode": 527489, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4223", + "xusr": false, + "atime": 1436810541.3965824, + "isdir": false, + "ctime": 1436810541.3965824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8485823, + "inode": 528108, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4842", + "xusr": false, + "atime": 1436810541.8485823, + "isdir": false, + "ctime": 1436810541.8485823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7395823, + "inode": 526621, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3355", + "xusr": false, + "atime": 1436810540.7395823, + "isdir": false, + "ctime": 1436810540.7395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2275822, + "inode": 527297, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4031", + "xusr": false, + "atime": 1436810541.2275822, + "isdir": false, + "ctime": 1436810541.2275822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0765822, + "inode": 527091, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3825", + "xusr": false, + "atime": 1436810541.0765822, + "isdir": false, + "ctime": 1436810541.0765822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5615823, + "inode": 525183, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1917", + "xusr": false, + "atime": 1436810539.5615823, + "isdir": false, + "ctime": 1436810539.5615823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0675824, + "inode": 524595, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1329", + "xusr": false, + "atime": 1436810539.0675824, + "isdir": false, + "ctime": 1436810539.0675824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6895823, + "inode": 524086, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/820", + "xusr": false, + "atime": 1436810538.6895823, + "isdir": false, + "ctime": 1436810538.6895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4535823, + "inode": 523762, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/496", + "xusr": false, + "atime": 1436810538.4535823, + "isdir": false, + "ctime": 1436810538.4535823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2665823, + "inode": 524881, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1615", + "xusr": false, + "atime": 1436810539.2665823, + "isdir": false, + "ctime": 1436810539.2665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2045822, + "inode": 527264, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3998", + "xusr": false, + "atime": 1436810541.2045822, + "isdir": false, + "ctime": 1436810541.2045822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0855823, + "inode": 524621, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1355", + "xusr": false, + "atime": 1436810539.0855823, + "isdir": false, + "ctime": 1436810539.0855823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8375823, + "inode": 526758, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3492", + "xusr": false, + "atime": 1436810540.8375823, + "isdir": false, + "ctime": 1436810540.8375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4855824, + "inode": 526291, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3025", + "xusr": false, + "atime": 1436810540.4855824, + "isdir": false, + "ctime": 1436810540.4855824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7455823, + "inode": 526629, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3363", + "xusr": false, + "atime": 1436810540.7455823, + "isdir": false, + "ctime": 1436810540.7455823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2675824, + "inode": 523552, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/286", + "xusr": false, + "atime": 1436810538.2675824, + "isdir": false, + "ctime": 1436810538.2675824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1205823, + "inode": 524672, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1406", + "xusr": false, + "atime": 1436810539.1205823, + "isdir": false, + "ctime": 1436810539.1205823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7775824, + "inode": 525424, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2158", + "xusr": false, + "atime": 1436810539.7775824, + "isdir": false, + "ctime": 1436810539.7775824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9785824, + "inode": 526956, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3690", + "xusr": false, + "atime": 1436810540.9785824, + "isdir": false, + "ctime": 1436810540.9785824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6155822, + "inode": 527789, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4523", + "xusr": false, + "atime": 1436810541.6155822, + "isdir": false, + "ctime": 1436810541.6155822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4925823, + "inode": 523817, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/551", + "xusr": false, + "atime": 1436810538.4925823, + "isdir": false, + "ctime": 1436810538.4925823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9025824, + "inode": 528183, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4917", + "xusr": false, + "atime": 1436810541.9025824, + "isdir": false, + "ctime": 1436810541.9025824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6755824, + "inode": 524067, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/801", + "xusr": false, + "atime": 1436810538.6755824, + "isdir": false, + "ctime": 1436810538.6755824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8405824, + "inode": 524281, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1015", + "xusr": false, + "atime": 1436810538.8405824, + "isdir": false, + "ctime": 1436810538.8405824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1455822, + "inode": 527186, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3920", + "xusr": false, + "atime": 1436810541.1455822, + "isdir": false, + "ctime": 1436810541.1455822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3955822, + "inode": 526185, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2919", + "xusr": false, + "atime": 1436810540.3955822, + "isdir": false, + "ctime": 1436810540.3955822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7405822, + "inode": 526623, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3357", + "xusr": false, + "atime": 1436810540.7405822, + "isdir": false, + "ctime": 1436810540.7405822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0595822, + "inode": 524584, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1318", + "xusr": false, + "atime": 1436810539.0595822, + "isdir": false, + "ctime": 1436810539.0595822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2185824, + "inode": 527284, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4018", + "xusr": false, + "atime": 1436810541.2185824, + "isdir": false, + "ctime": 1436810541.2185824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8835824, + "inode": 524339, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1073", + "xusr": false, + "atime": 1436810538.8835824, + "isdir": false, + "ctime": 1436810538.8835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8355823, + "inode": 524275, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1009", + "xusr": false, + "atime": 1436810538.8355823, + "isdir": false, + "ctime": 1436810538.8355823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9425824, + "inode": 525650, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2384", + "xusr": false, + "atime": 1436810539.9425824, + "isdir": false, + "ctime": 1436810539.9425824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5605824, + "inode": 525181, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1915", + "xusr": false, + "atime": 1436810539.5605824, + "isdir": false, + "ctime": 1436810539.5605824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4625823, + "inode": 527576, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4310", + "xusr": false, + "atime": 1436810541.4625823, + "isdir": false, + "ctime": 1436810541.4625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1395824, + "inode": 523370, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/104", + "xusr": false, + "atime": 1436810538.1395824, + "isdir": false, + "ctime": 1436810538.1395824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7905824, + "inode": 524214, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/948", + "xusr": false, + "atime": 1436810538.7905824, + "isdir": false, + "ctime": 1436810538.7905824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6075823, + "inode": 526436, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3170", + "xusr": false, + "atime": 1436810540.6075823, + "isdir": false, + "ctime": 1436810540.6075823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2695823, + "inode": 523555, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/289", + "xusr": false, + "atime": 1436810538.2695823, + "isdir": false, + "ctime": 1436810538.2695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4045823, + "inode": 527499, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4233", + "xusr": false, + "atime": 1436810541.4045823, + "isdir": false, + "ctime": 1436810541.4045823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6685822, + "inode": 527860, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4594", + "xusr": false, + "atime": 1436810541.6685822, + "isdir": false, + "ctime": 1436810541.6685822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7695823, + "inode": 525412, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2146", + "xusr": false, + "atime": 1436810539.7695823, + "isdir": false, + "ctime": 1436810539.7695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2625823, + "inode": 524875, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1609", + "xusr": false, + "atime": 1436810539.2625823, + "isdir": false, + "ctime": 1436810539.2625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9295824, + "inode": 528220, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4954", + "xusr": false, + "atime": 1436810541.9295824, + "isdir": false, + "ctime": 1436810541.9295824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9605823, + "inode": 528264, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4998", + "xusr": false, + "atime": 1436810541.9605823, + "isdir": false, + "ctime": 1436810541.9605823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1735823, + "inode": 523419, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/153", + "xusr": false, + "atime": 1436810538.1735823, + "isdir": false, + "ctime": 1436810538.1735823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1015823, + "inode": 527125, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3859", + "xusr": false, + "atime": 1436810541.1015823, + "isdir": false, + "ctime": 1436810541.1015823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2965822, + "inode": 523594, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/328", + "xusr": false, + "atime": 1436810538.2965822, + "isdir": false, + "ctime": 1436810538.2965822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9975822, + "inode": 526981, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3715", + "xusr": false, + "atime": 1436810540.9975822, + "isdir": false, + "ctime": 1436810540.9975822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2925823, + "inode": 526043, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2777", + "xusr": false, + "atime": 1436810540.2925823, + "isdir": false, + "ctime": 1436810540.2925823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8685822, + "inode": 524318, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1052", + "xusr": false, + "atime": 1436810538.8685822, + "isdir": false, + "ctime": 1436810538.8685822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7275822, + "inode": 524134, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/868", + "xusr": false, + "atime": 1436810538.7275822, + "isdir": false, + "ctime": 1436810538.7275822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4745822, + "inode": 527593, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4327", + "xusr": false, + "atime": 1436810541.4745822, + "isdir": false, + "ctime": 1436810541.4745822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8665824, + "inode": 526798, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3532", + "xusr": false, + "atime": 1436810540.8665824, + "isdir": false, + "ctime": 1436810540.8665824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2335823, + "inode": 524834, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1568", + "xusr": false, + "atime": 1436810539.2335823, + "isdir": false, + "ctime": 1436810539.2335823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9575822, + "inode": 526926, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3660", + "xusr": false, + "atime": 1436810540.9575822, + "isdir": false, + "ctime": 1436810540.9575822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1075823, + "inode": 524653, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1387", + "xusr": false, + "atime": 1436810539.1075823, + "isdir": false, + "ctime": 1436810539.1075823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8115823, + "inode": 524242, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/976", + "xusr": false, + "atime": 1436810538.8115823, + "isdir": false, + "ctime": 1436810538.8115823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3855822, + "inode": 523681, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/415", + "xusr": false, + "atime": 1436810538.3855822, + "isdir": false, + "ctime": 1436810538.3855822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6635823, + "inode": 527854, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4588", + "xusr": false, + "atime": 1436810541.6635823, + "isdir": false, + "ctime": 1436810541.6635823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7045822, + "inode": 524106, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/840", + "xusr": false, + "atime": 1436810538.7045822, + "isdir": false, + "ctime": 1436810538.7045822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9005823, + "inode": 526847, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3581", + "xusr": false, + "atime": 1436810540.9005823, + "isdir": false, + "ctime": 1436810540.9005823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4615824, + "inode": 527575, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4309", + "xusr": false, + "atime": 1436810541.4615824, + "isdir": false, + "ctime": 1436810541.4615824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0665822, + "inode": 527076, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3810", + "xusr": false, + "atime": 1436810541.0665822, + "isdir": false, + "ctime": 1436810541.0665822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5735824, + "inode": 526388, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3122", + "xusr": false, + "atime": 1436810540.5735824, + "isdir": false, + "ctime": 1436810540.5735824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6445823, + "inode": 525281, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2015", + "xusr": false, + "atime": 1436810539.6445823, + "isdir": false, + "ctime": 1436810539.6445823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5855823, + "inode": 523943, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/677", + "xusr": false, + "atime": 1436810538.5855823, + "isdir": false, + "ctime": 1436810538.5855823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6675823, + "inode": 527859, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4593", + "xusr": false, + "atime": 1436810541.6675823, + "isdir": false, + "ctime": 1436810541.6675823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4225824, + "inode": 527522, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4256", + "xusr": false, + "atime": 1436810541.4225824, + "isdir": false, + "ctime": 1436810541.4225824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7895823, + "inode": 526690, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3424", + "xusr": false, + "atime": 1436810540.7895823, + "isdir": false, + "ctime": 1436810540.7895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5995822, + "inode": 527767, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4501", + "xusr": false, + "atime": 1436810541.5995822, + "isdir": false, + "ctime": 1436810541.5995822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9565823, + "inode": 525668, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2402", + "xusr": false, + "atime": 1436810539.9565823, + "isdir": false, + "ctime": 1436810539.9565823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1715822, + "inode": 527220, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3954", + "xusr": false, + "atime": 1436810541.1715822, + "isdir": false, + "ctime": 1436810541.1715822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9335823, + "inode": 528226, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4960", + "xusr": false, + "atime": 1436810541.9335823, + "isdir": false, + "ctime": 1436810541.9335823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5315824, + "inode": 523870, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/604", + "xusr": false, + "atime": 1436810538.5315824, + "isdir": false, + "ctime": 1436810538.5315824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9635823, + "inode": 525677, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2411", + "xusr": false, + "atime": 1436810539.9635823, + "isdir": false, + "ctime": 1436810539.9635823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3995824, + "inode": 527492, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4226", + "xusr": false, + "atime": 1436810541.3995824, + "isdir": false, + "ctime": 1436810541.3995824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3715823, + "inode": 527462, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4196", + "xusr": false, + "atime": 1436810541.3715823, + "isdir": false, + "ctime": 1436810541.3715823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3485823, + "inode": 526120, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2854", + "xusr": false, + "atime": 1436810540.3485823, + "isdir": false, + "ctime": 1436810540.3485823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2565823, + "inode": 523536, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/270", + "xusr": false, + "atime": 1436810538.2565823, + "isdir": false, + "ctime": 1436810538.2565823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6835823, + "inode": 526542, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3276", + "xusr": false, + "atime": 1436810540.6835823, + "isdir": false, + "ctime": 1436810540.6835823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9005823, + "inode": 528180, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4914", + "xusr": false, + "atime": 1436810541.9005823, + "isdir": false, + "ctime": 1436810541.9005823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7355824, + "inode": 527953, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4687", + "xusr": false, + "atime": 1436810541.7355824, + "isdir": false, + "ctime": 1436810541.7355824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7505822, + "inode": 525388, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2122", + "xusr": false, + "atime": 1436810539.7505822, + "isdir": false, + "ctime": 1436810539.7505822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3685822, + "inode": 524996, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1730", + "xusr": false, + "atime": 1436810539.3685822, + "isdir": false, + "ctime": 1436810539.3685822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7015822, + "inode": 527907, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4641", + "xusr": false, + "atime": 1436810541.7015822, + "isdir": false, + "ctime": 1436810541.7015822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0925822, + "inode": 523306, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/40", + "xusr": false, + "atime": 1436810538.0925822, + "isdir": false, + "ctime": 1436810538.0925822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9555824, + "inode": 526923, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3657", + "xusr": false, + "atime": 1436810540.9555824, + "isdir": false, + "ctime": 1436810540.9555824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0545824, + "inode": 524577, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1311", + "xusr": false, + "atime": 1436810539.0545824, + "isdir": false, + "ctime": 1436810539.0545824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9895823, + "inode": 525713, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2447", + "xusr": false, + "atime": 1436810539.9895823, + "isdir": false, + "ctime": 1436810539.9895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9885824, + "inode": 525712, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2446", + "xusr": false, + "atime": 1436810539.9885824, + "isdir": false, + "ctime": 1436810539.9885824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8385823, + "inode": 524279, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1013", + "xusr": false, + "atime": 1436810538.8385823, + "isdir": false, + "ctime": 1436810538.8385823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3795824, + "inode": 525004, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1738", + "xusr": false, + "atime": 1436810539.3795824, + "isdir": false, + "ctime": 1436810539.3795824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6105824, + "inode": 526440, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3174", + "xusr": false, + "atime": 1436810540.6105824, + "isdir": false, + "ctime": 1436810540.6105824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6815822, + "inode": 527878, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4612", + "xusr": false, + "atime": 1436810541.6815822, + "isdir": false, + "ctime": 1436810541.6815822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6475823, + "inode": 524029, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/763", + "xusr": false, + "atime": 1436810538.6475823, + "isdir": false, + "ctime": 1436810538.6475823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9905822, + "inode": 524486, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1220", + "xusr": false, + "atime": 1436810538.9905822, + "isdir": false, + "ctime": 1436810538.9905822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2975824, + "inode": 526050, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2784", + "xusr": false, + "atime": 1436810540.2975824, + "isdir": false, + "ctime": 1436810540.2975824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5125823, + "inode": 527646, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4380", + "xusr": false, + "atime": 1436810541.5125823, + "isdir": false, + "ctime": 1436810541.5125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1825824, + "inode": 524760, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1494", + "xusr": false, + "atime": 1436810539.1825824, + "isdir": false, + "ctime": 1436810539.1825824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7305822, + "inode": 524138, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/872", + "xusr": false, + "atime": 1436810538.7305822, + "isdir": false, + "ctime": 1436810538.7305822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1235824, + "inode": 525863, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2597", + "xusr": false, + "atime": 1436810540.1235824, + "isdir": false, + "ctime": 1436810540.1235824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2105823, + "inode": 523473, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/207", + "xusr": false, + "atime": 1436810538.2105823, + "isdir": false, + "ctime": 1436810538.2105823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7535822, + "inode": 527978, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4712", + "xusr": false, + "atime": 1436810541.7535822, + "isdir": false, + "ctime": 1436810541.7535822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8855822, + "inode": 525572, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2306", + "xusr": false, + "atime": 1436810539.8855822, + "isdir": false, + "ctime": 1436810539.8855822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4355824, + "inode": 527540, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4274", + "xusr": false, + "atime": 1436810541.4355824, + "isdir": false, + "ctime": 1436810541.4355824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2515824, + "inode": 527330, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4064", + "xusr": false, + "atime": 1436810541.2515824, + "isdir": false, + "ctime": 1436810541.2515824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7765822, + "inode": 526672, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3406", + "xusr": false, + "atime": 1436810540.7765822, + "isdir": false, + "ctime": 1436810540.7765822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7555823, + "inode": 525394, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2128", + "xusr": false, + "atime": 1436810539.7555823, + "isdir": false, + "ctime": 1436810539.7555823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2345824, + "inode": 527306, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4040", + "xusr": false, + "atime": 1436810541.2345824, + "isdir": false, + "ctime": 1436810541.2345824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1325824, + "inode": 524689, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1423", + "xusr": false, + "atime": 1436810539.1325824, + "isdir": false, + "ctime": 1436810539.1325824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7145822, + "inode": 527924, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4658", + "xusr": false, + "atime": 1436810541.7145822, + "isdir": false, + "ctime": 1436810541.7145822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8125823, + "inode": 525468, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2202", + "xusr": false, + "atime": 1436810539.8125823, + "isdir": false, + "ctime": 1436810539.8125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0075824, + "inode": 525739, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2473", + "xusr": false, + "atime": 1436810540.0075824, + "isdir": false, + "ctime": 1436810540.0075824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7915823, + "inode": 528030, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4764", + "xusr": false, + "atime": 1436810541.7915823, + "isdir": false, + "ctime": 1436810541.7915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6585822, + "inode": 527846, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4580", + "xusr": false, + "atime": 1436810541.6585822, + "isdir": false, + "ctime": 1436810541.6585822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4225824, + "inode": 526224, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2958", + "xusr": false, + "atime": 1436810540.4225824, + "isdir": false, + "ctime": 1436810540.4225824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2305822, + "inode": 527301, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4035", + "xusr": false, + "atime": 1436810541.2305822, + "isdir": false, + "ctime": 1436810541.2305822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0145824, + "inode": 525748, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2482", + "xusr": false, + "atime": 1436810540.0145824, + "isdir": false, + "ctime": 1436810540.0145824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2095823, + "inode": 527271, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4005", + "xusr": false, + "atime": 1436810541.2095823, + "isdir": false, + "ctime": 1436810541.2095823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1405823, + "inode": 527179, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3913", + "xusr": false, + "atime": 1436810541.1405823, + "isdir": false, + "ctime": 1436810541.1405823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5595822, + "inode": 523908, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/642", + "xusr": false, + "atime": 1436810538.5595822, + "isdir": false, + "ctime": 1436810538.5595822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7225823, + "inode": 527936, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4670", + "xusr": false, + "atime": 1436810541.7225823, + "isdir": false, + "ctime": 1436810541.7225823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7945824, + "inode": 526697, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3431", + "xusr": false, + "atime": 1436810540.7945824, + "isdir": false, + "ctime": 1436810540.7945824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6645823, + "inode": 525302, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2036", + "xusr": false, + "atime": 1436810539.6645823, + "isdir": false, + "ctime": 1436810539.6645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3275824, + "inode": 526090, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2824", + "xusr": false, + "atime": 1436810540.3275824, + "isdir": false, + "ctime": 1436810540.3275824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5105822, + "inode": 523842, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/576", + "xusr": false, + "atime": 1436810538.5105822, + "isdir": false, + "ctime": 1436810538.5105822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7845824, + "inode": 525434, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2168", + "xusr": false, + "atime": 1436810539.7845824, + "isdir": false, + "ctime": 1436810539.7845824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1745822, + "inode": 523420, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/154", + "xusr": false, + "atime": 1436810538.1745822, + "isdir": false, + "ctime": 1436810538.1745822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2805824, + "inode": 524902, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1636", + "xusr": false, + "atime": 1436810539.2805824, + "isdir": false, + "ctime": 1436810539.2805824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6415823, + "inode": 527823, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4557", + "xusr": false, + "atime": 1436810541.6415823, + "isdir": false, + "ctime": 1436810541.6415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6285822, + "inode": 527807, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4541", + "xusr": false, + "atime": 1436810541.6285822, + "isdir": false, + "ctime": 1436810541.6285822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5035822, + "inode": 527634, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4368", + "xusr": false, + "atime": 1436810541.5035822, + "isdir": false, + "ctime": 1436810541.5035822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3295822, + "inode": 523626, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/360", + "xusr": false, + "atime": 1436810538.3295822, + "isdir": false, + "ctime": 1436810538.3295822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5455823, + "inode": 525166, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1900", + "xusr": false, + "atime": 1436810539.5455823, + "isdir": false, + "ctime": 1436810539.5455823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5865824, + "inode": 523945, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/679", + "xusr": false, + "atime": 1436810538.5865824, + "isdir": false, + "ctime": 1436810538.5865824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0895822, + "inode": 525833, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2567", + "xusr": false, + "atime": 1436810540.0895822, + "isdir": false, + "ctime": 1436810540.0895822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7145822, + "inode": 525350, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2084", + "xusr": false, + "atime": 1436810539.7145822, + "isdir": false, + "ctime": 1436810539.7145822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6665823, + "inode": 527857, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4591", + "xusr": false, + "atime": 1436810541.6665823, + "isdir": false, + "ctime": 1436810541.6665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1905823, + "inode": 524772, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1506", + "xusr": false, + "atime": 1436810539.1905823, + "isdir": false, + "ctime": 1436810539.1905823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5285823, + "inode": 526327, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3061", + "xusr": false, + "atime": 1436810540.5285823, + "isdir": false, + "ctime": 1436810540.5285823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0935824, + "inode": 527115, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3849", + "xusr": false, + "atime": 1436810541.0935824, + "isdir": false, + "ctime": 1436810541.0935824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7015824, + "inode": 525337, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2071", + "xusr": false, + "atime": 1436810539.7015824, + "isdir": false, + "ctime": 1436810539.7015824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6875823, + "inode": 526547, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3281", + "xusr": false, + "atime": 1436810540.6875823, + "isdir": false, + "ctime": 1436810540.6875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9845824, + "inode": 525706, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2440", + "xusr": false, + "atime": 1436810539.9845824, + "isdir": false, + "ctime": 1436810539.9845824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4035823, + "inode": 526197, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2931", + "xusr": false, + "atime": 1436810540.4035823, + "isdir": false, + "ctime": 1436810540.4035823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2135823, + "inode": 527277, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4011", + "xusr": false, + "atime": 1436810541.2135823, + "isdir": false, + "ctime": 1436810541.2135823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8155823, + "inode": 526727, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3461", + "xusr": false, + "atime": 1436810540.8155823, + "isdir": false, + "ctime": 1436810540.8155823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5835824, + "inode": 527745, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4479", + "xusr": false, + "atime": 1436810541.5835824, + "isdir": false, + "ctime": 1436810541.5835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2285824, + "inode": 527298, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4032", + "xusr": false, + "atime": 1436810541.2285824, + "isdir": false, + "ctime": 1436810541.2285824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2205822, + "inode": 523486, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/220", + "xusr": false, + "atime": 1436810538.2205822, + "isdir": false, + "ctime": 1436810538.2205822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8515823, + "inode": 528112, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4846", + "xusr": false, + "atime": 1436810541.8515823, + "isdir": false, + "ctime": 1436810541.8515823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2965822, + "inode": 527393, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4127", + "xusr": false, + "atime": 1436810541.2965822, + "isdir": false, + "ctime": 1436810541.2965822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3005824, + "inode": 523599, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/333", + "xusr": false, + "atime": 1436810538.3005824, + "isdir": false, + "ctime": 1436810538.3005824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3295822, + "inode": 526093, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2827", + "xusr": false, + "atime": 1436810540.3295822, + "isdir": false, + "ctime": 1436810540.3295822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0695822, + "inode": 527081, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3815", + "xusr": false, + "atime": 1436810541.0695822, + "isdir": false, + "ctime": 1436810541.0695822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8795824, + "inode": 525563, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2297", + "xusr": false, + "atime": 1436810539.8795824, + "isdir": false, + "ctime": 1436810539.8795824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7575824, + "inode": 524174, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/908", + "xusr": false, + "atime": 1436810538.7575824, + "isdir": false, + "ctime": 1436810538.7575824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7155824, + "inode": 525351, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2085", + "xusr": false, + "atime": 1436810539.7155824, + "isdir": false, + "ctime": 1436810539.7155824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4545822, + "inode": 527566, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4300", + "xusr": false, + "atime": 1436810541.4545822, + "isdir": false, + "ctime": 1436810541.4545822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9445822, + "inode": 526909, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3643", + "xusr": false, + "atime": 1436810540.9445822, + "isdir": false, + "ctime": 1436810540.9445822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7335823, + "inode": 524142, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/876", + "xusr": false, + "atime": 1436810538.7335823, + "isdir": false, + "ctime": 1436810538.7335823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7335823, + "inode": 527950, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4684", + "xusr": false, + "atime": 1436810541.7335823, + "isdir": false, + "ctime": 1436810541.7335823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2165823, + "inode": 527281, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4015", + "xusr": false, + "atime": 1436810541.2165823, + "isdir": false, + "ctime": 1436810541.2165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8955822, + "inode": 526840, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3574", + "xusr": false, + "atime": 1436810540.8955822, + "isdir": false, + "ctime": 1436810540.8955822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8475823, + "inode": 526772, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3506", + "xusr": false, + "atime": 1436810540.8475823, + "isdir": false, + "ctime": 1436810540.8475823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9465823, + "inode": 526911, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3645", + "xusr": false, + "atime": 1436810540.9465823, + "isdir": false, + "ctime": 1436810540.9465823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8645823, + "inode": 525542, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2276", + "xusr": false, + "atime": 1436810539.8645823, + "isdir": false, + "ctime": 1436810539.8645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8485823, + "inode": 524292, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1026", + "xusr": false, + "atime": 1436810538.8485823, + "isdir": false, + "ctime": 1436810538.8485823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8935823, + "inode": 526837, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3571", + "xusr": false, + "atime": 1436810540.8935823, + "isdir": false, + "ctime": 1436810540.8935823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1735823, + "inode": 524747, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1481", + "xusr": false, + "atime": 1436810539.1735823, + "isdir": false, + "ctime": 1436810539.1735823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5685823, + "inode": 526381, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3115", + "xusr": false, + "atime": 1436810540.5685823, + "isdir": false, + "ctime": 1436810540.5685823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4315822, + "inode": 527534, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4268", + "xusr": false, + "atime": 1436810541.4315822, + "isdir": false, + "ctime": 1436810541.4315822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2955823, + "inode": 523593, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/327", + "xusr": false, + "atime": 1436810538.2955823, + "isdir": false, + "ctime": 1436810538.2955823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3125823, + "inode": 526069, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2803", + "xusr": false, + "atime": 1436810540.3125823, + "isdir": false, + "ctime": 1436810540.3125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2615824, + "inode": 523544, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/278", + "xusr": false, + "atime": 1436810538.2615824, + "isdir": false, + "ctime": 1436810538.2615824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5555823, + "inode": 527705, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4439", + "xusr": false, + "atime": 1436810541.5555823, + "isdir": false, + "ctime": 1436810541.5555823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2875824, + "inode": 523581, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/315", + "xusr": false, + "atime": 1436810538.2875824, + "isdir": false, + "ctime": 1436810538.2875824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4865823, + "inode": 527611, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4345", + "xusr": false, + "atime": 1436810541.4865823, + "isdir": false, + "ctime": 1436810541.4865823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9395823, + "inode": 525645, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2379", + "xusr": false, + "atime": 1436810539.9395823, + "isdir": false, + "ctime": 1436810539.9395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9085822, + "inode": 528191, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4925", + "xusr": false, + "atime": 1436810541.9085822, + "isdir": false, + "ctime": 1436810541.9085822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5495822, + "inode": 525169, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1903", + "xusr": false, + "atime": 1436810539.5495822, + "isdir": false, + "ctime": 1436810539.5495822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2745824, + "inode": 527363, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4097", + "xusr": false, + "atime": 1436810541.2745824, + "isdir": false, + "ctime": 1436810541.2745824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1935823, + "inode": 527249, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3983", + "xusr": false, + "atime": 1436810541.1935823, + "isdir": false, + "ctime": 1436810541.1935823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1545823, + "inode": 523392, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/126", + "xusr": false, + "atime": 1436810538.1545823, + "isdir": false, + "ctime": 1436810538.1545823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6815822, + "inode": 526539, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3273", + "xusr": false, + "atime": 1436810540.6815822, + "isdir": false, + "ctime": 1436810540.6815822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4685824, + "inode": 523783, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/517", + "xusr": false, + "atime": 1436810538.4685824, + "isdir": false, + "ctime": 1436810538.4685824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2595823, + "inode": 523541, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/275", + "xusr": false, + "atime": 1436810538.2595823, + "isdir": false, + "ctime": 1436810538.2595823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5625823, + "inode": 525184, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1918", + "xusr": false, + "atime": 1436810539.5625823, + "isdir": false, + "ctime": 1436810539.5625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1655824, + "inode": 524736, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1470", + "xusr": false, + "atime": 1436810539.1655824, + "isdir": false, + "ctime": 1436810539.1655824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1615822, + "inode": 523402, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/136", + "xusr": false, + "atime": 1436810538.1615822, + "isdir": false, + "ctime": 1436810538.1615822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4605823, + "inode": 523772, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/506", + "xusr": false, + "atime": 1436810538.4605823, + "isdir": false, + "ctime": 1436810538.4605823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7415824, + "inode": 525379, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2113", + "xusr": false, + "atime": 1436810539.7415824, + "isdir": false, + "ctime": 1436810539.7415824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3135824, + "inode": 524944, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1678", + "xusr": false, + "atime": 1436810539.3135824, + "isdir": false, + "ctime": 1436810539.3135824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3325822, + "inode": 526098, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2832", + "xusr": false, + "atime": 1436810540.3325822, + "isdir": false, + "ctime": 1436810540.3325822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5975823, + "inode": 526421, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3155", + "xusr": false, + "atime": 1436810540.5975823, + "isdir": false, + "ctime": 1436810540.5975823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8795824, + "inode": 524333, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1067", + "xusr": false, + "atime": 1436810538.8795824, + "isdir": false, + "ctime": 1436810538.8795824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3145823, + "inode": 524945, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1679", + "xusr": false, + "atime": 1436810539.3145823, + "isdir": false, + "ctime": 1436810539.3145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1225822, + "inode": 523346, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/80", + "xusr": false, + "atime": 1436810538.1225822, + "isdir": false, + "ctime": 1436810538.1225822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1815822, + "inode": 523431, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/165", + "xusr": false, + "atime": 1436810538.1815822, + "isdir": false, + "ctime": 1436810538.1815822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1395824, + "inode": 523371, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/105", + "xusr": false, + "atime": 1436810538.1395824, + "isdir": false, + "ctime": 1436810538.1395824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7205822, + "inode": 526595, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3329", + "xusr": false, + "atime": 1436810540.7205822, + "isdir": false, + "ctime": 1436810540.7205822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9875822, + "inode": 526969, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3703", + "xusr": false, + "atime": 1436810540.9875822, + "isdir": false, + "ctime": 1436810540.9875822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1665823, + "inode": 527213, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3947", + "xusr": false, + "atime": 1436810541.1665823, + "isdir": false, + "ctime": 1436810541.1665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4995823, + "inode": 525120, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1854", + "xusr": false, + "atime": 1436810539.4995823, + "isdir": false, + "ctime": 1436810539.4995823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1725824, + "inode": 524746, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1480", + "xusr": false, + "atime": 1436810539.1725824, + "isdir": false, + "ctime": 1436810539.1725824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8715823, + "inode": 525551, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2285", + "xusr": false, + "atime": 1436810539.8715823, + "isdir": false, + "ctime": 1436810539.8715823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3075824, + "inode": 523607, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/341", + "xusr": false, + "atime": 1436810538.3075824, + "isdir": false, + "ctime": 1436810538.3075824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8085823, + "inode": 525463, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2197", + "xusr": false, + "atime": 1436810539.8085823, + "isdir": false, + "ctime": 1436810539.8085823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9665823, + "inode": 525682, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2416", + "xusr": false, + "atime": 1436810539.9665823, + "isdir": false, + "ctime": 1436810539.9665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4815824, + "inode": 527603, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4337", + "xusr": false, + "atime": 1436810541.4815824, + "isdir": false, + "ctime": 1436810541.4815824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5835824, + "inode": 527744, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4478", + "xusr": false, + "atime": 1436810541.5835824, + "isdir": false, + "ctime": 1436810541.5835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7995822, + "inode": 524226, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/960", + "xusr": false, + "atime": 1436810538.7995822, + "isdir": false, + "ctime": 1436810538.7995822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8095822, + "inode": 526719, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3453", + "xusr": false, + "atime": 1436810540.8095822, + "isdir": false, + "ctime": 1436810540.8095822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9275823, + "inode": 528217, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4951", + "xusr": false, + "atime": 1436810541.9275823, + "isdir": false, + "ctime": 1436810541.9275823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1965823, + "inode": 527253, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3987", + "xusr": false, + "atime": 1436810541.1965823, + "isdir": false, + "ctime": 1436810541.1965823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2985823, + "inode": 524927, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1661", + "xusr": false, + "atime": 1436810539.2985823, + "isdir": false, + "ctime": 1436810539.2985823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1785824, + "inode": 524755, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1489", + "xusr": false, + "atime": 1436810539.1785824, + "isdir": false, + "ctime": 1436810539.1785824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2905824, + "inode": 524915, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1649", + "xusr": false, + "atime": 1436810539.2905824, + "isdir": false, + "ctime": 1436810539.2905824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8985822, + "inode": 525590, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2324", + "xusr": false, + "atime": 1436810539.8985822, + "isdir": false, + "ctime": 1436810539.8985822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4385824, + "inode": 523741, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/475", + "xusr": false, + "atime": 1436810538.4385824, + "isdir": false, + "ctime": 1436810538.4385824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9245822, + "inode": 526880, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3614", + "xusr": false, + "atime": 1436810540.9245822, + "isdir": false, + "ctime": 1436810540.9245822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3335824, + "inode": 526099, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2833", + "xusr": false, + "atime": 1436810540.3335824, + "isdir": false, + "ctime": 1436810540.3335824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2555823, + "inode": 523535, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/269", + "xusr": false, + "atime": 1436810538.2555823, + "isdir": false, + "ctime": 1436810538.2555823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4125824, + "inode": 523713, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/447", + "xusr": false, + "atime": 1436810538.4125824, + "isdir": false, + "ctime": 1436810538.4125824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4655824, + "inode": 525082, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1816", + "xusr": false, + "atime": 1436810539.4655824, + "isdir": false, + "ctime": 1436810539.4655824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1865823, + "inode": 523438, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/172", + "xusr": false, + "atime": 1436810538.1865823, + "isdir": false, + "ctime": 1436810538.1865823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7875824, + "inode": 525438, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2172", + "xusr": false, + "atime": 1436810539.7875824, + "isdir": false, + "ctime": 1436810539.7875824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0835824, + "inode": 525826, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2560", + "xusr": false, + "atime": 1436810540.0835824, + "isdir": false, + "ctime": 1436810540.0835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7865822, + "inode": 526686, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3420", + "xusr": false, + "atime": 1436810540.7865822, + "isdir": false, + "ctime": 1436810540.7865822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2455823, + "inode": 525991, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2725", + "xusr": false, + "atime": 1436810540.2455823, + "isdir": false, + "ctime": 1436810540.2455823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0655823, + "inode": 525808, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2542", + "xusr": false, + "atime": 1436810540.0655823, + "isdir": false, + "ctime": 1436810540.0655823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1025822, + "inode": 524646, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1380", + "xusr": false, + "atime": 1436810539.1025822, + "isdir": false, + "ctime": 1436810539.1025822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5325823, + "inode": 527673, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4407", + "xusr": false, + "atime": 1436810541.5325823, + "isdir": false, + "ctime": 1436810541.5325823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5765822, + "inode": 526392, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3126", + "xusr": false, + "atime": 1436810540.5765822, + "isdir": false, + "ctime": 1436810540.5765822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1115823, + "inode": 524659, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1393", + "xusr": false, + "atime": 1436810539.1115823, + "isdir": false, + "ctime": 1436810539.1115823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4075823, + "inode": 525032, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1766", + "xusr": false, + "atime": 1436810539.4075823, + "isdir": false, + "ctime": 1436810539.4075823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9155824, + "inode": 528202, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4936", + "xusr": false, + "atime": 1436810541.9155824, + "isdir": false, + "ctime": 1436810541.9155824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4465823, + "inode": 526252, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2986", + "xusr": false, + "atime": 1436810540.4465823, + "isdir": false, + "ctime": 1436810540.4465823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7165823, + "inode": 524121, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/855", + "xusr": false, + "atime": 1436810538.7165823, + "isdir": false, + "ctime": 1436810538.7165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8775823, + "inode": 526814, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3548", + "xusr": false, + "atime": 1436810540.8775823, + "isdir": false, + "ctime": 1436810540.8775823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0495822, + "inode": 527053, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3787", + "xusr": false, + "atime": 1436810541.0495822, + "isdir": false, + "ctime": 1436810541.0495822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7875824, + "inode": 526688, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3422", + "xusr": false, + "atime": 1436810540.7875824, + "isdir": false, + "ctime": 1436810540.7875824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4995823, + "inode": 527628, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4362", + "xusr": false, + "atime": 1436810541.4995823, + "isdir": false, + "ctime": 1436810541.4995823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6165824, + "inode": 525246, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1980", + "xusr": false, + "atime": 1436810539.6165824, + "isdir": false, + "ctime": 1436810539.6165824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7005823, + "inode": 526566, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3300", + "xusr": false, + "atime": 1436810540.7005823, + "isdir": false, + "ctime": 1436810540.7005823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0335822, + "inode": 524547, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1281", + "xusr": false, + "atime": 1436810539.0335822, + "isdir": false, + "ctime": 1436810539.0335822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6955824, + "inode": 526558, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3292", + "xusr": false, + "atime": 1436810540.6955824, + "isdir": false, + "ctime": 1436810540.6955824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9635823, + "inode": 524449, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1183", + "xusr": false, + "atime": 1436810538.9635823, + "isdir": false, + "ctime": 1436810538.9635823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6945822, + "inode": 524093, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/827", + "xusr": false, + "atime": 1436810538.6945822, + "isdir": false, + "ctime": 1436810538.6945822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1555824, + "inode": 525894, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2628", + "xusr": false, + "atime": 1436810540.1555824, + "isdir": false, + "ctime": 1436810540.1555824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9385824, + "inode": 528233, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4967", + "xusr": false, + "atime": 1436810541.9385824, + "isdir": false, + "ctime": 1436810541.9385824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7455823, + "inode": 525383, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2117", + "xusr": false, + "atime": 1436810539.7455823, + "isdir": false, + "ctime": 1436810539.7455823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7775824, + "inode": 524198, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/932", + "xusr": false, + "atime": 1436810538.7775824, + "isdir": false, + "ctime": 1436810538.7775824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5335822, + "inode": 523873, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/607", + "xusr": false, + "atime": 1436810538.5335822, + "isdir": false, + "ctime": 1436810538.5335822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5645823, + "inode": 527717, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4451", + "xusr": false, + "atime": 1436810541.5645823, + "isdir": false, + "ctime": 1436810541.5645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4445822, + "inode": 523750, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/484", + "xusr": false, + "atime": 1436810538.4445822, + "isdir": false, + "ctime": 1436810538.4445822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4525824, + "inode": 527562, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4296", + "xusr": false, + "atime": 1436810541.4525824, + "isdir": false, + "ctime": 1436810541.4525824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6655824, + "inode": 527856, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4590", + "xusr": false, + "atime": 1436810541.6655824, + "isdir": false, + "ctime": 1436810541.6655824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1405823, + "inode": 524700, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1434", + "xusr": false, + "atime": 1436810539.1405823, + "isdir": false, + "ctime": 1436810539.1405823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1905823, + "inode": 525930, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2664", + "xusr": false, + "atime": 1436810540.1905823, + "isdir": false, + "ctime": 1436810540.1905823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3975823, + "inode": 526189, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2923", + "xusr": false, + "atime": 1436810540.3975823, + "isdir": false, + "ctime": 1436810540.3975823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1525824, + "inode": 524718, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1452", + "xusr": false, + "atime": 1436810539.1525824, + "isdir": false, + "ctime": 1436810539.1525824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3115823, + "inode": 526068, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2802", + "xusr": false, + "atime": 1436810540.3115823, + "isdir": false, + "ctime": 1436810540.3115823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6095824, + "inode": 526439, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3173", + "xusr": false, + "atime": 1436810540.6095824, + "isdir": false, + "ctime": 1436810540.6095824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9155824, + "inode": 524384, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1118", + "xusr": false, + "atime": 1436810538.9155824, + "isdir": false, + "ctime": 1436810538.9155824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5985823, + "inode": 526423, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3157", + "xusr": false, + "atime": 1436810540.5985823, + "isdir": false, + "ctime": 1436810540.5985823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1955824, + "inode": 523451, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/185", + "xusr": false, + "atime": 1436810538.1955824, + "isdir": false, + "ctime": 1436810538.1955824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5875823, + "inode": 525212, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1946", + "xusr": false, + "atime": 1436810539.5875823, + "isdir": false, + "ctime": 1436810539.5875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1335824, + "inode": 527170, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3904", + "xusr": false, + "atime": 1436810541.1335824, + "isdir": false, + "ctime": 1436810541.1335824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7695823, + "inode": 526662, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3396", + "xusr": false, + "atime": 1436810540.7695823, + "isdir": false, + "ctime": 1436810540.7695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3495822, + "inode": 527450, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4184", + "xusr": false, + "atime": 1436810541.3495822, + "isdir": false, + "ctime": 1436810541.3495822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0415823, + "inode": 527041, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3775", + "xusr": false, + "atime": 1436810541.0415823, + "isdir": false, + "ctime": 1436810541.0415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8695824, + "inode": 524320, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1054", + "xusr": false, + "atime": 1436810538.8695824, + "isdir": false, + "ctime": 1436810538.8695824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9405823, + "inode": 525646, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2380", + "xusr": false, + "atime": 1436810539.9405823, + "isdir": false, + "ctime": 1436810539.9405823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4815824, + "inode": 523801, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/535", + "xusr": false, + "atime": 1436810538.4815824, + "isdir": false, + "ctime": 1436810538.4815824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8775823, + "inode": 524331, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1065", + "xusr": false, + "atime": 1436810538.8775823, + "isdir": false, + "ctime": 1436810538.8775823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1085823, + "inode": 523327, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/61", + "xusr": false, + "atime": 1436810538.1085823, + "isdir": false, + "ctime": 1436810538.1085823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8175824, + "inode": 528066, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4800", + "xusr": false, + "atime": 1436810541.8175824, + "isdir": false, + "ctime": 1436810541.8175824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2305822, + "inode": 523500, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/234", + "xusr": false, + "atime": 1436810538.2305822, + "isdir": false, + "ctime": 1436810538.2305822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7065823, + "inode": 524109, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/843", + "xusr": false, + "atime": 1436810538.7065823, + "isdir": false, + "ctime": 1436810538.7065823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2035823, + "inode": 525943, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2677", + "xusr": false, + "atime": 1436810540.2035823, + "isdir": false, + "ctime": 1436810540.2035823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7855823, + "inode": 525435, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2169", + "xusr": false, + "atime": 1436810539.7855823, + "isdir": false, + "ctime": 1436810539.7855823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2445824, + "inode": 524849, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1583", + "xusr": false, + "atime": 1436810539.2445824, + "isdir": false, + "ctime": 1436810539.2445824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3275824, + "inode": 523624, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/358", + "xusr": false, + "atime": 1436810538.3275824, + "isdir": false, + "ctime": 1436810538.3275824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1005824, + "inode": 525844, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2578", + "xusr": false, + "atime": 1436810540.1005824, + "isdir": false, + "ctime": 1436810540.1005824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8795824, + "inode": 528151, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4885", + "xusr": false, + "atime": 1436810541.8795824, + "isdir": false, + "ctime": 1436810541.8795824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6225822, + "inode": 525253, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1987", + "xusr": false, + "atime": 1436810539.6225822, + "isdir": false, + "ctime": 1436810539.6225822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4355824, + "inode": 523737, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/471", + "xusr": false, + "atime": 1436810538.4355824, + "isdir": false, + "ctime": 1436810538.4355824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5035822, + "inode": 523832, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/566", + "xusr": false, + "atime": 1436810538.5035822, + "isdir": false, + "ctime": 1436810538.5035822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4825823, + "inode": 527605, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4339", + "xusr": false, + "atime": 1436810541.4825823, + "isdir": false, + "ctime": 1436810541.4825823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4525824, + "inode": 526259, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2993", + "xusr": false, + "atime": 1436810540.4525824, + "isdir": false, + "ctime": 1436810540.4525824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0645823, + "inode": 527074, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3808", + "xusr": false, + "atime": 1436810541.0645823, + "isdir": false, + "ctime": 1436810541.0645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0415823, + "inode": 524558, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1292", + "xusr": false, + "atime": 1436810539.0415823, + "isdir": false, + "ctime": 1436810539.0415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4805822, + "inode": 525102, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1836", + "xusr": false, + "atime": 1436810539.4805822, + "isdir": false, + "ctime": 1436810539.4805822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7405822, + "inode": 524151, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/885", + "xusr": false, + "atime": 1436810538.7405822, + "isdir": false, + "ctime": 1436810538.7405822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6325824, + "inode": 525267, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2001", + "xusr": false, + "atime": 1436810539.6325824, + "isdir": false, + "ctime": 1436810539.6325824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5495822, + "inode": 527697, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4431", + "xusr": false, + "atime": 1436810541.5495822, + "isdir": false, + "ctime": 1436810541.5495822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4155824, + "inode": 527513, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4247", + "xusr": false, + "atime": 1436810541.4155824, + "isdir": false, + "ctime": 1436810541.4155824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2815824, + "inode": 523573, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/307", + "xusr": false, + "atime": 1436810538.2815824, + "isdir": false, + "ctime": 1436810538.2815824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8075824, + "inode": 528053, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4787", + "xusr": false, + "atime": 1436810541.8075824, + "isdir": false, + "ctime": 1436810541.8075824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6705823, + "inode": 524060, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/794", + "xusr": false, + "atime": 1436810538.6705823, + "isdir": false, + "ctime": 1436810538.6705823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6775823, + "inode": 527873, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4607", + "xusr": false, + "atime": 1436810541.6775823, + "isdir": false, + "ctime": 1436810541.6775823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7495823, + "inode": 526635, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3369", + "xusr": false, + "atime": 1436810540.7495823, + "isdir": false, + "ctime": 1436810540.7495823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1775823, + "inode": 523424, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/158", + "xusr": false, + "atime": 1436810538.1775823, + "isdir": false, + "ctime": 1436810538.1775823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4765823, + "inode": 523795, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/529", + "xusr": false, + "atime": 1436810538.4765823, + "isdir": false, + "ctime": 1436810538.4765823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9955823, + "inode": 524493, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1227", + "xusr": false, + "atime": 1436810538.9955823, + "isdir": false, + "ctime": 1436810538.9955823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2735822, + "inode": 526023, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2757", + "xusr": false, + "atime": 1436810540.2735822, + "isdir": false, + "ctime": 1436810540.2735822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0365822, + "inode": 527034, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3768", + "xusr": false, + "atime": 1436810541.0365822, + "isdir": false, + "ctime": 1436810541.0365822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6635823, + "inode": 526513, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3247", + "xusr": false, + "atime": 1436810540.6635823, + "isdir": false, + "ctime": 1436810540.6635823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9775822, + "inode": 525697, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2431", + "xusr": false, + "atime": 1436810539.9775822, + "isdir": false, + "ctime": 1436810539.9775822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3245823, + "inode": 526086, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2820", + "xusr": false, + "atime": 1436810540.3245823, + "isdir": false, + "ctime": 1436810540.3245823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4015822, + "inode": 527495, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4229", + "xusr": false, + "atime": 1436810541.4015822, + "isdir": false, + "ctime": 1436810541.4015822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9525824, + "inode": 526919, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3653", + "xusr": false, + "atime": 1436810540.9525824, + "isdir": false, + "ctime": 1436810540.9525824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7415824, + "inode": 525380, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2114", + "xusr": false, + "atime": 1436810539.7415824, + "isdir": false, + "ctime": 1436810539.7415824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2265823, + "inode": 523495, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/229", + "xusr": false, + "atime": 1436810538.2265823, + "isdir": false, + "ctime": 1436810538.2265823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7215824, + "inode": 527934, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4668", + "xusr": false, + "atime": 1436810541.7215824, + "isdir": false, + "ctime": 1436810541.7215824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8695824, + "inode": 528136, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4870", + "xusr": false, + "atime": 1436810541.8695824, + "isdir": false, + "ctime": 1436810541.8695824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6745822, + "inode": 526529, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3263", + "xusr": false, + "atime": 1436810540.6745822, + "isdir": false, + "ctime": 1436810540.6745822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0585823, + "inode": 524582, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1316", + "xusr": false, + "atime": 1436810539.0585823, + "isdir": false, + "ctime": 1436810539.0585823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5165823, + "inode": 523850, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/584", + "xusr": false, + "atime": 1436810538.5165823, + "isdir": false, + "ctime": 1436810538.5165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5425823, + "inode": 526345, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3079", + "xusr": false, + "atime": 1436810540.5425823, + "isdir": false, + "ctime": 1436810540.5425823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3875823, + "inode": 526174, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2908", + "xusr": false, + "atime": 1436810540.3875823, + "isdir": false, + "ctime": 1436810540.3875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0745823, + "inode": 525819, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2553", + "xusr": false, + "atime": 1436810540.0745823, + "isdir": false, + "ctime": 1436810540.0745823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4515824, + "inode": 526257, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2991", + "xusr": false, + "atime": 1436810540.4515824, + "isdir": false, + "ctime": 1436810540.4515824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0735824, + "inode": 523281, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/15", + "xusr": false, + "atime": 1436810538.0735824, + "isdir": false, + "ctime": 1436810538.0735824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1365824, + "inode": 524694, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1428", + "xusr": false, + "atime": 1436810539.1365824, + "isdir": false, + "ctime": 1436810539.1365824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7685823, + "inode": 524187, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/921", + "xusr": false, + "atime": 1436810538.7685823, + "isdir": false, + "ctime": 1436810538.7685823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8735824, + "inode": 524326, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1060", + "xusr": false, + "atime": 1436810538.8735824, + "isdir": false, + "ctime": 1436810538.8735824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0795822, + "inode": 527095, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3829", + "xusr": false, + "atime": 1436810541.0795822, + "isdir": false, + "ctime": 1436810541.0795822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8425822, + "inode": 526764, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3498", + "xusr": false, + "atime": 1436810540.8425822, + "isdir": false, + "ctime": 1436810540.8425822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5115824, + "inode": 526308, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3042", + "xusr": false, + "atime": 1436810540.5115824, + "isdir": false, + "ctime": 1436810540.5115824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6015823, + "inode": 526427, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3161", + "xusr": false, + "atime": 1436810540.6015823, + "isdir": false, + "ctime": 1436810540.6015823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3465824, + "inode": 523645, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/379", + "xusr": false, + "atime": 1436810538.3465824, + "isdir": false, + "ctime": 1436810538.3465824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6745822, + "inode": 527869, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4603", + "xusr": false, + "atime": 1436810541.6745822, + "isdir": false, + "ctime": 1436810541.6745822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7925823, + "inode": 526694, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3428", + "xusr": false, + "atime": 1436810540.7925823, + "isdir": false, + "ctime": 1436810540.7925823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5395823, + "inode": 527683, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4417", + "xusr": false, + "atime": 1436810541.5395823, + "isdir": false, + "ctime": 1436810541.5395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5715823, + "inode": 526385, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3119", + "xusr": false, + "atime": 1436810540.5715823, + "isdir": false, + "ctime": 1436810540.5715823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1665823, + "inode": 525905, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2639", + "xusr": false, + "atime": 1436810540.1665823, + "isdir": false, + "ctime": 1436810540.1665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1755824, + "inode": 524750, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1484", + "xusr": false, + "atime": 1436810539.1755824, + "isdir": false, + "ctime": 1436810539.1755824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0645823, + "inode": 527073, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3807", + "xusr": false, + "atime": 1436810541.0645823, + "isdir": false, + "ctime": 1436810541.0645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1535823, + "inode": 527197, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3931", + "xusr": false, + "atime": 1436810541.1535823, + "isdir": false, + "ctime": 1436810541.1535823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8945823, + "inode": 524354, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1088", + "xusr": false, + "atime": 1436810538.8945823, + "isdir": false, + "ctime": 1436810538.8945823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8745823, + "inode": 526810, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3544", + "xusr": false, + "atime": 1436810540.8745823, + "isdir": false, + "ctime": 1436810540.8745823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5265822, + "inode": 523863, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/597", + "xusr": false, + "atime": 1436810538.5265822, + "isdir": false, + "ctime": 1436810538.5265822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6935823, + "inode": 525327, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2061", + "xusr": false, + "atime": 1436810539.6935823, + "isdir": false, + "ctime": 1436810539.6935823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8885822, + "inode": 526829, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3563", + "xusr": false, + "atime": 1436810540.8885822, + "isdir": false, + "ctime": 1436810540.8885822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6865823, + "inode": 524082, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/816", + "xusr": false, + "atime": 1436810538.6865823, + "isdir": false, + "ctime": 1436810538.6865823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1685822, + "inode": 525907, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2641", + "xusr": false, + "atime": 1436810540.1685822, + "isdir": false, + "ctime": 1436810540.1685822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7655823, + "inode": 525407, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2141", + "xusr": false, + "atime": 1436810539.7655823, + "isdir": false, + "ctime": 1436810539.7655823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6725824, + "inode": 526526, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3260", + "xusr": false, + "atime": 1436810540.6725824, + "isdir": false, + "ctime": 1436810540.6725824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4025824, + "inode": 526196, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2930", + "xusr": false, + "atime": 1436810540.4025824, + "isdir": false, + "ctime": 1436810540.4025824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7605822, + "inode": 526650, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3384", + "xusr": false, + "atime": 1436810540.7605822, + "isdir": false, + "ctime": 1436810540.7605822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7905824, + "inode": 526692, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3426", + "xusr": false, + "atime": 1436810540.7905824, + "isdir": false, + "ctime": 1436810540.7905824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0325823, + "inode": 525772, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2506", + "xusr": false, + "atime": 1436810540.0325823, + "isdir": false, + "ctime": 1436810540.0325823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5235822, + "inode": 527661, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4395", + "xusr": false, + "atime": 1436810541.5235822, + "isdir": false, + "ctime": 1436810541.5235822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2705822, + "inode": 527357, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4091", + "xusr": false, + "atime": 1436810541.2705822, + "isdir": false, + "ctime": 1436810541.2705822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0995822, + "inode": 527122, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3856", + "xusr": false, + "atime": 1436810541.0995822, + "isdir": false, + "ctime": 1436810541.0995822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7835822, + "inode": 526682, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3416", + "xusr": false, + "atime": 1436810540.7835822, + "isdir": false, + "ctime": 1436810540.7835822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5945823, + "inode": 523956, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/690", + "xusr": false, + "atime": 1436810538.5945823, + "isdir": false, + "ctime": 1436810538.5945823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9415822, + "inode": 528237, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4971", + "xusr": false, + "atime": 1436810541.9415822, + "isdir": false, + "ctime": 1436810541.9415822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0855823, + "inode": 523298, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/32", + "xusr": false, + "atime": 1436810538.0855823, + "isdir": false, + "ctime": 1436810538.0855823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4045823, + "inode": 525029, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1763", + "xusr": false, + "atime": 1436810539.4045823, + "isdir": false, + "ctime": 1436810539.4045823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0015824, + "inode": 525730, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2464", + "xusr": false, + "atime": 1436810540.0015824, + "isdir": false, + "ctime": 1436810540.0015824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3165822, + "inode": 523615, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/349", + "xusr": false, + "atime": 1436810538.3165822, + "isdir": false, + "ctime": 1436810538.3165822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1245823, + "inode": 524677, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1411", + "xusr": false, + "atime": 1436810539.1245823, + "isdir": false, + "ctime": 1436810539.1245823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3425822, + "inode": 524972, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1706", + "xusr": false, + "atime": 1436810539.3425822, + "isdir": false, + "ctime": 1436810539.3425822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7045822, + "inode": 526571, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3305", + "xusr": false, + "atime": 1436810540.7045822, + "isdir": false, + "ctime": 1436810540.7045822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6425824, + "inode": 527825, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4559", + "xusr": false, + "atime": 1436810541.6425824, + "isdir": false, + "ctime": 1436810541.6425824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6835823, + "inode": 524078, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/812", + "xusr": false, + "atime": 1436810538.6835823, + "isdir": false, + "ctime": 1436810538.6835823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2955823, + "inode": 523592, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/326", + "xusr": false, + "atime": 1436810538.2955823, + "isdir": false, + "ctime": 1436810538.2955823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5175824, + "inode": 523851, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/585", + "xusr": false, + "atime": 1436810538.5175824, + "isdir": false, + "ctime": 1436810538.5175824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3315823, + "inode": 523629, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/363", + "xusr": false, + "atime": 1436810538.3315823, + "isdir": false, + "ctime": 1436810538.3315823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3425822, + "inode": 527440, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4174", + "xusr": false, + "atime": 1436810541.3425822, + "isdir": false, + "ctime": 1436810541.3425822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3715823, + "inode": 526152, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2886", + "xusr": false, + "atime": 1436810540.3715823, + "isdir": false, + "ctime": 1436810540.3715823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2545824, + "inode": 524864, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1598", + "xusr": false, + "atime": 1436810539.2545824, + "isdir": false, + "ctime": 1436810539.2545824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0265822, + "inode": 525763, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2497", + "xusr": false, + "atime": 1436810540.0265822, + "isdir": false, + "ctime": 1436810540.0265822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2205822, + "inode": 525963, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2697", + "xusr": false, + "atime": 1436810540.2205822, + "isdir": false, + "ctime": 1436810540.2205822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2265823, + "inode": 525972, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2706", + "xusr": false, + "atime": 1436810540.2265823, + "isdir": false, + "ctime": 1436810540.2265823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5045824, + "inode": 527635, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4369", + "xusr": false, + "atime": 1436810541.5045824, + "isdir": false, + "ctime": 1436810541.5045824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6075823, + "inode": 523975, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/709", + "xusr": false, + "atime": 1436810538.6075823, + "isdir": false, + "ctime": 1436810538.6075823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0385823, + "inode": 527037, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3771", + "xusr": false, + "atime": 1436810541.0385823, + "isdir": false, + "ctime": 1436810541.0385823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5985823, + "inode": 527765, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4499", + "xusr": false, + "atime": 1436810541.5985823, + "isdir": false, + "ctime": 1436810541.5985823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7805824, + "inode": 524201, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/935", + "xusr": false, + "atime": 1436810538.7805824, + "isdir": false, + "ctime": 1436810538.7805824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7275822, + "inode": 526604, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3338", + "xusr": false, + "atime": 1436810540.7275822, + "isdir": false, + "ctime": 1436810540.7275822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4515824, + "inode": 526258, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2992", + "xusr": false, + "atime": 1436810540.4515824, + "isdir": false, + "ctime": 1436810540.4515824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8915823, + "inode": 528168, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4902", + "xusr": false, + "atime": 1436810541.8915823, + "isdir": false, + "ctime": 1436810541.8915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1775823, + "inode": 525916, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2650", + "xusr": false, + "atime": 1436810540.1775823, + "isdir": false, + "ctime": 1436810540.1775823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6685822, + "inode": 524057, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/791", + "xusr": false, + "atime": 1436810538.6685822, + "isdir": false, + "ctime": 1436810538.6685822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5875823, + "inode": 527750, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4484", + "xusr": false, + "atime": 1436810541.5875823, + "isdir": false, + "ctime": 1436810541.5875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2565823, + "inode": 523537, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/271", + "xusr": false, + "atime": 1436810538.2565823, + "isdir": false, + "ctime": 1436810538.2565823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1555824, + "inode": 523393, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/127", + "xusr": false, + "atime": 1436810538.1555824, + "isdir": false, + "ctime": 1436810538.1555824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5825822, + "inode": 523940, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/674", + "xusr": false, + "atime": 1436810538.5825822, + "isdir": false, + "ctime": 1436810538.5825822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8065822, + "inode": 525459, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2193", + "xusr": false, + "atime": 1436810539.8065822, + "isdir": false, + "ctime": 1436810539.8065822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8525822, + "inode": 528113, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4847", + "xusr": false, + "atime": 1436810541.8525822, + "isdir": false, + "ctime": 1436810541.8525822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7045822, + "inode": 527911, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4645", + "xusr": false, + "atime": 1436810541.7045822, + "isdir": false, + "ctime": 1436810541.7045822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3545823, + "inode": 526128, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2862", + "xusr": false, + "atime": 1436810540.3545823, + "isdir": false, + "ctime": 1436810540.3545823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3395822, + "inode": 524971, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1705", + "xusr": false, + "atime": 1436810539.3395822, + "isdir": false, + "ctime": 1436810539.3395822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9175823, + "inode": 526871, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3605", + "xusr": false, + "atime": 1436810540.9175823, + "isdir": false, + "ctime": 1436810540.9175823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5105822, + "inode": 527643, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4377", + "xusr": false, + "atime": 1436810541.5105822, + "isdir": false, + "ctime": 1436810541.5105822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7345824, + "inode": 524143, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/877", + "xusr": false, + "atime": 1436810538.7345824, + "isdir": false, + "ctime": 1436810538.7345824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8185823, + "inode": 524251, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/985", + "xusr": false, + "atime": 1436810538.8185823, + "isdir": false, + "ctime": 1436810538.8185823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5685823, + "inode": 523920, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/654", + "xusr": false, + "atime": 1436810538.5685823, + "isdir": false, + "ctime": 1436810538.5685823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7105823, + "inode": 527919, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4653", + "xusr": false, + "atime": 1436810541.7105823, + "isdir": false, + "ctime": 1436810541.7105823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9625823, + "inode": 526933, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3667", + "xusr": false, + "atime": 1436810540.9625823, + "isdir": false, + "ctime": 1436810540.9625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2615824, + "inode": 524874, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1608", + "xusr": false, + "atime": 1436810539.2615824, + "isdir": false, + "ctime": 1436810539.2615824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7555823, + "inode": 524171, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/905", + "xusr": false, + "atime": 1436810538.7555823, + "isdir": false, + "ctime": 1436810538.7555823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1555824, + "inode": 527200, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3934", + "xusr": false, + "atime": 1436810541.1555824, + "isdir": false, + "ctime": 1436810541.1555824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2285824, + "inode": 524826, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1560", + "xusr": false, + "atime": 1436810539.2285824, + "isdir": false, + "ctime": 1436810539.2285824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7595823, + "inode": 526649, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3383", + "xusr": false, + "atime": 1436810540.7595823, + "isdir": false, + "ctime": 1436810540.7595823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8655822, + "inode": 524315, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1049", + "xusr": false, + "atime": 1436810538.8655822, + "isdir": false, + "ctime": 1436810538.8655822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7155824, + "inode": 524120, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/854", + "xusr": false, + "atime": 1436810538.7155824, + "isdir": false, + "ctime": 1436810538.7155824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3885822, + "inode": 525015, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1749", + "xusr": false, + "atime": 1436810539.3885822, + "isdir": false, + "ctime": 1436810539.3885822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2605822, + "inode": 524872, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1606", + "xusr": false, + "atime": 1436810539.2605822, + "isdir": false, + "ctime": 1436810539.2605822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2615824, + "inode": 526009, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2743", + "xusr": false, + "atime": 1436810540.2615824, + "isdir": false, + "ctime": 1436810540.2615824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0465822, + "inode": 524565, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1299", + "xusr": false, + "atime": 1436810539.0465822, + "isdir": false, + "ctime": 1436810539.0465822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6555824, + "inode": 525292, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2026", + "xusr": false, + "atime": 1436810539.6555824, + "isdir": false, + "ctime": 1436810539.6555824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7805824, + "inode": 525428, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2162", + "xusr": false, + "atime": 1436810539.7805824, + "isdir": false, + "ctime": 1436810539.7805824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4645822, + "inode": 525081, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1815", + "xusr": false, + "atime": 1436810539.4645822, + "isdir": false, + "ctime": 1436810539.4645822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4795823, + "inode": 523798, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/532", + "xusr": false, + "atime": 1436810538.4795823, + "isdir": false, + "ctime": 1436810538.4795823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2135823, + "inode": 525956, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2690", + "xusr": false, + "atime": 1436810540.2135823, + "isdir": false, + "ctime": 1436810540.2135823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4205823, + "inode": 525049, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1783", + "xusr": false, + "atime": 1436810539.4205823, + "isdir": false, + "ctime": 1436810539.4205823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8015823, + "inode": 528045, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4779", + "xusr": false, + "atime": 1436810541.8015823, + "isdir": false, + "ctime": 1436810541.8015823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0835824, + "inode": 524618, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1352", + "xusr": false, + "atime": 1436810539.0835824, + "isdir": false, + "ctime": 1436810539.0835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6505823, + "inode": 524033, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/767", + "xusr": false, + "atime": 1436810538.6505823, + "isdir": false, + "ctime": 1436810538.6505823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7665823, + "inode": 527995, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4729", + "xusr": false, + "atime": 1436810541.7665823, + "isdir": false, + "ctime": 1436810541.7665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7465823, + "inode": 525384, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2118", + "xusr": false, + "atime": 1436810539.7465823, + "isdir": false, + "ctime": 1436810539.7465823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6985824, + "inode": 527902, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4636", + "xusr": false, + "atime": 1436810541.6985824, + "isdir": false, + "ctime": 1436810541.6985824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0765822, + "inode": 527090, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3824", + "xusr": false, + "atime": 1436810541.0765822, + "isdir": false, + "ctime": 1436810541.0765822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1505823, + "inode": 525889, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2623", + "xusr": false, + "atime": 1436810540.1505823, + "isdir": false, + "ctime": 1436810540.1505823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8995824, + "inode": 524361, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1095", + "xusr": false, + "atime": 1436810538.8995824, + "isdir": false, + "ctime": 1436810538.8995824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0565822, + "inode": 525800, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2534", + "xusr": false, + "atime": 1436810540.0565822, + "isdir": false, + "ctime": 1436810540.0565822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1525824, + "inode": 527196, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3930", + "xusr": false, + "atime": 1436810541.1525824, + "isdir": false, + "ctime": 1436810541.1525824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5075824, + "inode": 526304, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3038", + "xusr": false, + "atime": 1436810540.5075824, + "isdir": false, + "ctime": 1436810540.5075824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8915823, + "inode": 524350, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1084", + "xusr": false, + "atime": 1436810538.8915823, + "isdir": false, + "ctime": 1436810538.8915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3755822, + "inode": 523667, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/401", + "xusr": false, + "atime": 1436810538.3755822, + "isdir": false, + "ctime": 1436810538.3755822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5095823, + "inode": 525130, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1864", + "xusr": false, + "atime": 1436810539.5095823, + "isdir": false, + "ctime": 1436810539.5095823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3345823, + "inode": 523633, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/367", + "xusr": false, + "atime": 1436810538.3345823, + "isdir": false, + "ctime": 1436810538.3345823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9645822, + "inode": 524450, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1184", + "xusr": false, + "atime": 1436810538.9645822, + "isdir": false, + "ctime": 1436810538.9645822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6825824, + "inode": 526541, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3275", + "xusr": false, + "atime": 1436810540.6825824, + "isdir": false, + "ctime": 1436810540.6825824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5445824, + "inode": 527690, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4424", + "xusr": false, + "atime": 1436810541.5445824, + "isdir": false, + "ctime": 1436810541.5445824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8765824, + "inode": 528146, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4880", + "xusr": false, + "atime": 1436810541.8765824, + "isdir": false, + "ctime": 1436810541.8765824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7335823, + "inode": 526612, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3346", + "xusr": false, + "atime": 1436810540.7335823, + "isdir": false, + "ctime": 1436810540.7335823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6815822, + "inode": 524075, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/809", + "xusr": false, + "atime": 1436810538.6815822, + "isdir": false, + "ctime": 1436810538.6815822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4205823, + "inode": 523724, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/458", + "xusr": false, + "atime": 1436810538.4205823, + "isdir": false, + "ctime": 1436810538.4205823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5625823, + "inode": 523913, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/647", + "xusr": false, + "atime": 1436810538.5625823, + "isdir": false, + "ctime": 1436810538.5625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3045824, + "inode": 527403, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4137", + "xusr": false, + "atime": 1436810541.3045824, + "isdir": false, + "ctime": 1436810541.3045824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2635822, + "inode": 524877, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1611", + "xusr": false, + "atime": 1436810539.2635822, + "isdir": false, + "ctime": 1436810539.2635822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3835824, + "inode": 527477, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4211", + "xusr": false, + "atime": 1436810541.3835824, + "isdir": false, + "ctime": 1436810541.3835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4965823, + "inode": 525117, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1851", + "xusr": false, + "atime": 1436810539.4965823, + "isdir": false, + "ctime": 1436810539.4965823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2035823, + "inode": 523463, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/197", + "xusr": false, + "atime": 1436810538.2035823, + "isdir": false, + "ctime": 1436810538.2035823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3585823, + "inode": 526133, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2867", + "xusr": false, + "atime": 1436810540.3585823, + "isdir": false, + "ctime": 1436810540.3585823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1285822, + "inode": 523354, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/88", + "xusr": false, + "atime": 1436810538.1285822, + "isdir": false, + "ctime": 1436810538.1285822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3285823, + "inode": 527426, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4160", + "xusr": false, + "atime": 1436810541.3285823, + "isdir": false, + "ctime": 1436810541.3285823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1345823, + "inode": 523363, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/97", + "xusr": false, + "atime": 1436810538.1345823, + "isdir": false, + "ctime": 1436810538.1345823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0265822, + "inode": 525764, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2498", + "xusr": false, + "atime": 1436810540.0265822, + "isdir": false, + "ctime": 1436810540.0265822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2545824, + "inode": 526003, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2737", + "xusr": false, + "atime": 1436810540.2545824, + "isdir": false, + "ctime": 1436810540.2545824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5475824, + "inode": 527694, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4428", + "xusr": false, + "atime": 1436810541.5475824, + "isdir": false, + "ctime": 1436810541.5475824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0835824, + "inode": 527101, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3835", + "xusr": false, + "atime": 1436810541.0835824, + "isdir": false, + "ctime": 1436810541.0835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4035823, + "inode": 525028, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1762", + "xusr": false, + "atime": 1436810539.4035823, + "isdir": false, + "ctime": 1436810539.4035823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8155823, + "inode": 526728, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3462", + "xusr": false, + "atime": 1436810540.8155823, + "isdir": false, + "ctime": 1436810540.8155823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1505823, + "inode": 527193, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3927", + "xusr": false, + "atime": 1436810541.1505823, + "isdir": false, + "ctime": 1436810541.1505823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2895823, + "inode": 524914, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1648", + "xusr": false, + "atime": 1436810539.2895823, + "isdir": false, + "ctime": 1436810539.2895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6625824, + "inode": 524049, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/783", + "xusr": false, + "atime": 1436810538.6625824, + "isdir": false, + "ctime": 1436810538.6625824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3295822, + "inode": 524958, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1692", + "xusr": false, + "atime": 1436810539.3295822, + "isdir": false, + "ctime": 1436810539.3295822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8755822, + "inode": 528145, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4879", + "xusr": false, + "atime": 1436810541.8755822, + "isdir": false, + "ctime": 1436810541.8755822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1205823, + "inode": 523343, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/77", + "xusr": false, + "atime": 1436810538.1205823, + "isdir": false, + "ctime": 1436810538.1205823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0865824, + "inode": 527104, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3838", + "xusr": false, + "atime": 1436810541.0865824, + "isdir": false, + "ctime": 1436810541.0865824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8985822, + "inode": 526844, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3578", + "xusr": false, + "atime": 1436810540.8985822, + "isdir": false, + "ctime": 1436810540.8985822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4115822, + "inode": 523712, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/446", + "xusr": false, + "atime": 1436810538.4115822, + "isdir": false, + "ctime": 1436810538.4115822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6125822, + "inode": 523981, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/715", + "xusr": false, + "atime": 1436810538.6125822, + "isdir": false, + "ctime": 1436810538.6125822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7865822, + "inode": 524209, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/943", + "xusr": false, + "atime": 1436810538.7865822, + "isdir": false, + "ctime": 1436810538.7865822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7085824, + "inode": 527917, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4651", + "xusr": false, + "atime": 1436810541.7085824, + "isdir": false, + "ctime": 1436810541.7085824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0485823, + "inode": 527052, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3786", + "xusr": false, + "atime": 1436810541.0485823, + "isdir": false, + "ctime": 1436810541.0485823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9955823, + "inode": 525722, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2456", + "xusr": false, + "atime": 1436810539.9955823, + "isdir": false, + "ctime": 1436810539.9955823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3835824, + "inode": 525009, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1743", + "xusr": false, + "atime": 1436810539.3835824, + "isdir": false, + "ctime": 1436810539.3835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3475823, + "inode": 527447, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4181", + "xusr": false, + "atime": 1436810541.3475823, + "isdir": false, + "ctime": 1436810541.3475823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8505824, + "inode": 526776, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3510", + "xusr": false, + "atime": 1436810540.8505824, + "isdir": false, + "ctime": 1436810540.8505824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1475823, + "inode": 523382, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/116", + "xusr": false, + "atime": 1436810538.1475823, + "isdir": false, + "ctime": 1436810538.1475823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5675824, + "inode": 525191, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1925", + "xusr": false, + "atime": 1436810539.5675824, + "isdir": false, + "ctime": 1436810539.5675824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6355822, + "inode": 527816, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4550", + "xusr": false, + "atime": 1436810541.6355822, + "isdir": false, + "ctime": 1436810541.6355822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0655823, + "inode": 524592, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1326", + "xusr": false, + "atime": 1436810539.0655823, + "isdir": false, + "ctime": 1436810539.0655823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4305823, + "inode": 526235, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2969", + "xusr": false, + "atime": 1436810540.4305823, + "isdir": false, + "ctime": 1436810540.4305823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3805823, + "inode": 526165, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2899", + "xusr": false, + "atime": 1436810540.3805823, + "isdir": false, + "ctime": 1436810540.3805823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2455823, + "inode": 527322, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4056", + "xusr": false, + "atime": 1436810541.2455823, + "isdir": false, + "ctime": 1436810541.2455823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8155823, + "inode": 525472, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2206", + "xusr": false, + "atime": 1436810539.8155823, + "isdir": false, + "ctime": 1436810539.8155823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1025822, + "inode": 523320, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/54", + "xusr": false, + "atime": 1436810538.1025822, + "isdir": false, + "ctime": 1436810538.1025822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7385824, + "inode": 524149, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/883", + "xusr": false, + "atime": 1436810538.7385824, + "isdir": false, + "ctime": 1436810538.7385824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5575824, + "inode": 523905, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/639", + "xusr": false, + "atime": 1436810538.5575824, + "isdir": false, + "ctime": 1436810538.5575824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4935822, + "inode": 523818, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/552", + "xusr": false, + "atime": 1436810538.4935822, + "isdir": false, + "ctime": 1436810538.4935822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7325823, + "inode": 525368, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2102", + "xusr": false, + "atime": 1436810539.7325823, + "isdir": false, + "ctime": 1436810539.7325823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1285822, + "inode": 527162, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3896", + "xusr": false, + "atime": 1436810541.1285822, + "isdir": false, + "ctime": 1436810541.1285822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2955823, + "inode": 527392, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4126", + "xusr": false, + "atime": 1436810541.2955823, + "isdir": false, + "ctime": 1436810541.2955823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0535824, + "inode": 524575, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1309", + "xusr": false, + "atime": 1436810539.0535824, + "isdir": false, + "ctime": 1436810539.0535824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1205823, + "inode": 527152, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3886", + "xusr": false, + "atime": 1436810541.1205823, + "isdir": false, + "ctime": 1436810541.1205823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3615823, + "inode": 526138, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2872", + "xusr": false, + "atime": 1436810540.3615823, + "isdir": false, + "ctime": 1436810540.3615823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6255822, + "inode": 527803, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4537", + "xusr": false, + "atime": 1436810541.6255822, + "isdir": false, + "ctime": 1436810541.6255822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6575823, + "inode": 526504, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3238", + "xusr": false, + "atime": 1436810540.6575823, + "isdir": false, + "ctime": 1436810540.6575823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1805823, + "inode": 524757, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1491", + "xusr": false, + "atime": 1436810539.1805823, + "isdir": false, + "ctime": 1436810539.1805823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6705823, + "inode": 526523, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3257", + "xusr": false, + "atime": 1436810540.6705823, + "isdir": false, + "ctime": 1436810540.6705823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4605823, + "inode": 527573, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4307", + "xusr": false, + "atime": 1436810541.4605823, + "isdir": false, + "ctime": 1436810541.4605823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2765822, + "inode": 527366, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4100", + "xusr": false, + "atime": 1436810541.2765822, + "isdir": false, + "ctime": 1436810541.2765822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0455823, + "inode": 524564, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1298", + "xusr": false, + "atime": 1436810539.0455823, + "isdir": false, + "ctime": 1436810539.0455823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8645823, + "inode": 524314, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1048", + "xusr": false, + "atime": 1436810538.8645823, + "isdir": false, + "ctime": 1436810538.8645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6535823, + "inode": 525290, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2024", + "xusr": false, + "atime": 1436810539.6535823, + "isdir": false, + "ctime": 1436810539.6535823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0965824, + "inode": 525841, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2575", + "xusr": false, + "atime": 1436810540.0965824, + "isdir": false, + "ctime": 1436810540.0965824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8755822, + "inode": 524328, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1062", + "xusr": false, + "atime": 1436810538.8755822, + "isdir": false, + "ctime": 1436810538.8755822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2165823, + "inode": 523481, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/215", + "xusr": false, + "atime": 1436810538.2165823, + "isdir": false, + "ctime": 1436810538.2165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0955822, + "inode": 523311, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/45", + "xusr": false, + "atime": 1436810538.0955822, + "isdir": false, + "ctime": 1436810538.0955822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9015822, + "inode": 528182, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4916", + "xusr": false, + "atime": 1436810541.9015822, + "isdir": false, + "ctime": 1436810541.9015822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4645822, + "inode": 523778, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/512", + "xusr": false, + "atime": 1436810538.4645822, + "isdir": false, + "ctime": 1436810538.4645822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0705824, + "inode": 523276, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/10", + "xusr": false, + "atime": 1436810538.0705824, + "isdir": false, + "ctime": 1436810538.0705824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2825823, + "inode": 523574, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/308", + "xusr": false, + "atime": 1436810538.2825823, + "isdir": false, + "ctime": 1436810538.2825823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4925823, + "inode": 527619, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4353", + "xusr": false, + "atime": 1436810541.4925823, + "isdir": false, + "ctime": 1436810541.4925823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1165824, + "inode": 523338, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/72", + "xusr": false, + "atime": 1436810538.1165824, + "isdir": false, + "ctime": 1436810538.1165824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0015824, + "inode": 524502, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1236", + "xusr": false, + "atime": 1436810539.0015824, + "isdir": false, + "ctime": 1436810539.0015824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6205823, + "inode": 523991, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/725", + "xusr": false, + "atime": 1436810538.6205823, + "isdir": false, + "ctime": 1436810538.6205823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4265823, + "inode": 527527, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4261", + "xusr": false, + "atime": 1436810541.4265823, + "isdir": false, + "ctime": 1436810541.4265823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1445823, + "inode": 523377, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/111", + "xusr": false, + "atime": 1436810538.1445823, + "isdir": false, + "ctime": 1436810538.1445823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8255823, + "inode": 528077, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4811", + "xusr": false, + "atime": 1436810541.8255823, + "isdir": false, + "ctime": 1436810541.8255823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6085823, + "inode": 525234, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1968", + "xusr": false, + "atime": 1436810539.6085823, + "isdir": false, + "ctime": 1436810539.6085823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0865824, + "inode": 523299, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/33", + "xusr": false, + "atime": 1436810538.0865824, + "isdir": false, + "ctime": 1436810538.0865824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8945823, + "inode": 528172, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4906", + "xusr": false, + "atime": 1436810541.8945823, + "isdir": false, + "ctime": 1436810541.8945823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2655823, + "inode": 527350, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4084", + "xusr": false, + "atime": 1436810541.2655823, + "isdir": false, + "ctime": 1436810541.2655823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3395822, + "inode": 527436, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4170", + "xusr": false, + "atime": 1436810541.3395822, + "isdir": false, + "ctime": 1436810541.3395822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4325824, + "inode": 527535, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4269", + "xusr": false, + "atime": 1436810541.4325824, + "isdir": false, + "ctime": 1436810541.4325824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5105822, + "inode": 526307, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3041", + "xusr": false, + "atime": 1436810540.5105822, + "isdir": false, + "ctime": 1436810540.5105822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2355824, + "inode": 527307, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4041", + "xusr": false, + "atime": 1436810541.2355824, + "isdir": false, + "ctime": 1436810541.2355824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6035824, + "inode": 527772, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4506", + "xusr": false, + "atime": 1436810541.6035824, + "isdir": false, + "ctime": 1436810541.6035824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2455823, + "inode": 527321, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4055", + "xusr": false, + "atime": 1436810541.2455823, + "isdir": false, + "ctime": 1436810541.2455823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1895823, + "inode": 523442, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/176", + "xusr": false, + "atime": 1436810538.1895823, + "isdir": false, + "ctime": 1436810538.1895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5655823, + "inode": 523917, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/651", + "xusr": false, + "atime": 1436810538.5655823, + "isdir": false, + "ctime": 1436810538.5655823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0145824, + "inode": 527005, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3739", + "xusr": false, + "atime": 1436810541.0145824, + "isdir": false, + "ctime": 1436810541.0145824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3785822, + "inode": 527470, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4204", + "xusr": false, + "atime": 1436810541.3785822, + "isdir": false, + "ctime": 1436810541.3785822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8445823, + "inode": 526767, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3501", + "xusr": false, + "atime": 1436810540.8445823, + "isdir": false, + "ctime": 1436810540.8445823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0245824, + "inode": 524534, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1268", + "xusr": false, + "atime": 1436810539.0245824, + "isdir": false, + "ctime": 1436810539.0245824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3765824, + "inode": 527467, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4201", + "xusr": false, + "atime": 1436810541.3765824, + "isdir": false, + "ctime": 1436810541.3765824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3155823, + "inode": 523614, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/348", + "xusr": false, + "atime": 1436810538.3155823, + "isdir": false, + "ctime": 1436810538.3155823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3575823, + "inode": 526132, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2866", + "xusr": false, + "atime": 1436810540.3575823, + "isdir": false, + "ctime": 1436810540.3575823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3115823, + "inode": 524942, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1676", + "xusr": false, + "atime": 1436810539.3115823, + "isdir": false, + "ctime": 1436810539.3115823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4175823, + "inode": 525046, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1780", + "xusr": false, + "atime": 1436810539.4175823, + "isdir": false, + "ctime": 1436810539.4175823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7445824, + "inode": 527966, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4700", + "xusr": false, + "atime": 1436810541.7445824, + "isdir": false, + "ctime": 1436810541.7445824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2535822, + "inode": 526002, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2736", + "xusr": false, + "atime": 1436810540.2535822, + "isdir": false, + "ctime": 1436810540.2535822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2365823, + "inode": 523508, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/242", + "xusr": false, + "atime": 1436810538.2365823, + "isdir": false, + "ctime": 1436810538.2365823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6035824, + "inode": 526430, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3164", + "xusr": false, + "atime": 1436810540.6035824, + "isdir": false, + "ctime": 1436810540.6035824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1035824, + "inode": 524647, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1381", + "xusr": false, + "atime": 1436810539.1035824, + "isdir": false, + "ctime": 1436810539.1035824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2425823, + "inode": 527318, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4052", + "xusr": false, + "atime": 1436810541.2425823, + "isdir": false, + "ctime": 1436810541.2425823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7015824, + "inode": 524102, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/836", + "xusr": false, + "atime": 1436810538.7015824, + "isdir": false, + "ctime": 1436810538.7015824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6665823, + "inode": 524055, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/789", + "xusr": false, + "atime": 1436810538.6665823, + "isdir": false, + "ctime": 1436810538.6665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1985824, + "inode": 525938, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2672", + "xusr": false, + "atime": 1436810540.1985824, + "isdir": false, + "ctime": 1436810540.1985824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2865822, + "inode": 526036, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2770", + "xusr": false, + "atime": 1436810540.2865822, + "isdir": false, + "ctime": 1436810540.2865822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3675823, + "inode": 524995, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1729", + "xusr": false, + "atime": 1436810539.3675823, + "isdir": false, + "ctime": 1436810539.3675823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6285822, + "inode": 526465, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3199", + "xusr": false, + "atime": 1436810540.6285822, + "isdir": false, + "ctime": 1436810540.6285822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9755824, + "inode": 526952, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3686", + "xusr": false, + "atime": 1436810540.9755824, + "isdir": false, + "ctime": 1436810540.9755824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0645823, + "inode": 524591, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1325", + "xusr": false, + "atime": 1436810539.0645823, + "isdir": false, + "ctime": 1436810539.0645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5605824, + "inode": 527712, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4446", + "xusr": false, + "atime": 1436810541.5605824, + "isdir": false, + "ctime": 1436810541.5605824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5065823, + "inode": 525127, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1861", + "xusr": false, + "atime": 1436810539.5065823, + "isdir": false, + "ctime": 1436810539.5065823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2025824, + "inode": 525942, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2676", + "xusr": false, + "atime": 1436810540.2025824, + "isdir": false, + "ctime": 1436810540.2025824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2075822, + "inode": 524797, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1531", + "xusr": false, + "atime": 1436810539.2075822, + "isdir": false, + "ctime": 1436810539.2075822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2245822, + "inode": 523491, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/225", + "xusr": false, + "atime": 1436810538.2245822, + "isdir": false, + "ctime": 1436810538.2245822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6075823, + "inode": 525233, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1967", + "xusr": false, + "atime": 1436810539.6075823, + "isdir": false, + "ctime": 1436810539.6075823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1475823, + "inode": 523383, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/117", + "xusr": false, + "atime": 1436810538.1475823, + "isdir": false, + "ctime": 1436810538.1475823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1785824, + "inode": 524754, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1488", + "xusr": false, + "atime": 1436810539.1785824, + "isdir": false, + "ctime": 1436810539.1785824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6715822, + "inode": 524061, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/795", + "xusr": false, + "atime": 1436810538.6715822, + "isdir": false, + "ctime": 1436810538.6715822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6445823, + "inode": 524024, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/758", + "xusr": false, + "atime": 1436810538.6445823, + "isdir": false, + "ctime": 1436810538.6445823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9965823, + "inode": 526980, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3714", + "xusr": false, + "atime": 1436810540.9965823, + "isdir": false, + "ctime": 1436810540.9965823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4445822, + "inode": 526249, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2983", + "xusr": false, + "atime": 1436810540.4445822, + "isdir": false, + "ctime": 1436810540.4445822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3975823, + "inode": 527490, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4224", + "xusr": false, + "atime": 1436810541.3975823, + "isdir": false, + "ctime": 1436810541.3975823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5995822, + "inode": 525223, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1957", + "xusr": false, + "atime": 1436810539.5995822, + "isdir": false, + "ctime": 1436810539.5995822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6035824, + "inode": 523969, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/703", + "xusr": false, + "atime": 1436810538.6035824, + "isdir": false, + "ctime": 1436810538.6035824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1135824, + "inode": 523334, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/68", + "xusr": false, + "atime": 1436810538.1135824, + "isdir": false, + "ctime": 1436810538.1135824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2515824, + "inode": 527329, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4063", + "xusr": false, + "atime": 1436810541.2515824, + "isdir": false, + "ctime": 1436810541.2515824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5745823, + "inode": 527732, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4466", + "xusr": false, + "atime": 1436810541.5745823, + "isdir": false, + "ctime": 1436810541.5745823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5755823, + "inode": 523930, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/664", + "xusr": false, + "atime": 1436810538.5755823, + "isdir": false, + "ctime": 1436810538.5755823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5835824, + "inode": 523941, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/675", + "xusr": false, + "atime": 1436810538.5835824, + "isdir": false, + "ctime": 1436810538.5835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6055822, + "inode": 525231, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1965", + "xusr": false, + "atime": 1436810539.6055822, + "isdir": false, + "ctime": 1436810539.6055822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2075822, + "inode": 523468, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/202", + "xusr": false, + "atime": 1436810538.2075822, + "isdir": false, + "ctime": 1436810538.2075822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7845824, + "inode": 526683, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3417", + "xusr": false, + "atime": 1436810540.7845824, + "isdir": false, + "ctime": 1436810540.7845824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0495822, + "inode": 525794, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2528", + "xusr": false, + "atime": 1436810540.0495822, + "isdir": false, + "ctime": 1436810540.0495822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4355824, + "inode": 523736, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/470", + "xusr": false, + "atime": 1436810538.4355824, + "isdir": false, + "ctime": 1436810538.4355824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9355824, + "inode": 526896, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3630", + "xusr": false, + "atime": 1436810540.9355824, + "isdir": false, + "ctime": 1436810540.9355824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9875822, + "inode": 525711, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2445", + "xusr": false, + "atime": 1436810539.9875822, + "isdir": false, + "ctime": 1436810539.9875822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6555824, + "inode": 524040, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/774", + "xusr": false, + "atime": 1436810538.6555824, + "isdir": false, + "ctime": 1436810538.6555824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6215823, + "inode": 526454, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3188", + "xusr": false, + "atime": 1436810540.6215823, + "isdir": false, + "ctime": 1436810540.6215823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7205822, + "inode": 524125, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/859", + "xusr": false, + "atime": 1436810538.7205822, + "isdir": false, + "ctime": 1436810538.7205822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7735822, + "inode": 526668, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3402", + "xusr": false, + "atime": 1436810540.7735822, + "isdir": false, + "ctime": 1436810540.7735822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3815823, + "inode": 526166, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2900", + "xusr": false, + "atime": 1436810540.3815823, + "isdir": false, + "ctime": 1436810540.3815823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5645823, + "inode": 523915, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/649", + "xusr": false, + "atime": 1436810538.5645823, + "isdir": false, + "ctime": 1436810538.5645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8535824, + "inode": 524298, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1032", + "xusr": false, + "atime": 1436810538.8535824, + "isdir": false, + "ctime": 1436810538.8535824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6395824, + "inode": 524018, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/752", + "xusr": false, + "atime": 1436810538.6395824, + "isdir": false, + "ctime": 1436810538.6395824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8225822, + "inode": 526736, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3470", + "xusr": false, + "atime": 1436810540.8225822, + "isdir": false, + "ctime": 1436810540.8225822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5155823, + "inode": 526314, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3048", + "xusr": false, + "atime": 1436810540.5155823, + "isdir": false, + "ctime": 1436810540.5155823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5015824, + "inode": 525122, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1856", + "xusr": false, + "atime": 1436810539.5015824, + "isdir": false, + "ctime": 1436810539.5015824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7585824, + "inode": 525398, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2132", + "xusr": false, + "atime": 1436810539.7585824, + "isdir": false, + "ctime": 1436810539.7585824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1105824, + "inode": 523330, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/64", + "xusr": false, + "atime": 1436810538.1105824, + "isdir": false, + "ctime": 1436810538.1105824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2625823, + "inode": 527346, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4080", + "xusr": false, + "atime": 1436810541.2625823, + "isdir": false, + "ctime": 1436810541.2625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5205822, + "inode": 526320, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3054", + "xusr": false, + "atime": 1436810540.5205822, + "isdir": false, + "ctime": 1436810540.5205822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3855822, + "inode": 526172, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2906", + "xusr": false, + "atime": 1436810540.3855822, + "isdir": false, + "ctime": 1436810540.3855822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8365824, + "inode": 528092, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4826", + "xusr": false, + "atime": 1436810541.8365824, + "isdir": false, + "ctime": 1436810541.8365824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1565824, + "inode": 524724, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1458", + "xusr": false, + "atime": 1436810539.1565824, + "isdir": false, + "ctime": 1436810539.1565824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6515822, + "inode": 527837, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4571", + "xusr": false, + "atime": 1436810541.6515822, + "isdir": false, + "ctime": 1436810541.6515822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4135823, + "inode": 527510, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4244", + "xusr": false, + "atime": 1436810541.4135823, + "isdir": false, + "ctime": 1436810541.4135823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6105824, + "inode": 525237, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1971", + "xusr": false, + "atime": 1436810539.6105824, + "isdir": false, + "ctime": 1436810539.6105824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8895824, + "inode": 524347, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1081", + "xusr": false, + "atime": 1436810538.8895824, + "isdir": false, + "ctime": 1436810538.8895824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2695823, + "inode": 524885, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1619", + "xusr": false, + "atime": 1436810539.2695823, + "isdir": false, + "ctime": 1436810539.2695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8425822, + "inode": 526765, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3499", + "xusr": false, + "atime": 1436810540.8425822, + "isdir": false, + "ctime": 1436810540.8425822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7115824, + "inode": 525347, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2081", + "xusr": false, + "atime": 1436810539.7115824, + "isdir": false, + "ctime": 1436810539.7115824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7975824, + "inode": 526701, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3435", + "xusr": false, + "atime": 1436810540.7975824, + "isdir": false, + "ctime": 1436810540.7975824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4565823, + "inode": 523767, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/501", + "xusr": false, + "atime": 1436810538.4565823, + "isdir": false, + "ctime": 1436810538.4565823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0345824, + "inode": 525775, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2509", + "xusr": false, + "atime": 1436810540.0345824, + "isdir": false, + "ctime": 1436810540.0345824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3555822, + "inode": 526130, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2864", + "xusr": false, + "atime": 1436810540.3555822, + "isdir": false, + "ctime": 1436810540.3555822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6145823, + "inode": 527788, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4522", + "xusr": false, + "atime": 1436810541.6145823, + "isdir": false, + "ctime": 1436810541.6145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4035823, + "inode": 523701, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/435", + "xusr": false, + "atime": 1436810538.4035823, + "isdir": false, + "ctime": 1436810538.4035823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7705822, + "inode": 528001, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4735", + "xusr": false, + "atime": 1436810541.7705822, + "isdir": false, + "ctime": 1436810541.7705822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2065823, + "inode": 527267, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4001", + "xusr": false, + "atime": 1436810541.2065823, + "isdir": false, + "ctime": 1436810541.2065823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4815824, + "inode": 523802, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/536", + "xusr": false, + "atime": 1436810538.4815824, + "isdir": false, + "ctime": 1436810538.4815824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3495822, + "inode": 527449, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4183", + "xusr": false, + "atime": 1436810541.3495822, + "isdir": false, + "ctime": 1436810541.3495822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1815822, + "inode": 523430, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/164", + "xusr": false, + "atime": 1436810538.1815822, + "isdir": false, + "ctime": 1436810538.1815822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7255824, + "inode": 524132, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/866", + "xusr": false, + "atime": 1436810538.7255824, + "isdir": false, + "ctime": 1436810538.7255824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5475824, + "inode": 526352, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3086", + "xusr": false, + "atime": 1436810540.5475824, + "isdir": false, + "ctime": 1436810540.5475824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5885823, + "inode": 526409, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3143", + "xusr": false, + "atime": 1436810540.5885823, + "isdir": false, + "ctime": 1436810540.5885823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0515823, + "inode": 524572, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1306", + "xusr": false, + "atime": 1436810539.0515823, + "isdir": false, + "ctime": 1436810539.0515823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6605823, + "inode": 525298, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2032", + "xusr": false, + "atime": 1436810539.6605823, + "isdir": false, + "ctime": 1436810539.6605823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3305824, + "inode": 526095, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2829", + "xusr": false, + "atime": 1436810540.3305824, + "isdir": false, + "ctime": 1436810540.3305824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7435822, + "inode": 527964, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4698", + "xusr": false, + "atime": 1436810541.7435822, + "isdir": false, + "ctime": 1436810541.7435822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2515824, + "inode": 524860, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1594", + "xusr": false, + "atime": 1436810539.2515824, + "isdir": false, + "ctime": 1436810539.2515824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4515824, + "inode": 525070, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1804", + "xusr": false, + "atime": 1436810539.4515824, + "isdir": false, + "ctime": 1436810539.4515824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9285824, + "inode": 528219, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4953", + "xusr": false, + "atime": 1436810541.9285824, + "isdir": false, + "ctime": 1436810541.9285824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3515823, + "inode": 523651, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/385", + "xusr": false, + "atime": 1436810538.3515823, + "isdir": false, + "ctime": 1436810538.3515823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2915823, + "inode": 527387, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4121", + "xusr": false, + "atime": 1436810541.2915823, + "isdir": false, + "ctime": 1436810541.2915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3365824, + "inode": 526103, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2837", + "xusr": false, + "atime": 1436810540.3365824, + "isdir": false, + "ctime": 1436810540.3365824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9815824, + "inode": 524475, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1209", + "xusr": false, + "atime": 1436810538.9815824, + "isdir": false, + "ctime": 1436810538.9815824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3425822, + "inode": 523639, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/373", + "xusr": false, + "atime": 1436810538.3425822, + "isdir": false, + "ctime": 1436810538.3425822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2765822, + "inode": 524896, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1630", + "xusr": false, + "atime": 1436810539.2765822, + "isdir": false, + "ctime": 1436810539.2765822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1295824, + "inode": 527164, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3898", + "xusr": false, + "atime": 1436810541.1295824, + "isdir": false, + "ctime": 1436810541.1295824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4435823, + "inode": 523748, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/482", + "xusr": false, + "atime": 1436810538.4435823, + "isdir": false, + "ctime": 1436810538.4435823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2375822, + "inode": 527311, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4045", + "xusr": false, + "atime": 1436810541.2375822, + "isdir": false, + "ctime": 1436810541.2375822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1235824, + "inode": 527155, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3889", + "xusr": false, + "atime": 1436810541.1235824, + "isdir": false, + "ctime": 1436810541.1235824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9365823, + "inode": 524411, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1145", + "xusr": false, + "atime": 1436810538.9365823, + "isdir": false, + "ctime": 1436810538.9365823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1415823, + "inode": 523373, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/107", + "xusr": false, + "atime": 1436810538.1415823, + "isdir": false, + "ctime": 1436810538.1415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8585823, + "inode": 528121, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4855", + "xusr": false, + "atime": 1436810541.8585823, + "isdir": false, + "ctime": 1436810541.8585823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7005823, + "inode": 526565, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3299", + "xusr": false, + "atime": 1436810540.7005823, + "isdir": false, + "ctime": 1436810540.7005823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8915823, + "inode": 526834, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3568", + "xusr": false, + "atime": 1436810540.8915823, + "isdir": false, + "ctime": 1436810540.8915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9465823, + "inode": 528244, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4978", + "xusr": false, + "atime": 1436810541.9465823, + "isdir": false, + "ctime": 1436810541.9465823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2095823, + "inode": 527272, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4006", + "xusr": false, + "atime": 1436810541.2095823, + "isdir": false, + "ctime": 1436810541.2095823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2005823, + "inode": 524786, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1520", + "xusr": false, + "atime": 1436810539.2005823, + "isdir": false, + "ctime": 1436810539.2005823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1875823, + "inode": 525926, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2660", + "xusr": false, + "atime": 1436810540.1875823, + "isdir": false, + "ctime": 1436810540.1875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2925823, + "inode": 524918, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1652", + "xusr": false, + "atime": 1436810539.2925823, + "isdir": false, + "ctime": 1436810539.2925823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4085822, + "inode": 527504, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4238", + "xusr": false, + "atime": 1436810541.4085822, + "isdir": false, + "ctime": 1436810541.4085822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6435823, + "inode": 526486, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3220", + "xusr": false, + "atime": 1436810540.6435823, + "isdir": false, + "ctime": 1436810540.6435823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0995822, + "inode": 523316, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/50", + "xusr": false, + "atime": 1436810538.0995822, + "isdir": false, + "ctime": 1436810538.0995822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9795823, + "inode": 524472, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1206", + "xusr": false, + "atime": 1436810538.9795823, + "isdir": false, + "ctime": 1436810538.9795823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6945822, + "inode": 525328, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2062", + "xusr": false, + "atime": 1436810539.6945822, + "isdir": false, + "ctime": 1436810539.6945822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2785823, + "inode": 526030, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2764", + "xusr": false, + "atime": 1436810540.2785823, + "isdir": false, + "ctime": 1436810540.2785823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6395824, + "inode": 525275, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2009", + "xusr": false, + "atime": 1436810539.6395824, + "isdir": false, + "ctime": 1436810539.6395824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3945823, + "inode": 526184, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2918", + "xusr": false, + "atime": 1436810540.3945823, + "isdir": false, + "ctime": 1436810540.3945823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7945824, + "inode": 524219, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/953", + "xusr": false, + "atime": 1436810538.7945824, + "isdir": false, + "ctime": 1436810538.7945824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1645823, + "inode": 527211, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3945", + "xusr": false, + "atime": 1436810541.1645823, + "isdir": false, + "ctime": 1436810541.1645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2035823, + "inode": 527263, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3997", + "xusr": false, + "atime": 1436810541.2035823, + "isdir": false, + "ctime": 1436810541.2035823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9425824, + "inode": 528239, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4973", + "xusr": false, + "atime": 1436810541.9425824, + "isdir": false, + "ctime": 1436810541.9425824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1265824, + "inode": 523352, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/86", + "xusr": false, + "atime": 1436810538.1265824, + "isdir": false, + "ctime": 1436810538.1265824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9075823, + "inode": 525602, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2336", + "xusr": false, + "atime": 1436810539.9075823, + "isdir": false, + "ctime": 1436810539.9075823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1315823, + "inode": 527167, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3901", + "xusr": false, + "atime": 1436810541.1315823, + "isdir": false, + "ctime": 1436810541.1315823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6355822, + "inode": 526475, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3209", + "xusr": false, + "atime": 1436810540.6355822, + "isdir": false, + "ctime": 1436810540.6355822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4625823, + "inode": 526265, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2999", + "xusr": false, + "atime": 1436810540.4625823, + "isdir": false, + "ctime": 1436810540.4625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0675824, + "inode": 523272, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/6", + "xusr": false, + "atime": 1436810538.0675824, + "isdir": false, + "ctime": 1436810538.0675824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7665823, + "inode": 525409, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2143", + "xusr": false, + "atime": 1436810539.7665823, + "isdir": false, + "ctime": 1436810539.7665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4495823, + "inode": 526255, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2989", + "xusr": false, + "atime": 1436810540.4495823, + "isdir": false, + "ctime": 1436810540.4495823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9505823, + "inode": 525660, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2394", + "xusr": false, + "atime": 1436810539.9505823, + "isdir": false, + "ctime": 1436810539.9505823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9475822, + "inode": 526912, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3646", + "xusr": false, + "atime": 1436810540.9475822, + "isdir": false, + "ctime": 1436810540.9475822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9545822, + "inode": 525666, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2400", + "xusr": false, + "atime": 1436810539.9545822, + "isdir": false, + "ctime": 1436810539.9545822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6445823, + "inode": 527828, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4562", + "xusr": false, + "atime": 1436810541.6445823, + "isdir": false, + "ctime": 1436810541.6445823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1465824, + "inode": 525886, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2620", + "xusr": false, + "atime": 1436810540.1465824, + "isdir": false, + "ctime": 1436810540.1465824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2475822, + "inode": 527324, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4058", + "xusr": false, + "atime": 1436810541.2475822, + "isdir": false, + "ctime": 1436810541.2475822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5615823, + "inode": 527713, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4447", + "xusr": false, + "atime": 1436810541.5615823, + "isdir": false, + "ctime": 1436810541.5615823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3245823, + "inode": 527421, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4155", + "xusr": false, + "atime": 1436810541.3245823, + "isdir": false, + "ctime": 1436810541.3245823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8475823, + "inode": 525518, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2252", + "xusr": false, + "atime": 1436810539.8475823, + "isdir": false, + "ctime": 1436810539.8475823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3485823, + "inode": 526119, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2853", + "xusr": false, + "atime": 1436810540.3485823, + "isdir": false, + "ctime": 1436810540.3485823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2215824, + "inode": 524816, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1550", + "xusr": false, + "atime": 1436810539.2215824, + "isdir": false, + "ctime": 1436810539.2215824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8545823, + "inode": 528116, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4850", + "xusr": false, + "atime": 1436810541.8545823, + "isdir": false, + "ctime": 1436810541.8545823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2755823, + "inode": 527364, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4098", + "xusr": false, + "atime": 1436810541.2755823, + "isdir": false, + "ctime": 1436810541.2755823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6215823, + "inode": 525252, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1986", + "xusr": false, + "atime": 1436810539.6215823, + "isdir": false, + "ctime": 1436810539.6215823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8005824, + "inode": 528043, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4777", + "xusr": false, + "atime": 1436810541.8005824, + "isdir": false, + "ctime": 1436810541.8005824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0975823, + "inode": 525842, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2576", + "xusr": false, + "atime": 1436810540.0975823, + "isdir": false, + "ctime": 1436810540.0975823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6925824, + "inode": 526554, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3288", + "xusr": false, + "atime": 1436810540.6925824, + "isdir": false, + "ctime": 1436810540.6925824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1175823, + "inode": 527148, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3882", + "xusr": false, + "atime": 1436810541.1175823, + "isdir": false, + "ctime": 1436810541.1175823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4055824, + "inode": 523703, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/437", + "xusr": false, + "atime": 1436810538.4055824, + "isdir": false, + "ctime": 1436810538.4055824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1295824, + "inode": 523356, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/90", + "xusr": false, + "atime": 1436810538.1295824, + "isdir": false, + "ctime": 1436810538.1295824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2005823, + "inode": 525940, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2674", + "xusr": false, + "atime": 1436810540.2005823, + "isdir": false, + "ctime": 1436810540.2005823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4085822, + "inode": 523708, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/442", + "xusr": false, + "atime": 1436810538.4085822, + "isdir": false, + "ctime": 1436810538.4085822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3205824, + "inode": 523620, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/354", + "xusr": false, + "atime": 1436810538.3205824, + "isdir": false, + "ctime": 1436810538.3205824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1395824, + "inode": 525879, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2613", + "xusr": false, + "atime": 1436810540.1395824, + "isdir": false, + "ctime": 1436810540.1395824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8895824, + "inode": 528165, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4899", + "xusr": false, + "atime": 1436810541.8895824, + "isdir": false, + "ctime": 1436810541.8895824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2125823, + "inode": 525955, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2689", + "xusr": false, + "atime": 1436810540.2125823, + "isdir": false, + "ctime": 1436810540.2125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8935823, + "inode": 528171, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4905", + "xusr": false, + "atime": 1436810541.8935823, + "isdir": false, + "ctime": 1436810541.8935823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6845822, + "inode": 525318, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2052", + "xusr": false, + "atime": 1436810539.6845822, + "isdir": false, + "ctime": 1436810539.6845822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0035822, + "inode": 525733, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2467", + "xusr": false, + "atime": 1436810540.0035822, + "isdir": false, + "ctime": 1436810540.0035822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6485822, + "inode": 524030, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/764", + "xusr": false, + "atime": 1436810538.6485822, + "isdir": false, + "ctime": 1436810538.6485822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7615824, + "inode": 526651, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3385", + "xusr": false, + "atime": 1436810540.7615824, + "isdir": false, + "ctime": 1436810540.7615824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2765822, + "inode": 524895, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1629", + "xusr": false, + "atime": 1436810539.2765822, + "isdir": false, + "ctime": 1436810539.2765822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6455822, + "inode": 526488, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3222", + "xusr": false, + "atime": 1436810540.6455822, + "isdir": false, + "ctime": 1436810540.6455822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8415823, + "inode": 528099, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4833", + "xusr": false, + "atime": 1436810541.8415823, + "isdir": false, + "ctime": 1436810541.8415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0685823, + "inode": 523273, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/7", + "xusr": false, + "atime": 1436810538.0685823, + "isdir": false, + "ctime": 1436810538.0685823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8325822, + "inode": 525496, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2230", + "xusr": false, + "atime": 1436810539.8325822, + "isdir": false, + "ctime": 1436810539.8325822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5195823, + "inode": 525138, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1872", + "xusr": false, + "atime": 1436810539.5195823, + "isdir": false, + "ctime": 1436810539.5195823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1245823, + "inode": 523348, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/82", + "xusr": false, + "atime": 1436810538.1245823, + "isdir": false, + "ctime": 1436810538.1245823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9345822, + "inode": 528228, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4962", + "xusr": false, + "atime": 1436810541.9345822, + "isdir": false, + "ctime": 1436810541.9345822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2015824, + "inode": 523459, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/193", + "xusr": false, + "atime": 1436810538.2015824, + "isdir": false, + "ctime": 1436810538.2015824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0135822, + "inode": 527003, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3737", + "xusr": false, + "atime": 1436810541.0135822, + "isdir": false, + "ctime": 1436810541.0135822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0965824, + "inode": 523312, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/46", + "xusr": false, + "atime": 1436810538.0965824, + "isdir": false, + "ctime": 1436810538.0965824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2845824, + "inode": 523577, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/311", + "xusr": false, + "atime": 1436810538.2845824, + "isdir": false, + "ctime": 1436810538.2845824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4175823, + "inode": 525045, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1779", + "xusr": false, + "atime": 1436810539.4175823, + "isdir": false, + "ctime": 1436810539.4175823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9835823, + "inode": 525705, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2439", + "xusr": false, + "atime": 1436810539.9835823, + "isdir": false, + "ctime": 1436810539.9835823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2515824, + "inode": 523530, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/264", + "xusr": false, + "atime": 1436810538.2515824, + "isdir": false, + "ctime": 1436810538.2515824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2715824, + "inode": 527359, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4093", + "xusr": false, + "atime": 1436810541.2715824, + "isdir": false, + "ctime": 1436810541.2715824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8085823, + "inode": 526717, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3451", + "xusr": false, + "atime": 1436810540.8085823, + "isdir": false, + "ctime": 1436810540.8085823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5005822, + "inode": 523828, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/562", + "xusr": false, + "atime": 1436810538.5005822, + "isdir": false, + "ctime": 1436810538.5005822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8995824, + "inode": 524360, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1094", + "xusr": false, + "atime": 1436810538.8995824, + "isdir": false, + "ctime": 1436810538.8995824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5885823, + "inode": 526408, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3142", + "xusr": false, + "atime": 1436810540.5885823, + "isdir": false, + "ctime": 1436810540.5885823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4635823, + "inode": 525080, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1814", + "xusr": false, + "atime": 1436810539.4635823, + "isdir": false, + "ctime": 1436810539.4635823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9885824, + "inode": 526971, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3705", + "xusr": false, + "atime": 1436810540.9885824, + "isdir": false, + "ctime": 1436810540.9885824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7785823, + "inode": 526674, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3408", + "xusr": false, + "atime": 1436810540.7785823, + "isdir": false, + "ctime": 1436810540.7785823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9585824, + "inode": 528261, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4995", + "xusr": false, + "atime": 1436810541.9585824, + "isdir": false, + "ctime": 1436810541.9585824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2645824, + "inode": 524878, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1612", + "xusr": false, + "atime": 1436810539.2645824, + "isdir": false, + "ctime": 1436810539.2645824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9575822, + "inode": 524440, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1174", + "xusr": false, + "atime": 1436810538.9575822, + "isdir": false, + "ctime": 1436810538.9575822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0115824, + "inode": 527001, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3735", + "xusr": false, + "atime": 1436810541.0115824, + "isdir": false, + "ctime": 1436810541.0115824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8255823, + "inode": 526740, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3474", + "xusr": false, + "atime": 1436810540.8255823, + "isdir": false, + "ctime": 1436810540.8255823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5605824, + "inode": 526369, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3103", + "xusr": false, + "atime": 1436810540.5605824, + "isdir": false, + "ctime": 1436810540.5605824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3235824, + "inode": 524955, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1689", + "xusr": false, + "atime": 1436810539.3235824, + "isdir": false, + "ctime": 1436810539.3235824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5625823, + "inode": 523912, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/646", + "xusr": false, + "atime": 1436810538.5625823, + "isdir": false, + "ctime": 1436810538.5625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4825823, + "inode": 526287, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3021", + "xusr": false, + "atime": 1436810540.4825823, + "isdir": false, + "ctime": 1436810540.4825823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4545822, + "inode": 523764, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/498", + "xusr": false, + "atime": 1436810538.4545822, + "isdir": false, + "ctime": 1436810538.4545822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3405824, + "inode": 523637, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/371", + "xusr": false, + "atime": 1436810538.3405824, + "isdir": false, + "ctime": 1436810538.3405824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3775823, + "inode": 527469, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4203", + "xusr": false, + "atime": 1436810541.3775823, + "isdir": false, + "ctime": 1436810541.3775823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9975822, + "inode": 526982, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3716", + "xusr": false, + "atime": 1436810540.9975822, + "isdir": false, + "ctime": 1436810540.9975822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1005824, + "inode": 524643, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1377", + "xusr": false, + "atime": 1436810539.1005824, + "isdir": false, + "ctime": 1436810539.1005824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0725822, + "inode": 523279, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/13", + "xusr": false, + "atime": 1436810538.0725822, + "isdir": false, + "ctime": 1436810538.0725822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9595823, + "inode": 525673, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2407", + "xusr": false, + "atime": 1436810539.9595823, + "isdir": false, + "ctime": 1436810539.9595823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6655824, + "inode": 526516, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3250", + "xusr": false, + "atime": 1436810540.6655824, + "isdir": false, + "ctime": 1436810540.6655824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2575824, + "inode": 526006, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2740", + "xusr": false, + "atime": 1436810540.2575824, + "isdir": false, + "ctime": 1436810540.2575824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6935823, + "inode": 527896, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4630", + "xusr": false, + "atime": 1436810541.6935823, + "isdir": false, + "ctime": 1436810541.6935823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1045823, + "inode": 523322, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/56", + "xusr": false, + "atime": 1436810538.1045823, + "isdir": false, + "ctime": 1436810538.1045823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5095823, + "inode": 523841, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/575", + "xusr": false, + "atime": 1436810538.5095823, + "isdir": false, + "ctime": 1436810538.5095823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5395823, + "inode": 523880, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/614", + "xusr": false, + "atime": 1436810538.5395823, + "isdir": false, + "ctime": 1436810538.5395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4055824, + "inode": 525030, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1764", + "xusr": false, + "atime": 1436810539.4055824, + "isdir": false, + "ctime": 1436810539.4055824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7785823, + "inode": 528012, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4746", + "xusr": false, + "atime": 1436810541.7785823, + "isdir": false, + "ctime": 1436810541.7785823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3455822, + "inode": 524975, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1709", + "xusr": false, + "atime": 1436810539.3455822, + "isdir": false, + "ctime": 1436810539.3455822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4575822, + "inode": 525075, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1809", + "xusr": false, + "atime": 1436810539.4575822, + "isdir": false, + "ctime": 1436810539.4575822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2075822, + "inode": 527268, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4002", + "xusr": false, + "atime": 1436810541.2075822, + "isdir": false, + "ctime": 1436810541.2075822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2045822, + "inode": 525945, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2679", + "xusr": false, + "atime": 1436810540.2045822, + "isdir": false, + "ctime": 1436810540.2045822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4535823, + "inode": 523763, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/497", + "xusr": false, + "atime": 1436810538.4535823, + "isdir": false, + "ctime": 1436810538.4535823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7515824, + "inode": 525389, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2123", + "xusr": false, + "atime": 1436810539.7515824, + "isdir": false, + "ctime": 1436810539.7515824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6635823, + "inode": 524051, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/785", + "xusr": false, + "atime": 1436810538.6635823, + "isdir": false, + "ctime": 1436810538.6635823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0935824, + "inode": 523308, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/42", + "xusr": false, + "atime": 1436810538.0935824, + "isdir": false, + "ctime": 1436810538.0935824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2675824, + "inode": 524883, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1617", + "xusr": false, + "atime": 1436810539.2675824, + "isdir": false, + "ctime": 1436810539.2675824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9995823, + "inode": 525727, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2461", + "xusr": false, + "atime": 1436810539.9995823, + "isdir": false, + "ctime": 1436810539.9995823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1305823, + "inode": 524686, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1420", + "xusr": false, + "atime": 1436810539.1305823, + "isdir": false, + "ctime": 1436810539.1305823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3905823, + "inode": 523683, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/417", + "xusr": false, + "atime": 1436810538.3905823, + "isdir": false, + "ctime": 1436810538.3905823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1675823, + "inode": 524739, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1473", + "xusr": false, + "atime": 1436810539.1675823, + "isdir": false, + "ctime": 1436810539.1675823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7055824, + "inode": 527912, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4646", + "xusr": false, + "atime": 1436810541.7055824, + "isdir": false, + "ctime": 1436810541.7055824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4485824, + "inode": 527557, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4291", + "xusr": false, + "atime": 1436810541.4485824, + "isdir": false, + "ctime": 1436810541.4485824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8825824, + "inode": 528155, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4889", + "xusr": false, + "atime": 1436810541.8825824, + "isdir": false, + "ctime": 1436810541.8825824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1645823, + "inode": 523406, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/140", + "xusr": false, + "atime": 1436810538.1645823, + "isdir": false, + "ctime": 1436810538.1645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8015823, + "inode": 525453, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2187", + "xusr": false, + "atime": 1436810539.8015823, + "isdir": false, + "ctime": 1436810539.8015823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8035824, + "inode": 525456, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2190", + "xusr": false, + "atime": 1436810539.8035824, + "isdir": false, + "ctime": 1436810539.8035824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3755822, + "inode": 527466, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4200", + "xusr": false, + "atime": 1436810541.3755822, + "isdir": false, + "ctime": 1436810541.3755822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7785823, + "inode": 525426, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2160", + "xusr": false, + "atime": 1436810539.7785823, + "isdir": false, + "ctime": 1436810539.7785823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1505823, + "inode": 524715, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1449", + "xusr": false, + "atime": 1436810539.1505823, + "isdir": false, + "ctime": 1436810539.1505823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9315822, + "inode": 526891, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3625", + "xusr": false, + "atime": 1436810540.9315822, + "isdir": false, + "ctime": 1436810540.9315822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8015823, + "inode": 526708, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3442", + "xusr": false, + "atime": 1436810540.8015823, + "isdir": false, + "ctime": 1436810540.8015823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0315824, + "inode": 524544, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1278", + "xusr": false, + "atime": 1436810539.0315824, + "isdir": false, + "ctime": 1436810539.0315824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0185823, + "inode": 525754, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2488", + "xusr": false, + "atime": 1436810540.0185823, + "isdir": false, + "ctime": 1436810540.0185823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3305824, + "inode": 524959, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1693", + "xusr": false, + "atime": 1436810539.3305824, + "isdir": false, + "ctime": 1436810539.3305824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8845823, + "inode": 524340, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1074", + "xusr": false, + "atime": 1436810538.8845823, + "isdir": false, + "ctime": 1436810538.8845823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1855824, + "inode": 523436, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/170", + "xusr": false, + "atime": 1436810538.1855824, + "isdir": false, + "ctime": 1436810538.1855824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5055823, + "inode": 523835, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/569", + "xusr": false, + "atime": 1436810538.5055823, + "isdir": false, + "ctime": 1436810538.5055823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8665824, + "inode": 528132, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4866", + "xusr": false, + "atime": 1436810541.8665824, + "isdir": false, + "ctime": 1436810541.8665824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8865824, + "inode": 525573, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2307", + "xusr": false, + "atime": 1436810539.8865824, + "isdir": false, + "ctime": 1436810539.8865824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3175824, + "inode": 527418, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4152", + "xusr": false, + "atime": 1436810541.3175824, + "isdir": false, + "ctime": 1436810541.3175824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4565823, + "inode": 527568, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4302", + "xusr": false, + "atime": 1436810541.4565823, + "isdir": false, + "ctime": 1436810541.4565823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9255824, + "inode": 526882, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3616", + "xusr": false, + "atime": 1436810540.9255824, + "isdir": false, + "ctime": 1436810540.9255824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7825823, + "inode": 528018, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4752", + "xusr": false, + "atime": 1436810541.7825823, + "isdir": false, + "ctime": 1436810541.7825823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3075824, + "inode": 527406, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4140", + "xusr": false, + "atime": 1436810541.3075824, + "isdir": false, + "ctime": 1436810541.3075824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9905822, + "inode": 525715, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2449", + "xusr": false, + "atime": 1436810539.9905822, + "isdir": false, + "ctime": 1436810539.9905822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1455822, + "inode": 523379, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/113", + "xusr": false, + "atime": 1436810538.1455822, + "isdir": false, + "ctime": 1436810538.1455822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0785823, + "inode": 527093, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3827", + "xusr": false, + "atime": 1436810541.0785823, + "isdir": false, + "ctime": 1436810541.0785823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5465822, + "inode": 523890, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/624", + "xusr": false, + "atime": 1436810538.5465822, + "isdir": false, + "ctime": 1436810538.5465822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7345824, + "inode": 525371, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2105", + "xusr": false, + "atime": 1436810539.7345824, + "isdir": false, + "ctime": 1436810539.7345824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5215824, + "inode": 525140, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1874", + "xusr": false, + "atime": 1436810539.5215824, + "isdir": false, + "ctime": 1436810539.5215824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4295824, + "inode": 527532, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4266", + "xusr": false, + "atime": 1436810541.4295824, + "isdir": false, + "ctime": 1436810541.4295824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0205822, + "inode": 527013, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3747", + "xusr": false, + "atime": 1436810541.0205822, + "isdir": false, + "ctime": 1436810541.0205822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2755823, + "inode": 526026, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2760", + "xusr": false, + "atime": 1436810540.2755823, + "isdir": false, + "ctime": 1436810540.2755823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1875823, + "inode": 524768, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1502", + "xusr": false, + "atime": 1436810539.1875823, + "isdir": false, + "ctime": 1436810539.1875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7225823, + "inode": 524128, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/862", + "xusr": false, + "atime": 1436810538.7225823, + "isdir": false, + "ctime": 1436810538.7225823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1215823, + "inode": 523345, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/79", + "xusr": false, + "atime": 1436810538.1215823, + "isdir": false, + "ctime": 1436810538.1215823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2565823, + "inode": 527337, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4071", + "xusr": false, + "atime": 1436810541.2565823, + "isdir": false, + "ctime": 1436810541.2565823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5415823, + "inode": 527686, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4420", + "xusr": false, + "atime": 1436810541.5415823, + "isdir": false, + "ctime": 1436810541.5415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8055823, + "inode": 528050, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4784", + "xusr": false, + "atime": 1436810541.8055823, + "isdir": false, + "ctime": 1436810541.8055823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6855824, + "inode": 524080, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/814", + "xusr": false, + "atime": 1436810538.6855824, + "isdir": false, + "ctime": 1436810538.6855824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4385824, + "inode": 527543, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4277", + "xusr": false, + "atime": 1436810541.4385824, + "isdir": false, + "ctime": 1436810541.4385824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0695822, + "inode": 523275, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/9", + "xusr": false, + "atime": 1436810538.0695822, + "isdir": false, + "ctime": 1436810538.0695822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4045823, + "inode": 526198, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2932", + "xusr": false, + "atime": 1436810540.4045823, + "isdir": false, + "ctime": 1436810540.4045823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9495823, + "inode": 525659, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2393", + "xusr": false, + "atime": 1436810539.9495823, + "isdir": false, + "ctime": 1436810539.9495823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0235822, + "inode": 527017, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3751", + "xusr": false, + "atime": 1436810541.0235822, + "isdir": false, + "ctime": 1436810541.0235822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0225823, + "inode": 527015, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3749", + "xusr": false, + "atime": 1436810541.0225823, + "isdir": false, + "ctime": 1436810541.0225823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5705824, + "inode": 523923, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/657", + "xusr": false, + "atime": 1436810538.5705824, + "isdir": false, + "ctime": 1436810538.5705824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8915823, + "inode": 525580, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2314", + "xusr": false, + "atime": 1436810539.8915823, + "isdir": false, + "ctime": 1436810539.8915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3805823, + "inode": 527473, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4207", + "xusr": false, + "atime": 1436810541.3805823, + "isdir": false, + "ctime": 1436810541.3805823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5275824, + "inode": 525147, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1881", + "xusr": false, + "atime": 1436810539.5275824, + "isdir": false, + "ctime": 1436810539.5275824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2625823, + "inode": 526010, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2744", + "xusr": false, + "atime": 1436810540.2625823, + "isdir": false, + "ctime": 1436810540.2625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5705824, + "inode": 526384, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3118", + "xusr": false, + "atime": 1436810540.5705824, + "isdir": false, + "ctime": 1436810540.5705824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0555823, + "inode": 525799, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2533", + "xusr": false, + "atime": 1436810540.0555823, + "isdir": false, + "ctime": 1436810540.0555823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8425822, + "inode": 525510, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2244", + "xusr": false, + "atime": 1436810539.8425822, + "isdir": false, + "ctime": 1436810539.8425822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6365824, + "inode": 527818, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4552", + "xusr": false, + "atime": 1436810541.6365824, + "isdir": false, + "ctime": 1436810541.6365824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2105823, + "inode": 524801, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1535", + "xusr": false, + "atime": 1436810539.2105823, + "isdir": false, + "ctime": 1436810539.2105823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0715823, + "inode": 527084, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3818", + "xusr": false, + "atime": 1436810541.0715823, + "isdir": false, + "ctime": 1436810541.0715823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8555822, + "inode": 524301, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1035", + "xusr": false, + "atime": 1436810538.8555822, + "isdir": false, + "ctime": 1436810538.8555822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1335824, + "inode": 527169, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3903", + "xusr": false, + "atime": 1436810541.1335824, + "isdir": false, + "ctime": 1436810541.1335824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3845823, + "inode": 526170, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2904", + "xusr": false, + "atime": 1436810540.3845823, + "isdir": false, + "ctime": 1436810540.3845823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5795822, + "inode": 523936, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/670", + "xusr": false, + "atime": 1436810538.5795822, + "isdir": false, + "ctime": 1436810538.5795822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0765824, + "inode": 525820, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2554", + "xusr": false, + "atime": 1436810540.0765824, + "isdir": false, + "ctime": 1436810540.0765824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3725822, + "inode": 523663, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/397", + "xusr": false, + "atime": 1436810538.3725822, + "isdir": false, + "ctime": 1436810538.3725822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3925824, + "inode": 527483, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4217", + "xusr": false, + "atime": 1436810541.3925824, + "isdir": false, + "ctime": 1436810541.3925824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9335823, + "inode": 525637, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2371", + "xusr": false, + "atime": 1436810539.9335823, + "isdir": false, + "ctime": 1436810539.9335823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5965824, + "inode": 525219, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1953", + "xusr": false, + "atime": 1436810539.5965824, + "isdir": false, + "ctime": 1436810539.5965824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2495823, + "inode": 525996, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2730", + "xusr": false, + "atime": 1436810540.2495823, + "isdir": false, + "ctime": 1436810540.2495823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4605823, + "inode": 527574, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4308", + "xusr": false, + "atime": 1436810541.4605823, + "isdir": false, + "ctime": 1436810541.4605823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1545823, + "inode": 524721, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1455", + "xusr": false, + "atime": 1436810539.1545823, + "isdir": false, + "ctime": 1436810539.1545823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1535823, + "inode": 523391, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/125", + "xusr": false, + "atime": 1436810538.1535823, + "isdir": false, + "ctime": 1436810538.1535823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6645823, + "inode": 526515, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3249", + "xusr": false, + "atime": 1436810540.6645823, + "isdir": false, + "ctime": 1436810540.6645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4505823, + "inode": 527560, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4294", + "xusr": false, + "atime": 1436810541.4505823, + "isdir": false, + "ctime": 1436810541.4505823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0695822, + "inode": 524598, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1332", + "xusr": false, + "atime": 1436810539.0695822, + "isdir": false, + "ctime": 1436810539.0695822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5255823, + "inode": 527664, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4398", + "xusr": false, + "atime": 1436810541.5255823, + "isdir": false, + "ctime": 1436810541.5255823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1925824, + "inode": 524775, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1509", + "xusr": false, + "atime": 1436810539.1925824, + "isdir": false, + "ctime": 1436810539.1925824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2995822, + "inode": 523598, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/332", + "xusr": false, + "atime": 1436810538.2995822, + "isdir": false, + "ctime": 1436810538.2995822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2305822, + "inode": 524830, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1564", + "xusr": false, + "atime": 1436810539.2305822, + "isdir": false, + "ctime": 1436810539.2305822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3845823, + "inode": 523679, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/413", + "xusr": false, + "atime": 1436810538.3845823, + "isdir": false, + "ctime": 1436810538.3845823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7205822, + "inode": 525357, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2091", + "xusr": false, + "atime": 1436810539.7205822, + "isdir": false, + "ctime": 1436810539.7205822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0045824, + "inode": 525735, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2469", + "xusr": false, + "atime": 1436810540.0045824, + "isdir": false, + "ctime": 1436810540.0045824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9235823, + "inode": 528212, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4946", + "xusr": false, + "atime": 1436810541.9235823, + "isdir": false, + "ctime": 1436810541.9235823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7535822, + "inode": 526640, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3374", + "xusr": false, + "atime": 1436810540.7535822, + "isdir": false, + "ctime": 1436810540.7535822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2795823, + "inode": 523570, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/304", + "xusr": false, + "atime": 1436810538.2795823, + "isdir": false, + "ctime": 1436810538.2795823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3965824, + "inode": 526187, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2921", + "xusr": false, + "atime": 1436810540.3965824, + "isdir": false, + "ctime": 1436810540.3965824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0415823, + "inode": 525785, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2519", + "xusr": false, + "atime": 1436810540.0415823, + "isdir": false, + "ctime": 1436810540.0415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9085822, + "inode": 525604, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2338", + "xusr": false, + "atime": 1436810539.9085822, + "isdir": false, + "ctime": 1436810539.9085822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7765822, + "inode": 524196, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/930", + "xusr": false, + "atime": 1436810538.7765822, + "isdir": false, + "ctime": 1436810538.7765822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7735822, + "inode": 525418, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2152", + "xusr": false, + "atime": 1436810539.7735822, + "isdir": false, + "ctime": 1436810539.7735822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6665823, + "inode": 524054, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/788", + "xusr": false, + "atime": 1436810538.6665823, + "isdir": false, + "ctime": 1436810538.6665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1305823, + "inode": 527165, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3899", + "xusr": false, + "atime": 1436810541.1305823, + "isdir": false, + "ctime": 1436810541.1305823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5145824, + "inode": 527649, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4383", + "xusr": false, + "atime": 1436810541.5145824, + "isdir": false, + "ctime": 1436810541.5145824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2435822, + "inode": 523518, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/252", + "xusr": false, + "atime": 1436810538.2435822, + "isdir": false, + "ctime": 1436810538.2435822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2915823, + "inode": 523587, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/321", + "xusr": false, + "atime": 1436810538.2915823, + "isdir": false, + "ctime": 1436810538.2915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7335823, + "inode": 525369, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2103", + "xusr": false, + "atime": 1436810539.7335823, + "isdir": false, + "ctime": 1436810539.7335823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7545824, + "inode": 526641, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3375", + "xusr": false, + "atime": 1436810540.7545824, + "isdir": false, + "ctime": 1436810540.7545824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2495823, + "inode": 523527, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/261", + "xusr": false, + "atime": 1436810538.2495823, + "isdir": false, + "ctime": 1436810538.2495823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1205823, + "inode": 527151, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3885", + "xusr": false, + "atime": 1436810541.1205823, + "isdir": false, + "ctime": 1436810541.1205823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1675823, + "inode": 527215, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3949", + "xusr": false, + "atime": 1436810541.1675823, + "isdir": false, + "ctime": 1436810541.1675823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5995822, + "inode": 526425, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3159", + "xusr": false, + "atime": 1436810540.5995822, + "isdir": false, + "ctime": 1436810540.5995822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4895823, + "inode": 526292, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3026", + "xusr": false, + "atime": 1436810540.4895823, + "isdir": false, + "ctime": 1436810540.4895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3455822, + "inode": 523643, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/377", + "xusr": false, + "atime": 1436810538.3455822, + "isdir": false, + "ctime": 1436810538.3455822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5375824, + "inode": 525157, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1891", + "xusr": false, + "atime": 1436810539.5375824, + "isdir": false, + "ctime": 1436810539.5375824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9005823, + "inode": 524362, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1096", + "xusr": false, + "atime": 1436810538.9005823, + "isdir": false, + "ctime": 1436810538.9005823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7055824, + "inode": 527913, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4647", + "xusr": false, + "atime": 1436810541.7055824, + "isdir": false, + "ctime": 1436810541.7055824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5225823, + "inode": 527660, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4394", + "xusr": false, + "atime": 1436810541.5225823, + "isdir": false, + "ctime": 1436810541.5225823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8445823, + "inode": 528102, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4836", + "xusr": false, + "atime": 1436810541.8445823, + "isdir": false, + "ctime": 1436810541.8445823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2375822, + "inode": 527310, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4044", + "xusr": false, + "atime": 1436810541.2375822, + "isdir": false, + "ctime": 1436810541.2375822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4675822, + "inode": 527584, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4318", + "xusr": false, + "atime": 1436810541.4675822, + "isdir": false, + "ctime": 1436810541.4675822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5575824, + "inode": 527708, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4442", + "xusr": false, + "atime": 1436810541.5575824, + "isdir": false, + "ctime": 1436810541.5575824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8515823, + "inode": 526777, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3511", + "xusr": false, + "atime": 1436810540.8515823, + "isdir": false, + "ctime": 1436810540.8515823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2415824, + "inode": 525987, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2721", + "xusr": false, + "atime": 1436810540.2415824, + "isdir": false, + "ctime": 1436810540.2415824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9435823, + "inode": 524420, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1154", + "xusr": false, + "atime": 1436810538.9435823, + "isdir": false, + "ctime": 1436810538.9435823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8235824, + "inode": 525483, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2217", + "xusr": false, + "atime": 1436810539.8235824, + "isdir": false, + "ctime": 1436810539.8235824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8485823, + "inode": 528107, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4841", + "xusr": false, + "atime": 1436810541.8485823, + "isdir": false, + "ctime": 1436810541.8485823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0095823, + "inode": 525741, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2475", + "xusr": false, + "atime": 1436810540.0095823, + "isdir": false, + "ctime": 1436810540.0095823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6215823, + "inode": 525251, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1985", + "xusr": false, + "atime": 1436810539.6215823, + "isdir": false, + "ctime": 1436810539.6215823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4795823, + "inode": 527601, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4335", + "xusr": false, + "atime": 1436810541.4795823, + "isdir": false, + "ctime": 1436810541.4795823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9415822, + "inode": 524417, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1151", + "xusr": false, + "atime": 1436810538.9415822, + "isdir": false, + "ctime": 1436810538.9415822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8395822, + "inode": 525506, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2240", + "xusr": false, + "atime": 1436810539.8395822, + "isdir": false, + "ctime": 1436810539.8395822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2235823, + "inode": 525968, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2702", + "xusr": false, + "atime": 1436810540.2235823, + "isdir": false, + "ctime": 1436810540.2235823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4125824, + "inode": 526210, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2944", + "xusr": false, + "atime": 1436810540.4125824, + "isdir": false, + "ctime": 1436810540.4125824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7985823, + "inode": 524224, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/958", + "xusr": false, + "atime": 1436810538.7985823, + "isdir": false, + "ctime": 1436810538.7985823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5705824, + "inode": 527726, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4460", + "xusr": false, + "atime": 1436810541.5705824, + "isdir": false, + "ctime": 1436810541.5705824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3975823, + "inode": 526188, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2922", + "xusr": false, + "atime": 1436810540.3975823, + "isdir": false, + "ctime": 1436810540.3975823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9475822, + "inode": 524426, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1160", + "xusr": false, + "atime": 1436810538.9475822, + "isdir": false, + "ctime": 1436810538.9475822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9465823, + "inode": 525654, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2388", + "xusr": false, + "atime": 1436810539.9465823, + "isdir": false, + "ctime": 1436810539.9465823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1855824, + "inode": 524765, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1499", + "xusr": false, + "atime": 1436810539.1855824, + "isdir": false, + "ctime": 1436810539.1855824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5785823, + "inode": 523934, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/668", + "xusr": false, + "atime": 1436810538.5785823, + "isdir": false, + "ctime": 1436810538.5785823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6555824, + "inode": 524039, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/773", + "xusr": false, + "atime": 1436810538.6555824, + "isdir": false, + "ctime": 1436810538.6555824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3845823, + "inode": 527478, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4212", + "xusr": false, + "atime": 1436810541.3845823, + "isdir": false, + "ctime": 1436810541.3845823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7265823, + "inode": 526603, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3337", + "xusr": false, + "atime": 1436810540.7265823, + "isdir": false, + "ctime": 1436810540.7265823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2675824, + "inode": 524882, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1616", + "xusr": false, + "atime": 1436810539.2675824, + "isdir": false, + "ctime": 1436810539.2675824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1445823, + "inode": 525885, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2619", + "xusr": false, + "atime": 1436810540.1445823, + "isdir": false, + "ctime": 1436810540.1445823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7185824, + "inode": 525356, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2090", + "xusr": false, + "atime": 1436810539.7185824, + "isdir": false, + "ctime": 1436810539.7185824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3035824, + "inode": 526057, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2791", + "xusr": false, + "atime": 1436810540.3035824, + "isdir": false, + "ctime": 1436810540.3035824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1795824, + "inode": 523427, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/161", + "xusr": false, + "atime": 1436810538.1795824, + "isdir": false, + "ctime": 1436810538.1795824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5615823, + "inode": 527714, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4448", + "xusr": false, + "atime": 1436810541.5615823, + "isdir": false, + "ctime": 1436810541.5615823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5975823, + "inode": 527764, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4498", + "xusr": false, + "atime": 1436810541.5975823, + "isdir": false, + "ctime": 1436810541.5975823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4075823, + "inode": 527503, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4237", + "xusr": false, + "atime": 1436810541.4075823, + "isdir": false, + "ctime": 1436810541.4075823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7685823, + "inode": 526660, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3394", + "xusr": false, + "atime": 1436810540.7685823, + "isdir": false, + "ctime": 1436810540.7685823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9015822, + "inode": 526848, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3582", + "xusr": false, + "atime": 1436810540.9015822, + "isdir": false, + "ctime": 1436810540.9015822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1105824, + "inode": 524657, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1391", + "xusr": false, + "atime": 1436810539.1105824, + "isdir": false, + "ctime": 1436810539.1105824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1965823, + "inode": 523453, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/187", + "xusr": false, + "atime": 1436810538.1965823, + "isdir": false, + "ctime": 1436810538.1965823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3635824, + "inode": 526141, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2875", + "xusr": false, + "atime": 1436810540.3635824, + "isdir": false, + "ctime": 1436810540.3635824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5535824, + "inode": 525173, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1907", + "xusr": false, + "atime": 1436810539.5535824, + "isdir": false, + "ctime": 1436810539.5535824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1855824, + "inode": 524764, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1498", + "xusr": false, + "atime": 1436810539.1855824, + "isdir": false, + "ctime": 1436810539.1855824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2685823, + "inode": 526016, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2750", + "xusr": false, + "atime": 1436810540.2685823, + "isdir": false, + "ctime": 1436810540.2685823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6415823, + "inode": 524021, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/755", + "xusr": false, + "atime": 1436810538.6415823, + "isdir": false, + "ctime": 1436810538.6415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0215824, + "inode": 524529, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1263", + "xusr": false, + "atime": 1436810539.0215824, + "isdir": false, + "ctime": 1436810539.0215824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2365823, + "inode": 524838, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1572", + "xusr": false, + "atime": 1436810539.2365823, + "isdir": false, + "ctime": 1436810539.2365823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2345824, + "inode": 523505, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/239", + "xusr": false, + "atime": 1436810538.2345824, + "isdir": false, + "ctime": 1436810538.2345824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7755823, + "inode": 528008, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4742", + "xusr": false, + "atime": 1436810541.7755823, + "isdir": false, + "ctime": 1436810541.7755823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8095822, + "inode": 524240, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/974", + "xusr": false, + "atime": 1436810538.8095822, + "isdir": false, + "ctime": 1436810538.8095822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2815824, + "inode": 523572, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/306", + "xusr": false, + "atime": 1436810538.2815824, + "isdir": false, + "ctime": 1436810538.2815824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8675823, + "inode": 526800, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3534", + "xusr": false, + "atime": 1436810540.8675823, + "isdir": false, + "ctime": 1436810540.8675823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0665822, + "inode": 525809, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2543", + "xusr": false, + "atime": 1436810540.0665822, + "isdir": false, + "ctime": 1436810540.0665822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4955823, + "inode": 527623, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4357", + "xusr": false, + "atime": 1436810541.4955823, + "isdir": false, + "ctime": 1436810541.4955823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4855824, + "inode": 525107, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1841", + "xusr": false, + "atime": 1436810539.4855824, + "isdir": false, + "ctime": 1436810539.4855824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2545824, + "inode": 527334, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4068", + "xusr": false, + "atime": 1436810541.2545824, + "isdir": false, + "ctime": 1436810541.2545824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2595823, + "inode": 526007, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2741", + "xusr": false, + "atime": 1436810540.2595823, + "isdir": false, + "ctime": 1436810540.2595823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1825824, + "inode": 525920, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2654", + "xusr": false, + "atime": 1436810540.1825824, + "isdir": false, + "ctime": 1436810540.1825824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7735822, + "inode": 524193, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/927", + "xusr": false, + "atime": 1436810538.7735822, + "isdir": false, + "ctime": 1436810538.7735822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1635823, + "inode": 523404, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/138", + "xusr": false, + "atime": 1436810538.1635823, + "isdir": false, + "ctime": 1436810538.1635823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6265824, + "inode": 524000, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/734", + "xusr": false, + "atime": 1436810538.6265824, + "isdir": false, + "ctime": 1436810538.6265824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8915823, + "inode": 528167, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4901", + "xusr": false, + "atime": 1436810541.8915823, + "isdir": false, + "ctime": 1436810541.8915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4255824, + "inode": 526227, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2961", + "xusr": false, + "atime": 1436810540.4255824, + "isdir": false, + "ctime": 1436810540.4255824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3725822, + "inode": 526153, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2887", + "xusr": false, + "atime": 1436810540.3725822, + "isdir": false, + "ctime": 1436810540.3725822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4435823, + "inode": 527550, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4284", + "xusr": false, + "atime": 1436810541.4435823, + "isdir": false, + "ctime": 1436810541.4435823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0405824, + "inode": 524556, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1290", + "xusr": false, + "atime": 1436810539.0405824, + "isdir": false, + "ctime": 1436810539.0405824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3195822, + "inode": 524952, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1686", + "xusr": false, + "atime": 1436810539.3195822, + "isdir": false, + "ctime": 1436810539.3195822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6175823, + "inode": 523988, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/722", + "xusr": false, + "atime": 1436810538.6175823, + "isdir": false, + "ctime": 1436810538.6175823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8445823, + "inode": 524286, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1020", + "xusr": false, + "atime": 1436810538.8445823, + "isdir": false, + "ctime": 1436810538.8445823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2795823, + "inode": 527370, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4104", + "xusr": false, + "atime": 1436810541.2795823, + "isdir": false, + "ctime": 1436810541.2795823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5165823, + "inode": 527652, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4386", + "xusr": false, + "atime": 1436810541.5165823, + "isdir": false, + "ctime": 1436810541.5165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5335822, + "inode": 525154, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1888", + "xusr": false, + "atime": 1436810539.5335822, + "isdir": false, + "ctime": 1436810539.5335822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6165824, + "inode": 526447, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3181", + "xusr": false, + "atime": 1436810540.6165824, + "isdir": false, + "ctime": 1436810540.6165824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8975823, + "inode": 526843, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3577", + "xusr": false, + "atime": 1436810540.8975823, + "isdir": false, + "ctime": 1436810540.8975823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8735824, + "inode": 525555, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2289", + "xusr": false, + "atime": 1436810539.8735824, + "isdir": false, + "ctime": 1436810539.8735824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7495823, + "inode": 526634, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3368", + "xusr": false, + "atime": 1436810540.7495823, + "isdir": false, + "ctime": 1436810540.7495823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7675824, + "inode": 525410, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2144", + "xusr": false, + "atime": 1436810539.7675824, + "isdir": false, + "ctime": 1436810539.7675824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6405823, + "inode": 526481, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3215", + "xusr": false, + "atime": 1436810540.6405823, + "isdir": false, + "ctime": 1436810540.6405823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1745822, + "inode": 527224, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3958", + "xusr": false, + "atime": 1436810541.1745822, + "isdir": false, + "ctime": 1436810541.1745822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6925824, + "inode": 527894, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4628", + "xusr": false, + "atime": 1436810541.6925824, + "isdir": false, + "ctime": 1436810541.6925824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7125823, + "inode": 524117, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/851", + "xusr": false, + "atime": 1436810538.7125823, + "isdir": false, + "ctime": 1436810538.7125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0615823, + "inode": 525804, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2538", + "xusr": false, + "atime": 1436810540.0615823, + "isdir": false, + "ctime": 1436810540.0615823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2675824, + "inode": 527353, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4087", + "xusr": false, + "atime": 1436810541.2675824, + "isdir": false, + "ctime": 1436810541.2675824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2295823, + "inode": 525976, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2710", + "xusr": false, + "atime": 1436810540.2295823, + "isdir": false, + "ctime": 1436810540.2295823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8285823, + "inode": 526745, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3479", + "xusr": false, + "atime": 1436810540.8285823, + "isdir": false, + "ctime": 1436810540.8285823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2885823, + "inode": 523583, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/317", + "xusr": false, + "atime": 1436810538.2885823, + "isdir": false, + "ctime": 1436810538.2885823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6095824, + "inode": 526438, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3172", + "xusr": false, + "atime": 1436810540.6095824, + "isdir": false, + "ctime": 1436810540.6095824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6385822, + "inode": 526478, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3212", + "xusr": false, + "atime": 1436810540.6385822, + "isdir": false, + "ctime": 1436810540.6385822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7495823, + "inode": 525387, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2121", + "xusr": false, + "atime": 1436810539.7495823, + "isdir": false, + "ctime": 1436810539.7495823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0095823, + "inode": 524513, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1247", + "xusr": false, + "atime": 1436810539.0095823, + "isdir": false, + "ctime": 1436810539.0095823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9075823, + "inode": 525603, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2337", + "xusr": false, + "atime": 1436810539.9075823, + "isdir": false, + "ctime": 1436810539.9075823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9275823, + "inode": 526885, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3619", + "xusr": false, + "atime": 1436810540.9275823, + "isdir": false, + "ctime": 1436810540.9275823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1305823, + "inode": 523357, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/91", + "xusr": false, + "atime": 1436810538.1305823, + "isdir": false, + "ctime": 1436810538.1305823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0285823, + "inode": 524540, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1274", + "xusr": false, + "atime": 1436810539.0285823, + "isdir": false, + "ctime": 1436810539.0285823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5515823, + "inode": 523898, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/632", + "xusr": false, + "atime": 1436810538.5515823, + "isdir": false, + "ctime": 1436810538.5515823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1245823, + "inode": 527156, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3890", + "xusr": false, + "atime": 1436810541.1245823, + "isdir": false, + "ctime": 1436810541.1245823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5275824, + "inode": 523865, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/599", + "xusr": false, + "atime": 1436810538.5275824, + "isdir": false, + "ctime": 1436810538.5275824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0945823, + "inode": 524634, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1368", + "xusr": false, + "atime": 1436810539.0945823, + "isdir": false, + "ctime": 1436810539.0945823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4695823, + "inode": 523784, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/518", + "xusr": false, + "atime": 1436810538.4695823, + "isdir": false, + "ctime": 1436810538.4695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5735824, + "inode": 527730, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4464", + "xusr": false, + "atime": 1436810541.5735824, + "isdir": false, + "ctime": 1436810541.5735824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9075823, + "inode": 524372, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1106", + "xusr": false, + "atime": 1436810538.9075823, + "isdir": false, + "ctime": 1436810538.9075823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2785823, + "inode": 524898, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1632", + "xusr": false, + "atime": 1436810539.2785823, + "isdir": false, + "ctime": 1436810539.2785823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8635824, + "inode": 526794, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3528", + "xusr": false, + "atime": 1436810540.8635824, + "isdir": false, + "ctime": 1436810540.8635824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8105824, + "inode": 528057, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4791", + "xusr": false, + "atime": 1436810541.8105824, + "isdir": false, + "ctime": 1436810541.8105824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2485824, + "inode": 524856, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1590", + "xusr": false, + "atime": 1436810539.2485824, + "isdir": false, + "ctime": 1436810539.2485824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0155823, + "inode": 525750, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2484", + "xusr": false, + "atime": 1436810540.0155823, + "isdir": false, + "ctime": 1436810540.0155823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6485822, + "inode": 526492, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3226", + "xusr": false, + "atime": 1436810540.6485822, + "isdir": false, + "ctime": 1436810540.6485822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9375823, + "inode": 528232, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4966", + "xusr": false, + "atime": 1436810541.9375823, + "isdir": false, + "ctime": 1436810541.9375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8965824, + "inode": 528175, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4909", + "xusr": false, + "atime": 1436810541.8965824, + "isdir": false, + "ctime": 1436810541.8965824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0045824, + "inode": 525734, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2468", + "xusr": false, + "atime": 1436810540.0045824, + "isdir": false, + "ctime": 1436810540.0045824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3195822, + "inode": 523618, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/352", + "xusr": false, + "atime": 1436810538.3195822, + "isdir": false, + "ctime": 1436810538.3195822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9815824, + "inode": 524474, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1208", + "xusr": false, + "atime": 1436810538.9815824, + "isdir": false, + "ctime": 1436810538.9815824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7575824, + "inode": 526645, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3379", + "xusr": false, + "atime": 1436810540.7575824, + "isdir": false, + "ctime": 1436810540.7575824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4585824, + "inode": 527571, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4305", + "xusr": false, + "atime": 1436810541.4585824, + "isdir": false, + "ctime": 1436810541.4585824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3615823, + "inode": 527455, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4189", + "xusr": false, + "atime": 1436810541.3615823, + "isdir": false, + "ctime": 1436810541.3615823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4265823, + "inode": 525057, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1791", + "xusr": false, + "atime": 1436810539.4265823, + "isdir": false, + "ctime": 1436810539.4265823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2125823, + "inode": 524803, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1537", + "xusr": false, + "atime": 1436810539.2125823, + "isdir": false, + "ctime": 1436810539.2125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0155823, + "inode": 524522, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1256", + "xusr": false, + "atime": 1436810539.0155823, + "isdir": false, + "ctime": 1436810539.0155823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0625823, + "inode": 525805, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2539", + "xusr": false, + "atime": 1436810540.0625823, + "isdir": false, + "ctime": 1436810540.0625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5655823, + "inode": 523916, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/650", + "xusr": false, + "atime": 1436810538.5655823, + "isdir": false, + "ctime": 1436810538.5655823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5955822, + "inode": 527762, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4496", + "xusr": false, + "atime": 1436810541.5955822, + "isdir": false, + "ctime": 1436810541.5955822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2465823, + "inode": 523523, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/257", + "xusr": false, + "atime": 1436810538.2465823, + "isdir": false, + "ctime": 1436810538.2465823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1685822, + "inode": 527216, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3950", + "xusr": false, + "atime": 1436810541.1685822, + "isdir": false, + "ctime": 1436810541.1685822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2245822, + "inode": 527292, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4026", + "xusr": false, + "atime": 1436810541.2245822, + "isdir": false, + "ctime": 1436810541.2245822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0955822, + "inode": 525840, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2574", + "xusr": false, + "atime": 1436810540.0955822, + "isdir": false, + "ctime": 1436810540.0955822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5195823, + "inode": 526319, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3053", + "xusr": false, + "atime": 1436810540.5195823, + "isdir": false, + "ctime": 1436810540.5195823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3645823, + "inode": 526142, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2876", + "xusr": false, + "atime": 1436810540.3645823, + "isdir": false, + "ctime": 1436810540.3645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8565824, + "inode": 524302, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1036", + "xusr": false, + "atime": 1436810538.8565824, + "isdir": false, + "ctime": 1436810538.8565824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5695822, + "inode": 527724, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4458", + "xusr": false, + "atime": 1436810541.5695822, + "isdir": false, + "ctime": 1436810541.5695822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3385823, + "inode": 524970, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1704", + "xusr": false, + "atime": 1436810539.3385823, + "isdir": false, + "ctime": 1436810539.3385823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0325823, + "inode": 527029, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3763", + "xusr": false, + "atime": 1436810541.0325823, + "isdir": false, + "ctime": 1436810541.0325823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6245823, + "inode": 526459, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3193", + "xusr": false, + "atime": 1436810540.6245823, + "isdir": false, + "ctime": 1436810540.6245823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3285823, + "inode": 526092, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2826", + "xusr": false, + "atime": 1436810540.3285823, + "isdir": false, + "ctime": 1436810540.3285823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8865824, + "inode": 524343, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1077", + "xusr": false, + "atime": 1436810538.8865824, + "isdir": false, + "ctime": 1436810538.8865824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2065823, + "inode": 523467, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/201", + "xusr": false, + "atime": 1436810538.2065823, + "isdir": false, + "ctime": 1436810538.2065823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5375824, + "inode": 523878, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/612", + "xusr": false, + "atime": 1436810538.5375824, + "isdir": false, + "ctime": 1436810538.5375824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4565823, + "inode": 526262, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2996", + "xusr": false, + "atime": 1436810540.4565823, + "isdir": false, + "ctime": 1436810540.4565823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0535824, + "inode": 527058, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3792", + "xusr": false, + "atime": 1436810541.0535824, + "isdir": false, + "ctime": 1436810541.0535824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5075824, + "inode": 525128, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1862", + "xusr": false, + "atime": 1436810539.5075824, + "isdir": false, + "ctime": 1436810539.5075824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8705823, + "inode": 528138, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4872", + "xusr": false, + "atime": 1436810541.8705823, + "isdir": false, + "ctime": 1436810541.8705823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8965824, + "inode": 524357, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1091", + "xusr": false, + "atime": 1436810538.8965824, + "isdir": false, + "ctime": 1436810538.8965824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4375823, + "inode": 523739, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/473", + "xusr": false, + "atime": 1436810538.4375823, + "isdir": false, + "ctime": 1436810538.4375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5675824, + "inode": 527722, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4456", + "xusr": false, + "atime": 1436810541.5675824, + "isdir": false, + "ctime": 1436810541.5675824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5905824, + "inode": 526411, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3145", + "xusr": false, + "atime": 1436810540.5905824, + "isdir": false, + "ctime": 1436810540.5905824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2435822, + "inode": 527319, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4053", + "xusr": false, + "atime": 1436810541.2435822, + "isdir": false, + "ctime": 1436810541.2435822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6955824, + "inode": 524094, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/828", + "xusr": false, + "atime": 1436810538.6955824, + "isdir": false, + "ctime": 1436810538.6955824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4645822, + "inode": 526268, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3002", + "xusr": false, + "atime": 1436810540.4645822, + "isdir": false, + "ctime": 1436810540.4645822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0095823, + "inode": 525742, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2476", + "xusr": false, + "atime": 1436810540.0095823, + "isdir": false, + "ctime": 1436810540.0095823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3195822, + "inode": 524951, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1685", + "xusr": false, + "atime": 1436810539.3195822, + "isdir": false, + "ctime": 1436810539.3195822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7295823, + "inode": 527945, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4679", + "xusr": false, + "atime": 1436810541.7295823, + "isdir": false, + "ctime": 1436810541.7295823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0735824, + "inode": 525817, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2551", + "xusr": false, + "atime": 1436810540.0735824, + "isdir": false, + "ctime": 1436810540.0735824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5815823, + "inode": 523938, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/672", + "xusr": false, + "atime": 1436810538.5815823, + "isdir": false, + "ctime": 1436810538.5815823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1985824, + "inode": 524784, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1518", + "xusr": false, + "atime": 1436810539.1985824, + "isdir": false, + "ctime": 1436810539.1985824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8315823, + "inode": 524269, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1003", + "xusr": false, + "atime": 1436810538.8315823, + "isdir": false, + "ctime": 1436810538.8315823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2025824, + "inode": 527262, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3996", + "xusr": false, + "atime": 1436810541.2025824, + "isdir": false, + "ctime": 1436810541.2025824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4755824, + "inode": 525095, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1829", + "xusr": false, + "atime": 1436810539.4755824, + "isdir": false, + "ctime": 1436810539.4755824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9765823, + "inode": 526954, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3688", + "xusr": false, + "atime": 1436810540.9765823, + "isdir": false, + "ctime": 1436810540.9765823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3785822, + "inode": 525002, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1736", + "xusr": false, + "atime": 1436810539.3785822, + "isdir": false, + "ctime": 1436810539.3785822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5645823, + "inode": 527718, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4452", + "xusr": false, + "atime": 1436810541.5645823, + "isdir": false, + "ctime": 1436810541.5645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4885824, + "inode": 525109, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1843", + "xusr": false, + "atime": 1436810539.4885824, + "isdir": false, + "ctime": 1436810539.4885824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2595823, + "inode": 527341, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4075", + "xusr": false, + "atime": 1436810541.2595823, + "isdir": false, + "ctime": 1436810541.2595823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5935824, + "inode": 525217, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1951", + "xusr": false, + "atime": 1436810539.5935824, + "isdir": false, + "ctime": 1436810539.5935824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2255824, + "inode": 525971, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2705", + "xusr": false, + "atime": 1436810540.2255824, + "isdir": false, + "ctime": 1436810540.2255824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0945823, + "inode": 527116, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3850", + "xusr": false, + "atime": 1436810541.0945823, + "isdir": false, + "ctime": 1436810541.0945823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1375823, + "inode": 527175, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3909", + "xusr": false, + "atime": 1436810541.1375823, + "isdir": false, + "ctime": 1436810541.1375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7825823, + "inode": 524204, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/938", + "xusr": false, + "atime": 1436810538.7825823, + "isdir": false, + "ctime": 1436810538.7825823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4025824, + "inode": 523700, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/434", + "xusr": false, + "atime": 1436810538.4025824, + "isdir": false, + "ctime": 1436810538.4025824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0305824, + "inode": 524542, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1276", + "xusr": false, + "atime": 1436810539.0305824, + "isdir": false, + "ctime": 1436810539.0305824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2035823, + "inode": 524791, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1525", + "xusr": false, + "atime": 1436810539.2035823, + "isdir": false, + "ctime": 1436810539.2035823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1985824, + "inode": 523455, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/189", + "xusr": false, + "atime": 1436810538.1985824, + "isdir": false, + "ctime": 1436810538.1985824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2725823, + "inode": 527360, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4094", + "xusr": false, + "atime": 1436810541.2725823, + "isdir": false, + "ctime": 1436810541.2725823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8975823, + "inode": 525588, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2322", + "xusr": false, + "atime": 1436810539.8975823, + "isdir": false, + "ctime": 1436810539.8975823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5445824, + "inode": 523887, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/621", + "xusr": false, + "atime": 1436810538.5445824, + "isdir": false, + "ctime": 1436810538.5445824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5525823, + "inode": 527701, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4435", + "xusr": false, + "atime": 1436810541.5525823, + "isdir": false, + "ctime": 1436810541.5525823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6035824, + "inode": 525228, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1962", + "xusr": false, + "atime": 1436810539.6035824, + "isdir": false, + "ctime": 1436810539.6035824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0545824, + "inode": 527060, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3794", + "xusr": false, + "atime": 1436810541.0545824, + "isdir": false, + "ctime": 1436810541.0545824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2835822, + "inode": 527375, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4109", + "xusr": false, + "atime": 1436810541.2835822, + "isdir": false, + "ctime": 1436810541.2835822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0475824, + "inode": 524566, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1300", + "xusr": false, + "atime": 1436810539.0475824, + "isdir": false, + "ctime": 1436810539.0475824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4245822, + "inode": 525054, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1788", + "xusr": false, + "atime": 1436810539.4245822, + "isdir": false, + "ctime": 1436810539.4245822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2425823, + "inode": 524847, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1581", + "xusr": false, + "atime": 1436810539.2425823, + "isdir": false, + "ctime": 1436810539.2425823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7545824, + "inode": 526642, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3376", + "xusr": false, + "atime": 1436810540.7545824, + "isdir": false, + "ctime": 1436810540.7545824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4845824, + "inode": 527608, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4342", + "xusr": false, + "atime": 1436810541.4845824, + "isdir": false, + "ctime": 1436810541.4845824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2725823, + "inode": 523559, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/293", + "xusr": false, + "atime": 1436810538.2725823, + "isdir": false, + "ctime": 1436810538.2725823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6545823, + "inode": 525291, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2025", + "xusr": false, + "atime": 1436810539.6545823, + "isdir": false, + "ctime": 1436810539.6545823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8635824, + "inode": 525540, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2274", + "xusr": false, + "atime": 1436810539.8635824, + "isdir": false, + "ctime": 1436810539.8635824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0945823, + "inode": 525839, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2573", + "xusr": false, + "atime": 1436810540.0945823, + "isdir": false, + "ctime": 1436810540.0945823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8825824, + "inode": 524338, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1072", + "xusr": false, + "atime": 1436810538.8825824, + "isdir": false, + "ctime": 1436810538.8825824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6545823, + "inode": 527841, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4575", + "xusr": false, + "atime": 1436810541.6545823, + "isdir": false, + "ctime": 1436810541.6545823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2255824, + "inode": 525970, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2704", + "xusr": false, + "atime": 1436810540.2255824, + "isdir": false, + "ctime": 1436810540.2255824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1055822, + "inode": 523323, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/57", + "xusr": false, + "atime": 1436810538.1055822, + "isdir": false, + "ctime": 1436810538.1055822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7565823, + "inode": 525396, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2130", + "xusr": false, + "atime": 1436810539.7565823, + "isdir": false, + "ctime": 1436810539.7565823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9605823, + "inode": 526930, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3664", + "xusr": false, + "atime": 1436810540.9605823, + "isdir": false, + "ctime": 1436810540.9605823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0425823, + "inode": 527043, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3777", + "xusr": false, + "atime": 1436810541.0425823, + "isdir": false, + "ctime": 1436810541.0425823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6915822, + "inode": 525325, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2059", + "xusr": false, + "atime": 1436810539.6915822, + "isdir": false, + "ctime": 1436810539.6915822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2365823, + "inode": 525983, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2717", + "xusr": false, + "atime": 1436810540.2365823, + "isdir": false, + "ctime": 1436810540.2365823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5965824, + "inode": 523959, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/693", + "xusr": false, + "atime": 1436810538.5965824, + "isdir": false, + "ctime": 1436810538.5965824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0445824, + "inode": 524562, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1296", + "xusr": false, + "atime": 1436810539.0445824, + "isdir": false, + "ctime": 1436810539.0445824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1525824, + "inode": 525891, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2625", + "xusr": false, + "atime": 1436810540.1525824, + "isdir": false, + "ctime": 1436810540.1525824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2295823, + "inode": 527299, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4033", + "xusr": false, + "atime": 1436810541.2295823, + "isdir": false, + "ctime": 1436810541.2295823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6945822, + "inode": 526557, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3291", + "xusr": false, + "atime": 1436810540.6945822, + "isdir": false, + "ctime": 1436810540.6945822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7455823, + "inode": 526630, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3364", + "xusr": false, + "atime": 1436810540.7455823, + "isdir": false, + "ctime": 1436810540.7455823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7675824, + "inode": 526659, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3393", + "xusr": false, + "atime": 1436810540.7675824, + "isdir": false, + "ctime": 1436810540.7675824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7135823, + "inode": 524118, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/852", + "xusr": false, + "atime": 1436810538.7135823, + "isdir": false, + "ctime": 1436810538.7135823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3255823, + "inode": 526088, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2822", + "xusr": false, + "atime": 1436810540.3255823, + "isdir": false, + "ctime": 1436810540.3255823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6955824, + "inode": 525330, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2064", + "xusr": false, + "atime": 1436810539.6955824, + "isdir": false, + "ctime": 1436810539.6955824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1815822, + "inode": 527232, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3966", + "xusr": false, + "atime": 1436810541.1815822, + "isdir": false, + "ctime": 1436810541.1815822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1325824, + "inode": 525872, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2606", + "xusr": false, + "atime": 1436810540.1325824, + "isdir": false, + "ctime": 1436810540.1325824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1175823, + "inode": 523339, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/73", + "xusr": false, + "atime": 1436810538.1175823, + "isdir": false, + "ctime": 1436810538.1175823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4795823, + "inode": 526283, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3017", + "xusr": false, + "atime": 1436810540.4795823, + "isdir": false, + "ctime": 1436810540.4795823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5185823, + "inode": 526318, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3052", + "xusr": false, + "atime": 1436810540.5185823, + "isdir": false, + "ctime": 1436810540.5185823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1705823, + "inode": 523415, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/149", + "xusr": false, + "atime": 1436810538.1705823, + "isdir": false, + "ctime": 1436810538.1705823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9745822, + "inode": 525692, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2426", + "xusr": false, + "atime": 1436810539.9745822, + "isdir": false, + "ctime": 1436810539.9745822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0785823, + "inode": 523288, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/22", + "xusr": false, + "atime": 1436810538.0785823, + "isdir": false, + "ctime": 1436810538.0785823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9825823, + "inode": 524476, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1210", + "xusr": false, + "atime": 1436810538.9825823, + "isdir": false, + "ctime": 1436810538.9825823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7665823, + "inode": 526658, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3392", + "xusr": false, + "atime": 1436810540.7665823, + "isdir": false, + "ctime": 1436810540.7665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7625823, + "inode": 526652, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3386", + "xusr": false, + "atime": 1436810540.7625823, + "isdir": false, + "ctime": 1436810540.7625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5065823, + "inode": 526303, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3037", + "xusr": false, + "atime": 1436810540.5065823, + "isdir": false, + "ctime": 1436810540.5065823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5725822, + "inode": 523926, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/660", + "xusr": false, + "atime": 1436810538.5725822, + "isdir": false, + "ctime": 1436810538.5725822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9035823, + "inode": 526851, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3585", + "xusr": false, + "atime": 1436810540.9035823, + "isdir": false, + "ctime": 1436810540.9035823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0805824, + "inode": 523291, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/25", + "xusr": false, + "atime": 1436810538.0805824, + "isdir": false, + "ctime": 1436810538.0805824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0785823, + "inode": 524611, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1345", + "xusr": false, + "atime": 1436810539.0785823, + "isdir": false, + "ctime": 1436810539.0785823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5985823, + "inode": 523962, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/696", + "xusr": false, + "atime": 1436810538.5985823, + "isdir": false, + "ctime": 1436810538.5985823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0995822, + "inode": 525843, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2577", + "xusr": false, + "atime": 1436810540.0995822, + "isdir": false, + "ctime": 1436810540.0995822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5455823, + "inode": 523889, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/623", + "xusr": false, + "atime": 1436810538.5455823, + "isdir": false, + "ctime": 1436810538.5455823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4085822, + "inode": 525033, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1767", + "xusr": false, + "atime": 1436810539.4085822, + "isdir": false, + "ctime": 1436810539.4085822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3765824, + "inode": 525000, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1734", + "xusr": false, + "atime": 1436810539.3765824, + "isdir": false, + "ctime": 1436810539.3765824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4765823, + "inode": 526279, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3013", + "xusr": false, + "atime": 1436810540.4765823, + "isdir": false, + "ctime": 1436810540.4765823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1255822, + "inode": 527158, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3892", + "xusr": false, + "atime": 1436810541.1255822, + "isdir": false, + "ctime": 1436810541.1255822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9615824, + "inode": 524446, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1180", + "xusr": false, + "atime": 1436810538.9615824, + "isdir": false, + "ctime": 1436810538.9615824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9425824, + "inode": 528238, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4972", + "xusr": false, + "atime": 1436810541.9425824, + "isdir": false, + "ctime": 1436810541.9425824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5945823, + "inode": 525218, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1952", + "xusr": false, + "atime": 1436810539.5945823, + "isdir": false, + "ctime": 1436810539.5945823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7745824, + "inode": 528007, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4741", + "xusr": false, + "atime": 1436810541.7745824, + "isdir": false, + "ctime": 1436810541.7745824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3795824, + "inode": 526163, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2897", + "xusr": false, + "atime": 1436810540.3795824, + "isdir": false, + "ctime": 1436810540.3795824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0135822, + "inode": 527004, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3738", + "xusr": false, + "atime": 1436810541.0135822, + "isdir": false, + "ctime": 1436810541.0135822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0405824, + "inode": 524557, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1291", + "xusr": false, + "atime": 1436810539.0405824, + "isdir": false, + "ctime": 1436810539.0405824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5765824, + "inode": 523931, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/665", + "xusr": false, + "atime": 1436810538.5765824, + "isdir": false, + "ctime": 1436810538.5765824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1735823, + "inode": 527222, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3956", + "xusr": false, + "atime": 1436810541.1735823, + "isdir": false, + "ctime": 1436810541.1735823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9225824, + "inode": 528210, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4944", + "xusr": false, + "atime": 1436810541.9225824, + "isdir": false, + "ctime": 1436810541.9225824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9605823, + "inode": 524444, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1178", + "xusr": false, + "atime": 1436810538.9605823, + "isdir": false, + "ctime": 1436810538.9605823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1765823, + "inode": 523423, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/157", + "xusr": false, + "atime": 1436810538.1765823, + "isdir": false, + "ctime": 1436810538.1765823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9335823, + "inode": 526893, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3627", + "xusr": false, + "atime": 1436810540.9335823, + "isdir": false, + "ctime": 1436810540.9335823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1445823, + "inode": 523378, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/112", + "xusr": false, + "atime": 1436810538.1445823, + "isdir": false, + "ctime": 1436810538.1445823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0985823, + "inode": 524640, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1374", + "xusr": false, + "atime": 1436810539.0985823, + "isdir": false, + "ctime": 1436810539.0985823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0045824, + "inode": 524506, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1240", + "xusr": false, + "atime": 1436810539.0045824, + "isdir": false, + "ctime": 1436810539.0045824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1935823, + "inode": 525933, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2667", + "xusr": false, + "atime": 1436810540.1935823, + "isdir": false, + "ctime": 1436810540.1935823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0275824, + "inode": 527021, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3755", + "xusr": false, + "atime": 1436810541.0275824, + "isdir": false, + "ctime": 1436810541.0275824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0655823, + "inode": 523269, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3", + "xusr": false, + "atime": 1436810538.0655823, + "isdir": false, + "ctime": 1436810538.0655823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3745823, + "inode": 524999, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1733", + "xusr": false, + "atime": 1436810539.3745823, + "isdir": false, + "ctime": 1436810539.3745823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6795824, + "inode": 526536, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3270", + "xusr": false, + "atime": 1436810540.6795824, + "isdir": false, + "ctime": 1436810540.6795824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3035824, + "inode": 527402, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4136", + "xusr": false, + "atime": 1436810541.3035824, + "isdir": false, + "ctime": 1436810541.3035824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4885824, + "inode": 523811, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/545", + "xusr": false, + "atime": 1436810538.4885824, + "isdir": false, + "ctime": 1436810538.4885824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5585823, + "inode": 525179, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1913", + "xusr": false, + "atime": 1436810539.5585823, + "isdir": false, + "ctime": 1436810539.5585823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7835822, + "inode": 528020, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4754", + "xusr": false, + "atime": 1436810541.7835822, + "isdir": false, + "ctime": 1436810541.7835822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3635824, + "inode": 526140, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2874", + "xusr": false, + "atime": 1436810540.3635824, + "isdir": false, + "ctime": 1436810540.3635824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7205822, + "inode": 527933, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4667", + "xusr": false, + "atime": 1436810541.7205822, + "isdir": false, + "ctime": 1436810541.7205822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7445824, + "inode": 526628, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3362", + "xusr": false, + "atime": 1436810540.7445824, + "isdir": false, + "ctime": 1436810540.7445824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5755823, + "inode": 525202, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1936", + "xusr": false, + "atime": 1436810539.5755823, + "isdir": false, + "ctime": 1436810539.5755823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9935822, + "inode": 525719, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2453", + "xusr": false, + "atime": 1436810539.9935822, + "isdir": false, + "ctime": 1436810539.9935822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0795822, + "inode": 524612, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1346", + "xusr": false, + "atime": 1436810539.0795822, + "isdir": false, + "ctime": 1436810539.0795822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9435823, + "inode": 525651, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2385", + "xusr": false, + "atime": 1436810539.9435823, + "isdir": false, + "ctime": 1436810539.9435823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8715823, + "inode": 526806, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3540", + "xusr": false, + "atime": 1436810540.8715823, + "isdir": false, + "ctime": 1436810540.8715823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5445824, + "inode": 526348, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3082", + "xusr": false, + "atime": 1436810540.5445824, + "isdir": false, + "ctime": 1436810540.5445824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3605824, + "inode": 526136, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2870", + "xusr": false, + "atime": 1436810540.3605824, + "isdir": false, + "ctime": 1436810540.3605824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4315822, + "inode": 526236, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2970", + "xusr": false, + "atime": 1436810540.4315822, + "isdir": false, + "ctime": 1436810540.4315822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7375822, + "inode": 527956, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4690", + "xusr": false, + "atime": 1436810541.7375822, + "isdir": false, + "ctime": 1436810541.7375822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9065824, + "inode": 524370, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1104", + "xusr": false, + "atime": 1436810538.9065824, + "isdir": false, + "ctime": 1436810538.9065824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8425822, + "inode": 525511, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2245", + "xusr": false, + "atime": 1436810539.8425822, + "isdir": false, + "ctime": 1436810539.8425822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7365823, + "inode": 527954, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4688", + "xusr": false, + "atime": 1436810541.7365823, + "isdir": false, + "ctime": 1436810541.7365823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0665822, + "inode": 527077, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3811", + "xusr": false, + "atime": 1436810541.0665822, + "isdir": false, + "ctime": 1436810541.0665822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3525822, + "inode": 524985, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1719", + "xusr": false, + "atime": 1436810539.3525822, + "isdir": false, + "ctime": 1436810539.3525822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2705822, + "inode": 523556, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/290", + "xusr": false, + "atime": 1436810538.2705822, + "isdir": false, + "ctime": 1436810538.2705822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3425822, + "inode": 526112, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2846", + "xusr": false, + "atime": 1436810540.3425822, + "isdir": false, + "ctime": 1436810540.3425822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5625823, + "inode": 526373, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3107", + "xusr": false, + "atime": 1436810540.5625823, + "isdir": false, + "ctime": 1436810540.5625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0315824, + "inode": 524543, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1277", + "xusr": false, + "atime": 1436810539.0315824, + "isdir": false, + "ctime": 1436810539.0315824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0355823, + "inode": 524550, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1284", + "xusr": false, + "atime": 1436810539.0355823, + "isdir": false, + "ctime": 1436810539.0355823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6525824, + "inode": 525289, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2023", + "xusr": false, + "atime": 1436810539.6525824, + "isdir": false, + "ctime": 1436810539.6525824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4135823, + "inode": 525040, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1774", + "xusr": false, + "atime": 1436810539.4135823, + "isdir": false, + "ctime": 1436810539.4135823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7295823, + "inode": 524137, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/871", + "xusr": false, + "atime": 1436810538.7295823, + "isdir": false, + "ctime": 1436810538.7295823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0395823, + "inode": 524555, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1289", + "xusr": false, + "atime": 1436810539.0395823, + "isdir": false, + "ctime": 1436810539.0395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2745824, + "inode": 523562, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/296", + "xusr": false, + "atime": 1436810538.2745824, + "isdir": false, + "ctime": 1436810538.2745824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7495823, + "inode": 524163, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/897", + "xusr": false, + "atime": 1436810538.7495823, + "isdir": false, + "ctime": 1436810538.7495823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4985824, + "inode": 526299, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3033", + "xusr": false, + "atime": 1436810540.4985824, + "isdir": false, + "ctime": 1436810540.4985824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2905824, + "inode": 523585, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/319", + "xusr": false, + "atime": 1436810538.2905824, + "isdir": false, + "ctime": 1436810538.2905824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3375823, + "inode": 523636, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/370", + "xusr": false, + "atime": 1436810538.3375823, + "isdir": false, + "ctime": 1436810538.3375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1325824, + "inode": 527168, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3902", + "xusr": false, + "atime": 1436810541.1325824, + "isdir": false, + "ctime": 1436810541.1325824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5065823, + "inode": 527638, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4372", + "xusr": false, + "atime": 1436810541.5065823, + "isdir": false, + "ctime": 1436810541.5065823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0885823, + "inode": 527108, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3842", + "xusr": false, + "atime": 1436810541.0885823, + "isdir": false, + "ctime": 1436810541.0885823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9695823, + "inode": 526944, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3678", + "xusr": false, + "atime": 1436810540.9695823, + "isdir": false, + "ctime": 1436810540.9695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7265823, + "inode": 524133, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/867", + "xusr": false, + "atime": 1436810538.7265823, + "isdir": false, + "ctime": 1436810538.7265823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8045824, + "inode": 525457, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2191", + "xusr": false, + "atime": 1436810539.8045824, + "isdir": false, + "ctime": 1436810539.8045824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0555823, + "inode": 524578, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1312", + "xusr": false, + "atime": 1436810539.0555823, + "isdir": false, + "ctime": 1436810539.0555823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6935823, + "inode": 527895, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4629", + "xusr": false, + "atime": 1436810541.6935823, + "isdir": false, + "ctime": 1436810541.6935823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3505824, + "inode": 523650, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/384", + "xusr": false, + "atime": 1436810538.3505824, + "isdir": false, + "ctime": 1436810538.3505824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9315822, + "inode": 524405, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1139", + "xusr": false, + "atime": 1436810538.9315822, + "isdir": false, + "ctime": 1436810538.9315822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9975822, + "inode": 525725, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2459", + "xusr": false, + "atime": 1436810539.9975822, + "isdir": false, + "ctime": 1436810539.9975822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0145824, + "inode": 525749, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2483", + "xusr": false, + "atime": 1436810540.0145824, + "isdir": false, + "ctime": 1436810540.0145824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3905823, + "inode": 527481, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4215", + "xusr": false, + "atime": 1436810541.3905823, + "isdir": false, + "ctime": 1436810541.3905823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4105823, + "inode": 523710, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/444", + "xusr": false, + "atime": 1436810538.4105823, + "isdir": false, + "ctime": 1436810538.4105823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5635824, + "inode": 527716, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4450", + "xusr": false, + "atime": 1436810541.5635824, + "isdir": false, + "ctime": 1436810541.5635824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6085823, + "inode": 527779, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4513", + "xusr": false, + "atime": 1436810541.6085823, + "isdir": false, + "ctime": 1436810541.6085823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6185822, + "inode": 523989, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/723", + "xusr": false, + "atime": 1436810538.6185822, + "isdir": false, + "ctime": 1436810538.6185822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0515823, + "inode": 527056, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3790", + "xusr": false, + "atime": 1436810541.0515823, + "isdir": false, + "ctime": 1436810541.0515823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1595824, + "inode": 524728, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1462", + "xusr": false, + "atime": 1436810539.1595824, + "isdir": false, + "ctime": 1436810539.1595824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1135824, + "inode": 523333, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/67", + "xusr": false, + "atime": 1436810538.1135824, + "isdir": false, + "ctime": 1436810538.1135824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6255822, + "inode": 523999, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/733", + "xusr": false, + "atime": 1436810538.6255822, + "isdir": false, + "ctime": 1436810538.6255822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9965823, + "inode": 524495, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1229", + "xusr": false, + "atime": 1436810538.9965823, + "isdir": false, + "ctime": 1436810538.9965823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1605823, + "inode": 524729, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1463", + "xusr": false, + "atime": 1436810539.1605823, + "isdir": false, + "ctime": 1436810539.1605823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4505823, + "inode": 523758, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/492", + "xusr": false, + "atime": 1436810538.4505823, + "isdir": false, + "ctime": 1436810538.4505823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1095824, + "inode": 524655, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1389", + "xusr": false, + "atime": 1436810539.1095824, + "isdir": false, + "ctime": 1436810539.1095824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7475822, + "inode": 525385, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2119", + "xusr": false, + "atime": 1436810539.7475822, + "isdir": false, + "ctime": 1436810539.7475822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2455823, + "inode": 523521, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/255", + "xusr": false, + "atime": 1436810538.2455823, + "isdir": false, + "ctime": 1436810538.2455823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5245824, + "inode": 526322, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3056", + "xusr": false, + "atime": 1436810540.5245824, + "isdir": false, + "ctime": 1436810540.5245824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1705823, + "inode": 523414, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/148", + "xusr": false, + "atime": 1436810538.1705823, + "isdir": false, + "ctime": 1436810538.1705823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4845824, + "inode": 523806, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/540", + "xusr": false, + "atime": 1436810538.4845824, + "isdir": false, + "ctime": 1436810538.4845824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0385823, + "inode": 524554, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1288", + "xusr": false, + "atime": 1436810539.0385823, + "isdir": false, + "ctime": 1436810539.0385823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4005823, + "inode": 527493, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4227", + "xusr": false, + "atime": 1436810541.4005823, + "isdir": false, + "ctime": 1436810541.4005823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3145823, + "inode": 527414, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4148", + "xusr": false, + "atime": 1436810541.3145823, + "isdir": false, + "ctime": 1436810541.3145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4935822, + "inode": 526293, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3027", + "xusr": false, + "atime": 1436810540.4935822, + "isdir": false, + "ctime": 1436810540.4935822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7925823, + "inode": 526695, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3429", + "xusr": false, + "atime": 1436810540.7925823, + "isdir": false, + "ctime": 1436810540.7925823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6145823, + "inode": 526446, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3180", + "xusr": false, + "atime": 1436810540.6145823, + "isdir": false, + "ctime": 1436810540.6145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2475822, + "inode": 525993, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2727", + "xusr": false, + "atime": 1436810540.2475822, + "isdir": false, + "ctime": 1436810540.2475822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0515823, + "inode": 527055, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3789", + "xusr": false, + "atime": 1436810541.0515823, + "isdir": false, + "ctime": 1436810541.0515823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1695824, + "inode": 527218, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3952", + "xusr": false, + "atime": 1436810541.1695824, + "isdir": false, + "ctime": 1436810541.1695824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0765824, + "inode": 524609, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1343", + "xusr": false, + "atime": 1436810539.0765824, + "isdir": false, + "ctime": 1436810539.0765824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8595824, + "inode": 528122, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4856", + "xusr": false, + "atime": 1436810541.8595824, + "isdir": false, + "ctime": 1436810541.8595824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2575824, + "inode": 527338, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4072", + "xusr": false, + "atime": 1436810541.2575824, + "isdir": false, + "ctime": 1436810541.2575824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4335823, + "inode": 527537, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4271", + "xusr": false, + "atime": 1436810541.4335823, + "isdir": false, + "ctime": 1436810541.4335823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7945824, + "inode": 528035, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4769", + "xusr": false, + "atime": 1436810541.7945824, + "isdir": false, + "ctime": 1436810541.7945824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9095824, + "inode": 526859, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3593", + "xusr": false, + "atime": 1436810540.9095824, + "isdir": false, + "ctime": 1436810540.9095824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6315823, + "inode": 525265, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1999", + "xusr": false, + "atime": 1436810539.6315823, + "isdir": false, + "ctime": 1436810539.6315823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2725823, + "inode": 523560, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/294", + "xusr": false, + "atime": 1436810538.2725823, + "isdir": false, + "ctime": 1436810538.2725823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8045824, + "inode": 528048, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4782", + "xusr": false, + "atime": 1436810541.8045824, + "isdir": false, + "ctime": 1436810541.8045824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3955822, + "inode": 523689, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/423", + "xusr": false, + "atime": 1436810538.3955822, + "isdir": false, + "ctime": 1436810538.3955822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1475823, + "inode": 524710, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1444", + "xusr": false, + "atime": 1436810539.1475823, + "isdir": false, + "ctime": 1436810539.1475823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1945822, + "inode": 527250, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3984", + "xusr": false, + "atime": 1436810541.1945822, + "isdir": false, + "ctime": 1436810541.1945822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4025824, + "inode": 526195, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2929", + "xusr": false, + "atime": 1436810540.4025824, + "isdir": false, + "ctime": 1436810540.4025824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9315822, + "inode": 525634, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2368", + "xusr": false, + "atime": 1436810539.9315822, + "isdir": false, + "ctime": 1436810539.9315822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8815823, + "inode": 528153, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4887", + "xusr": false, + "atime": 1436810541.8815823, + "isdir": false, + "ctime": 1436810541.8815823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3475823, + "inode": 524978, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1712", + "xusr": false, + "atime": 1436810539.3475823, + "isdir": false, + "ctime": 1436810539.3475823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6295824, + "inode": 525263, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1997", + "xusr": false, + "atime": 1436810539.6295824, + "isdir": false, + "ctime": 1436810539.6295824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8165822, + "inode": 526729, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3463", + "xusr": false, + "atime": 1436810540.8165822, + "isdir": false, + "ctime": 1436810540.8165822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7975824, + "inode": 524223, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/957", + "xusr": false, + "atime": 1436810538.7975824, + "isdir": false, + "ctime": 1436810538.7975824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8735824, + "inode": 524325, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1059", + "xusr": false, + "atime": 1436810538.8735824, + "isdir": false, + "ctime": 1436810538.8735824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8425822, + "inode": 528100, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4834", + "xusr": false, + "atime": 1436810541.8425822, + "isdir": false, + "ctime": 1436810541.8425822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5685823, + "inode": 525193, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1927", + "xusr": false, + "atime": 1436810539.5685823, + "isdir": false, + "ctime": 1436810539.5685823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8335824, + "inode": 528088, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4822", + "xusr": false, + "atime": 1436810541.8335824, + "isdir": false, + "ctime": 1436810541.8335824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1175823, + "inode": 524668, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1402", + "xusr": false, + "atime": 1436810539.1175823, + "isdir": false, + "ctime": 1436810539.1175823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0195823, + "inode": 525755, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2489", + "xusr": false, + "atime": 1436810540.0195823, + "isdir": false, + "ctime": 1436810540.0195823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3915823, + "inode": 523684, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/418", + "xusr": false, + "atime": 1436810538.3915823, + "isdir": false, + "ctime": 1436810538.3915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5955822, + "inode": 526418, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3152", + "xusr": false, + "atime": 1436810540.5955822, + "isdir": false, + "ctime": 1436810540.5955822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2355824, + "inode": 524836, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1570", + "xusr": false, + "atime": 1436810539.2355824, + "isdir": false, + "ctime": 1436810539.2355824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3015823, + "inode": 524931, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1665", + "xusr": false, + "atime": 1436810539.3015823, + "isdir": false, + "ctime": 1436810539.3015823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1615822, + "inode": 525901, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2635", + "xusr": false, + "atime": 1436810540.1615822, + "isdir": false, + "ctime": 1436810540.1615822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2375822, + "inode": 523510, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/244", + "xusr": false, + "atime": 1436810538.2375822, + "isdir": false, + "ctime": 1436810538.2375822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6075823, + "inode": 527778, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4512", + "xusr": false, + "atime": 1436810541.6075823, + "isdir": false, + "ctime": 1436810541.6075823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0055823, + "inode": 524507, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1241", + "xusr": false, + "atime": 1436810539.0055823, + "isdir": false, + "ctime": 1436810539.0055823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8465824, + "inode": 525516, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2250", + "xusr": false, + "atime": 1436810539.8465824, + "isdir": false, + "ctime": 1436810539.8465824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9605823, + "inode": 524445, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1179", + "xusr": false, + "atime": 1436810538.9605823, + "isdir": false, + "ctime": 1436810538.9605823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7385824, + "inode": 524148, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/882", + "xusr": false, + "atime": 1436810538.7385824, + "isdir": false, + "ctime": 1436810538.7385824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5925822, + "inode": 527757, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4491", + "xusr": false, + "atime": 1436810541.5925822, + "isdir": false, + "ctime": 1436810541.5925822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5165823, + "inode": 525135, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1869", + "xusr": false, + "atime": 1436810539.5165823, + "isdir": false, + "ctime": 1436810539.5165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4445822, + "inode": 525064, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1798", + "xusr": false, + "atime": 1436810539.4445822, + "isdir": false, + "ctime": 1436810539.4445822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0485823, + "inode": 527051, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3785", + "xusr": false, + "atime": 1436810541.0485823, + "isdir": false, + "ctime": 1436810541.0485823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6365824, + "inode": 525272, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2006", + "xusr": false, + "atime": 1436810539.6365824, + "isdir": false, + "ctime": 1436810539.6365824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9145823, + "inode": 528200, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4934", + "xusr": false, + "atime": 1436810541.9145823, + "isdir": false, + "ctime": 1436810541.9145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4825823, + "inode": 525104, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1838", + "xusr": false, + "atime": 1436810539.4825823, + "isdir": false, + "ctime": 1436810539.4825823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6435823, + "inode": 524023, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/757", + "xusr": false, + "atime": 1436810538.6435823, + "isdir": false, + "ctime": 1436810538.6435823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5285823, + "inode": 527667, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4401", + "xusr": false, + "atime": 1436810541.5285823, + "isdir": false, + "ctime": 1436810541.5285823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1555824, + "inode": 523394, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/128", + "xusr": false, + "atime": 1436810538.1555824, + "isdir": false, + "ctime": 1436810538.1555824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1635823, + "inode": 523405, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/139", + "xusr": false, + "atime": 1436810538.1635823, + "isdir": false, + "ctime": 1436810538.1635823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5285823, + "inode": 525149, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1883", + "xusr": false, + "atime": 1436810539.5285823, + "isdir": false, + "ctime": 1436810539.5285823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7905824, + "inode": 525442, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2176", + "xusr": false, + "atime": 1436810539.7905824, + "isdir": false, + "ctime": 1436810539.7905824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9365823, + "inode": 525641, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2375", + "xusr": false, + "atime": 1436810539.9365823, + "isdir": false, + "ctime": 1436810539.9365823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9335823, + "inode": 524408, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1142", + "xusr": false, + "atime": 1436810538.9335823, + "isdir": false, + "ctime": 1436810538.9335823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1765823, + "inode": 524752, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1486", + "xusr": false, + "atime": 1436810539.1765823, + "isdir": false, + "ctime": 1436810539.1765823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1665823, + "inode": 527214, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3948", + "xusr": false, + "atime": 1436810541.1665823, + "isdir": false, + "ctime": 1436810541.1665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8325822, + "inode": 524270, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1004", + "xusr": false, + "atime": 1436810538.8325822, + "isdir": false, + "ctime": 1436810538.8325822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6055822, + "inode": 527776, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4510", + "xusr": false, + "atime": 1436810541.6055822, + "isdir": false, + "ctime": 1436810541.6055822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8785822, + "inode": 526816, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3550", + "xusr": false, + "atime": 1436810540.8785822, + "isdir": false, + "ctime": 1436810540.8785822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6045823, + "inode": 523970, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/704", + "xusr": false, + "atime": 1436810538.6045823, + "isdir": false, + "ctime": 1436810538.6045823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1415823, + "inode": 523374, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/108", + "xusr": false, + "atime": 1436810538.1415823, + "isdir": false, + "ctime": 1436810538.1415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3015823, + "inode": 526055, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2789", + "xusr": false, + "atime": 1436810540.3015823, + "isdir": false, + "ctime": 1436810540.3015823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8185823, + "inode": 526732, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3466", + "xusr": false, + "atime": 1436810540.8185823, + "isdir": false, + "ctime": 1436810540.8185823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4505823, + "inode": 525069, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1803", + "xusr": false, + "atime": 1436810539.4505823, + "isdir": false, + "ctime": 1436810539.4505823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2305822, + "inode": 525977, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2711", + "xusr": false, + "atime": 1436810540.2305822, + "isdir": false, + "ctime": 1436810540.2305822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9565823, + "inode": 524439, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1173", + "xusr": false, + "atime": 1436810538.9565823, + "isdir": false, + "ctime": 1436810538.9565823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0875823, + "inode": 525830, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2564", + "xusr": false, + "atime": 1436810540.0875823, + "isdir": false, + "ctime": 1436810540.0875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0675824, + "inode": 527078, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3812", + "xusr": false, + "atime": 1436810541.0675824, + "isdir": false, + "ctime": 1436810541.0675824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2715824, + "inode": 526020, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2754", + "xusr": false, + "atime": 1436810540.2715824, + "isdir": false, + "ctime": 1436810540.2715824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4295824, + "inode": 525061, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1795", + "xusr": false, + "atime": 1436810539.4295824, + "isdir": false, + "ctime": 1436810539.4295824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4685824, + "inode": 526273, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3007", + "xusr": false, + "atime": 1436810540.4685824, + "isdir": false, + "ctime": 1436810540.4685824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2975824, + "inode": 524925, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1659", + "xusr": false, + "atime": 1436810539.2975824, + "isdir": false, + "ctime": 1436810539.2975824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1345823, + "inode": 524692, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1426", + "xusr": false, + "atime": 1436810539.1345823, + "isdir": false, + "ctime": 1436810539.1345823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9425824, + "inode": 525649, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2383", + "xusr": false, + "atime": 1436810539.9425824, + "isdir": false, + "ctime": 1436810539.9425824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2085824, + "inode": 525949, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2683", + "xusr": false, + "atime": 1436810540.2085824, + "isdir": false, + "ctime": 1436810540.2085824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8435824, + "inode": 525512, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2246", + "xusr": false, + "atime": 1436810539.8435824, + "isdir": false, + "ctime": 1436810539.8435824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7905824, + "inode": 526691, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3425", + "xusr": false, + "atime": 1436810540.7905824, + "isdir": false, + "ctime": 1436810540.7905824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9415822, + "inode": 525648, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2382", + "xusr": false, + "atime": 1436810539.9415822, + "isdir": false, + "ctime": 1436810539.9415822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3505824, + "inode": 526122, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2856", + "xusr": false, + "atime": 1436810540.3505824, + "isdir": false, + "ctime": 1436810540.3505824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1505823, + "inode": 523387, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/121", + "xusr": false, + "atime": 1436810538.1505823, + "isdir": false, + "ctime": 1436810538.1505823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2835822, + "inode": 527376, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4110", + "xusr": false, + "atime": 1436810541.2835822, + "isdir": false, + "ctime": 1436810541.2835822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8565824, + "inode": 524303, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1037", + "xusr": false, + "atime": 1436810538.8565824, + "isdir": false, + "ctime": 1436810538.8565824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8105824, + "inode": 525465, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2199", + "xusr": false, + "atime": 1436810539.8105824, + "isdir": false, + "ctime": 1436810539.8105824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9575822, + "inode": 525669, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2403", + "xusr": false, + "atime": 1436810539.9575822, + "isdir": false, + "ctime": 1436810539.9575822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9845824, + "inode": 524479, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1213", + "xusr": false, + "atime": 1436810538.9845824, + "isdir": false, + "ctime": 1436810538.9845824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4455824, + "inode": 525065, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1799", + "xusr": false, + "atime": 1436810539.4455824, + "isdir": false, + "ctime": 1436810539.4455824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1615822, + "inode": 527208, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3942", + "xusr": false, + "atime": 1436810541.1615822, + "isdir": false, + "ctime": 1436810541.1615822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1585822, + "inode": 523397, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/131", + "xusr": false, + "atime": 1436810538.1585822, + "isdir": false, + "ctime": 1436810538.1585822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9645822, + "inode": 525679, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2413", + "xusr": false, + "atime": 1436810539.9645822, + "isdir": false, + "ctime": 1436810539.9645822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2425823, + "inode": 523517, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/251", + "xusr": false, + "atime": 1436810538.2425823, + "isdir": false, + "ctime": 1436810538.2425823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1525824, + "inode": 524717, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1451", + "xusr": false, + "atime": 1436810539.1525824, + "isdir": false, + "ctime": 1436810539.1525824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1525824, + "inode": 527195, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3929", + "xusr": false, + "atime": 1436810541.1525824, + "isdir": false, + "ctime": 1436810541.1525824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5425823, + "inode": 527687, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4421", + "xusr": false, + "atime": 1436810541.5425823, + "isdir": false, + "ctime": 1436810541.5425823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6995823, + "inode": 525335, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2069", + "xusr": false, + "atime": 1436810539.6995823, + "isdir": false, + "ctime": 1436810539.6995823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7735822, + "inode": 525419, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2153", + "xusr": false, + "atime": 1436810539.7735822, + "isdir": false, + "ctime": 1436810539.7735822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6025822, + "inode": 527771, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4505", + "xusr": false, + "atime": 1436810541.6025822, + "isdir": false, + "ctime": 1436810541.6025822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9355824, + "inode": 524410, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1144", + "xusr": false, + "atime": 1436810538.9355824, + "isdir": false, + "ctime": 1436810538.9355824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8945823, + "inode": 525584, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2318", + "xusr": false, + "atime": 1436810539.8945823, + "isdir": false, + "ctime": 1436810539.8945823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3885822, + "inode": 526176, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2910", + "xusr": false, + "atime": 1436810540.3885822, + "isdir": false, + "ctime": 1436810540.3885822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6355822, + "inode": 524012, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/746", + "xusr": false, + "atime": 1436810538.6355822, + "isdir": false, + "ctime": 1436810538.6355822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1015823, + "inode": 525845, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2579", + "xusr": false, + "atime": 1436810540.1015823, + "isdir": false, + "ctime": 1436810540.1015823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7135823, + "inode": 527923, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4657", + "xusr": false, + "atime": 1436810541.7135823, + "isdir": false, + "ctime": 1436810541.7135823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7615824, + "inode": 525402, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2136", + "xusr": false, + "atime": 1436810539.7615824, + "isdir": false, + "ctime": 1436810539.7615824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9105823, + "inode": 528194, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4928", + "xusr": false, + "atime": 1436810541.9105823, + "isdir": false, + "ctime": 1436810541.9105823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8195822, + "inode": 528069, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4803", + "xusr": false, + "atime": 1436810541.8195822, + "isdir": false, + "ctime": 1436810541.8195822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6315823, + "inode": 524007, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/741", + "xusr": false, + "atime": 1436810538.6315823, + "isdir": false, + "ctime": 1436810538.6315823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1195824, + "inode": 525859, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2593", + "xusr": false, + "atime": 1436810540.1195824, + "isdir": false, + "ctime": 1436810540.1195824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1595824, + "inode": 524727, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1461", + "xusr": false, + "atime": 1436810539.1595824, + "isdir": false, + "ctime": 1436810539.1595824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7575824, + "inode": 526646, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3380", + "xusr": false, + "atime": 1436810540.7575824, + "isdir": false, + "ctime": 1436810540.7575824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4685824, + "inode": 525086, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1820", + "xusr": false, + "atime": 1436810539.4685824, + "isdir": false, + "ctime": 1436810539.4685824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4885824, + "inode": 527614, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4348", + "xusr": false, + "atime": 1436810541.4885824, + "isdir": false, + "ctime": 1436810541.4885824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9045823, + "inode": 524367, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1101", + "xusr": false, + "atime": 1436810538.9045823, + "isdir": false, + "ctime": 1436810538.9045823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5185823, + "inode": 526317, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3051", + "xusr": false, + "atime": 1436810540.5185823, + "isdir": false, + "ctime": 1436810540.5185823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6195824, + "inode": 523990, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/724", + "xusr": false, + "atime": 1436810538.6195824, + "isdir": false, + "ctime": 1436810538.6195824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7445824, + "inode": 524156, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/890", + "xusr": false, + "atime": 1436810538.7445824, + "isdir": false, + "ctime": 1436810538.7445824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2805824, + "inode": 527371, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4105", + "xusr": false, + "atime": 1436810541.2805824, + "isdir": false, + "ctime": 1436810541.2805824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7255824, + "inode": 527939, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4673", + "xusr": false, + "atime": 1436810541.7255824, + "isdir": false, + "ctime": 1436810541.7255824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5715823, + "inode": 523925, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/659", + "xusr": false, + "atime": 1436810538.5715823, + "isdir": false, + "ctime": 1436810538.5715823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3415823, + "inode": 526110, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2844", + "xusr": false, + "atime": 1436810540.3415823, + "isdir": false, + "ctime": 1436810540.3415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2655823, + "inode": 523549, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/283", + "xusr": false, + "atime": 1436810538.2655823, + "isdir": false, + "ctime": 1436810538.2655823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3045824, + "inode": 524935, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1669", + "xusr": false, + "atime": 1436810539.3045824, + "isdir": false, + "ctime": 1436810539.3045824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6345823, + "inode": 524011, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/745", + "xusr": false, + "atime": 1436810538.6345823, + "isdir": false, + "ctime": 1436810538.6345823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4955823, + "inode": 525116, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1850", + "xusr": false, + "atime": 1436810539.4955823, + "isdir": false, + "ctime": 1436810539.4955823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5825822, + "inode": 525208, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1942", + "xusr": false, + "atime": 1436810539.5825822, + "isdir": false, + "ctime": 1436810539.5825822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1085823, + "inode": 527135, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3869", + "xusr": false, + "atime": 1436810541.1085823, + "isdir": false, + "ctime": 1436810541.1085823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2295823, + "inode": 523499, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/233", + "xusr": false, + "atime": 1436810538.2295823, + "isdir": false, + "ctime": 1436810538.2295823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2215824, + "inode": 524817, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1551", + "xusr": false, + "atime": 1436810539.2215824, + "isdir": false, + "ctime": 1436810539.2215824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4275823, + "inode": 527529, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4263", + "xusr": false, + "atime": 1436810541.4275823, + "isdir": false, + "ctime": 1436810541.4275823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9095824, + "inode": 524375, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1109", + "xusr": false, + "atime": 1436810538.9095824, + "isdir": false, + "ctime": 1436810538.9095824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3785822, + "inode": 523671, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/405", + "xusr": false, + "atime": 1436810538.3785822, + "isdir": false, + "ctime": 1436810538.3785822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1045823, + "inode": 527130, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3864", + "xusr": false, + "atime": 1436810541.1045823, + "isdir": false, + "ctime": 1436810541.1045823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1765823, + "inode": 527226, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3960", + "xusr": false, + "atime": 1436810541.1765823, + "isdir": false, + "ctime": 1436810541.1765823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1095824, + "inode": 523328, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/62", + "xusr": false, + "atime": 1436810538.1095824, + "isdir": false, + "ctime": 1436810538.1095824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1265824, + "inode": 527159, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3893", + "xusr": false, + "atime": 1436810541.1265824, + "isdir": false, + "ctime": 1436810541.1265824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5835824, + "inode": 526402, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3136", + "xusr": false, + "atime": 1436810540.5835824, + "isdir": false, + "ctime": 1436810540.5835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8835824, + "inode": 525568, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2302", + "xusr": false, + "atime": 1436810539.8835824, + "isdir": false, + "ctime": 1436810539.8835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4005823, + "inode": 526193, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2927", + "xusr": false, + "atime": 1436810540.4005823, + "isdir": false, + "ctime": 1436810540.4005823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0835824, + "inode": 523295, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/29", + "xusr": false, + "atime": 1436810538.0835824, + "isdir": false, + "ctime": 1436810538.0835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8905823, + "inode": 524348, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1082", + "xusr": false, + "atime": 1436810538.8905823, + "isdir": false, + "ctime": 1436810538.8905823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2285824, + "inode": 523498, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/232", + "xusr": false, + "atime": 1436810538.2285824, + "isdir": false, + "ctime": 1436810538.2285824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9345822, + "inode": 525638, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2372", + "xusr": false, + "atime": 1436810539.9345822, + "isdir": false, + "ctime": 1436810539.9345822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2945824, + "inode": 526045, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2779", + "xusr": false, + "atime": 1436810540.2945824, + "isdir": false, + "ctime": 1436810540.2945824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5495822, + "inode": 526355, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3089", + "xusr": false, + "atime": 1436810540.5495822, + "isdir": false, + "ctime": 1436810540.5495822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9985824, + "inode": 524497, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1231", + "xusr": false, + "atime": 1436810538.9985824, + "isdir": false, + "ctime": 1436810538.9985824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5285823, + "inode": 523866, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/600", + "xusr": false, + "atime": 1436810538.5285823, + "isdir": false, + "ctime": 1436810538.5285823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4425824, + "inode": 523746, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/480", + "xusr": false, + "atime": 1436810538.4425824, + "isdir": false, + "ctime": 1436810538.4425824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4945824, + "inode": 523819, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/553", + "xusr": false, + "atime": 1436810538.4945824, + "isdir": false, + "ctime": 1436810538.4945824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0955822, + "inode": 523310, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/44", + "xusr": false, + "atime": 1436810538.0955822, + "isdir": false, + "ctime": 1436810538.0955822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1245823, + "inode": 523349, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/83", + "xusr": false, + "atime": 1436810538.1245823, + "isdir": false, + "ctime": 1436810538.1245823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1145823, + "inode": 525855, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2589", + "xusr": false, + "atime": 1436810540.1145823, + "isdir": false, + "ctime": 1436810540.1145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9275823, + "inode": 525629, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2363", + "xusr": false, + "atime": 1436810539.9275823, + "isdir": false, + "ctime": 1436810539.9275823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8385823, + "inode": 526759, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3493", + "xusr": false, + "atime": 1436810540.8385823, + "isdir": false, + "ctime": 1436810540.8385823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4735823, + "inode": 527592, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4326", + "xusr": false, + "atime": 1436810541.4735823, + "isdir": false, + "ctime": 1436810541.4735823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9145823, + "inode": 524382, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1116", + "xusr": false, + "atime": 1436810538.9145823, + "isdir": false, + "ctime": 1436810538.9145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2465823, + "inode": 524852, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1586", + "xusr": false, + "atime": 1436810539.2465823, + "isdir": false, + "ctime": 1436810539.2465823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7715824, + "inode": 524190, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/924", + "xusr": false, + "atime": 1436810538.7715824, + "isdir": false, + "ctime": 1436810538.7715824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6785824, + "inode": 526535, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3269", + "xusr": false, + "atime": 1436810540.6785824, + "isdir": false, + "ctime": 1436810540.6785824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2185824, + "inode": 523483, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/217", + "xusr": false, + "atime": 1436810538.2185824, + "isdir": false, + "ctime": 1436810538.2185824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8545823, + "inode": 526782, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3516", + "xusr": false, + "atime": 1436810540.8545823, + "isdir": false, + "ctime": 1436810540.8545823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6685822, + "inode": 525305, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2039", + "xusr": false, + "atime": 1436810539.6685822, + "isdir": false, + "ctime": 1436810539.6685822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2405822, + "inode": 525986, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2720", + "xusr": false, + "atime": 1436810540.2405822, + "isdir": false, + "ctime": 1436810540.2405822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8955822, + "inode": 528174, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4908", + "xusr": false, + "atime": 1436810541.8955822, + "isdir": false, + "ctime": 1436810541.8955822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6335824, + "inode": 525268, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2002", + "xusr": false, + "atime": 1436810539.6335824, + "isdir": false, + "ctime": 1436810539.6335824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8675823, + "inode": 525546, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2280", + "xusr": false, + "atime": 1436810539.8675823, + "isdir": false, + "ctime": 1436810539.8675823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8725822, + "inode": 524324, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1058", + "xusr": false, + "atime": 1436810538.8725822, + "isdir": false, + "ctime": 1436810538.8725822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6735823, + "inode": 524064, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/798", + "xusr": false, + "atime": 1436810538.6735823, + "isdir": false, + "ctime": 1436810538.6735823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3055823, + "inode": 523605, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/339", + "xusr": false, + "atime": 1436810538.3055823, + "isdir": false, + "ctime": 1436810538.3055823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1265824, + "inode": 524680, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1414", + "xusr": false, + "atime": 1436810539.1265824, + "isdir": false, + "ctime": 1436810539.1265824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9145823, + "inode": 526866, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3600", + "xusr": false, + "atime": 1436810540.9145823, + "isdir": false, + "ctime": 1436810540.9145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2005823, + "inode": 527259, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3993", + "xusr": false, + "atime": 1436810541.2005823, + "isdir": false, + "ctime": 1436810541.2005823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7285824, + "inode": 527943, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4677", + "xusr": false, + "atime": 1436810541.7285824, + "isdir": false, + "ctime": 1436810541.7285824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2865822, + "inode": 523580, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/314", + "xusr": false, + "atime": 1436810538.2865822, + "isdir": false, + "ctime": 1436810538.2865822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9515822, + "inode": 526918, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3652", + "xusr": false, + "atime": 1436810540.9515822, + "isdir": false, + "ctime": 1436810540.9515822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9545822, + "inode": 526922, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3656", + "xusr": false, + "atime": 1436810540.9545822, + "isdir": false, + "ctime": 1436810540.9545822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1065824, + "inode": 524652, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1386", + "xusr": false, + "atime": 1436810539.1065824, + "isdir": false, + "ctime": 1436810539.1065824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1055822, + "inode": 524650, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1384", + "xusr": false, + "atime": 1436810539.1055822, + "isdir": false, + "ctime": 1436810539.1055822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5555823, + "inode": 526362, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3096", + "xusr": false, + "atime": 1436810540.5555823, + "isdir": false, + "ctime": 1436810540.5555823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2415824, + "inode": 523515, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/249", + "xusr": false, + "atime": 1436810538.2415824, + "isdir": false, + "ctime": 1436810538.2415824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7025824, + "inode": 525339, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2073", + "xusr": false, + "atime": 1436810539.7025824, + "isdir": false, + "ctime": 1436810539.7025824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7115824, + "inode": 526581, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3315", + "xusr": false, + "atime": 1436810540.7115824, + "isdir": false, + "ctime": 1436810540.7115824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9185822, + "inode": 524388, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1122", + "xusr": false, + "atime": 1436810538.9185822, + "isdir": false, + "ctime": 1436810538.9185822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1365824, + "inode": 525876, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2610", + "xusr": false, + "atime": 1436810540.1365824, + "isdir": false, + "ctime": 1436810540.1365824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2955823, + "inode": 524923, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1657", + "xusr": false, + "atime": 1436810539.2955823, + "isdir": false, + "ctime": 1436810539.2955823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7265823, + "inode": 527940, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4674", + "xusr": false, + "atime": 1436810541.7265823, + "isdir": false, + "ctime": 1436810541.7265823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4165823, + "inode": 526215, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2949", + "xusr": false, + "atime": 1436810540.4165823, + "isdir": false, + "ctime": 1436810540.4165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4875822, + "inode": 523810, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/544", + "xusr": false, + "atime": 1436810538.4875822, + "isdir": false, + "ctime": 1436810538.4875822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6085823, + "inode": 527780, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4514", + "xusr": false, + "atime": 1436810541.6085823, + "isdir": false, + "ctime": 1436810541.6085823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7195823, + "inode": 527931, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4665", + "xusr": false, + "atime": 1436810541.7195823, + "isdir": false, + "ctime": 1436810541.7195823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9775822, + "inode": 526955, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3689", + "xusr": false, + "atime": 1436810540.9775822, + "isdir": false, + "ctime": 1436810540.9775822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2585824, + "inode": 524869, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1603", + "xusr": false, + "atime": 1436810539.2585824, + "isdir": false, + "ctime": 1436810539.2585824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9405823, + "inode": 525647, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2381", + "xusr": false, + "atime": 1436810539.9405823, + "isdir": false, + "ctime": 1436810539.9405823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5305824, + "inode": 523869, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/603", + "xusr": false, + "atime": 1436810538.5305824, + "isdir": false, + "ctime": 1436810538.5305824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8135824, + "inode": 528061, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4795", + "xusr": false, + "atime": 1436810541.8135824, + "isdir": false, + "ctime": 1436810541.8135824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5625823, + "inode": 527715, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4449", + "xusr": false, + "atime": 1436810541.5625823, + "isdir": false, + "ctime": 1436810541.5625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3065822, + "inode": 526061, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2795", + "xusr": false, + "atime": 1436810540.3065822, + "isdir": false, + "ctime": 1436810540.3065822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7455823, + "inode": 524158, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/892", + "xusr": false, + "atime": 1436810538.7455823, + "isdir": false, + "ctime": 1436810538.7455823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4755824, + "inode": 526278, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3012", + "xusr": false, + "atime": 1436810540.4755824, + "isdir": false, + "ctime": 1436810540.4755824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7135823, + "inode": 526584, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3318", + "xusr": false, + "atime": 1436810540.7135823, + "isdir": false, + "ctime": 1436810540.7135823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8625822, + "inode": 528127, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4861", + "xusr": false, + "atime": 1436810541.8625822, + "isdir": false, + "ctime": 1436810541.8625822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1725824, + "inode": 523417, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/151", + "xusr": false, + "atime": 1436810538.1725824, + "isdir": false, + "ctime": 1436810538.1725824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5605824, + "inode": 526370, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3104", + "xusr": false, + "atime": 1436810540.5605824, + "isdir": false, + "ctime": 1436810540.5605824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8165822, + "inode": 528065, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4799", + "xusr": false, + "atime": 1436810541.8165822, + "isdir": false, + "ctime": 1436810541.8165822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8405824, + "inode": 525508, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2242", + "xusr": false, + "atime": 1436810539.8405824, + "isdir": false, + "ctime": 1436810539.8405824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8575823, + "inode": 526785, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3519", + "xusr": false, + "atime": 1436810540.8575823, + "isdir": false, + "ctime": 1436810540.8575823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6655824, + "inode": 524053, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/787", + "xusr": false, + "atime": 1436810538.6655824, + "isdir": false, + "ctime": 1436810538.6655824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4135823, + "inode": 523714, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/448", + "xusr": false, + "atime": 1436810538.4135823, + "isdir": false, + "ctime": 1436810538.4135823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6135824, + "inode": 526445, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3179", + "xusr": false, + "atime": 1436810540.6135824, + "isdir": false, + "ctime": 1436810540.6135824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3185823, + "inode": 524950, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1684", + "xusr": false, + "atime": 1436810539.3185823, + "isdir": false, + "ctime": 1436810539.3185823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9135823, + "inode": 528198, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4932", + "xusr": false, + "atime": 1436810541.9135823, + "isdir": false, + "ctime": 1436810541.9135823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4725823, + "inode": 525091, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1825", + "xusr": false, + "atime": 1436810539.4725823, + "isdir": false, + "ctime": 1436810539.4725823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7355824, + "inode": 524145, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/879", + "xusr": false, + "atime": 1436810538.7355824, + "isdir": false, + "ctime": 1436810538.7355824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2495823, + "inode": 527327, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4061", + "xusr": false, + "atime": 1436810541.2495823, + "isdir": false, + "ctime": 1436810541.2495823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7695823, + "inode": 525413, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2147", + "xusr": false, + "atime": 1436810539.7695823, + "isdir": false, + "ctime": 1436810539.7695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7435822, + "inode": 526627, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3361", + "xusr": false, + "atime": 1436810540.7435822, + "isdir": false, + "ctime": 1436810540.7435822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4455824, + "inode": 523751, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/485", + "xusr": false, + "atime": 1436810538.4455824, + "isdir": false, + "ctime": 1436810538.4455824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7375822, + "inode": 525375, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2109", + "xusr": false, + "atime": 1436810539.7375822, + "isdir": false, + "ctime": 1436810539.7375822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9695823, + "inode": 524457, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1191", + "xusr": false, + "atime": 1436810538.9695823, + "isdir": false, + "ctime": 1436810538.9695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9765823, + "inode": 524468, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1202", + "xusr": false, + "atime": 1436810538.9765823, + "isdir": false, + "ctime": 1436810538.9765823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1675823, + "inode": 525906, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2640", + "xusr": false, + "atime": 1436810540.1675823, + "isdir": false, + "ctime": 1436810540.1675823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8935823, + "inode": 524352, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1086", + "xusr": false, + "atime": 1436810538.8935823, + "isdir": false, + "ctime": 1436810538.8935823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1605823, + "inode": 525900, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2634", + "xusr": false, + "atime": 1436810540.1605823, + "isdir": false, + "ctime": 1436810540.1605823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6495824, + "inode": 525286, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2020", + "xusr": false, + "atime": 1436810539.6495824, + "isdir": false, + "ctime": 1436810539.6495824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6905823, + "inode": 524087, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/821", + "xusr": false, + "atime": 1436810538.6905823, + "isdir": false, + "ctime": 1436810538.6905823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2535822, + "inode": 524862, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1596", + "xusr": false, + "atime": 1436810539.2535822, + "isdir": false, + "ctime": 1436810539.2535822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2635822, + "inode": 526011, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2745", + "xusr": false, + "atime": 1436810540.2635822, + "isdir": false, + "ctime": 1436810540.2635822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8015823, + "inode": 526707, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3441", + "xusr": false, + "atime": 1436810540.8015823, + "isdir": false, + "ctime": 1436810540.8015823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7525823, + "inode": 526638, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3372", + "xusr": false, + "atime": 1436810540.7525823, + "isdir": false, + "ctime": 1436810540.7525823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9705822, + "inode": 525686, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2420", + "xusr": false, + "atime": 1436810539.9705822, + "isdir": false, + "ctime": 1436810539.9705822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7475822, + "inode": 527970, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4704", + "xusr": false, + "atime": 1436810541.7475822, + "isdir": false, + "ctime": 1436810541.7475822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7645824, + "inode": 524182, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/916", + "xusr": false, + "atime": 1436810538.7645824, + "isdir": false, + "ctime": 1436810538.7645824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8045824, + "inode": 524233, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/967", + "xusr": false, + "atime": 1436810538.8045824, + "isdir": false, + "ctime": 1436810538.8045824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0315824, + "inode": 527028, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3762", + "xusr": false, + "atime": 1436810541.0315824, + "isdir": false, + "ctime": 1436810541.0315824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1315823, + "inode": 524687, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1421", + "xusr": false, + "atime": 1436810539.1315823, + "isdir": false, + "ctime": 1436810539.1315823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3355823, + "inode": 524967, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1701", + "xusr": false, + "atime": 1436810539.3355823, + "isdir": false, + "ctime": 1436810539.3355823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7785823, + "inode": 525425, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2159", + "xusr": false, + "atime": 1436810539.7785823, + "isdir": false, + "ctime": 1436810539.7785823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6805823, + "inode": 526538, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3272", + "xusr": false, + "atime": 1436810540.6805823, + "isdir": false, + "ctime": 1436810540.6805823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1685822, + "inode": 524740, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1474", + "xusr": false, + "atime": 1436810539.1685822, + "isdir": false, + "ctime": 1436810539.1685822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5405824, + "inode": 525161, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1895", + "xusr": false, + "atime": 1436810539.5405824, + "isdir": false, + "ctime": 1436810539.5405824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0255823, + "inode": 527019, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3753", + "xusr": false, + "atime": 1436810541.0255823, + "isdir": false, + "ctime": 1436810541.0255823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9725823, + "inode": 525690, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2424", + "xusr": false, + "atime": 1436810539.9725823, + "isdir": false, + "ctime": 1436810539.9725823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9945824, + "inode": 525721, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2455", + "xusr": false, + "atime": 1436810539.9945824, + "isdir": false, + "ctime": 1436810539.9945824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9025824, + "inode": 526849, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3583", + "xusr": false, + "atime": 1436810540.9025824, + "isdir": false, + "ctime": 1436810540.9025824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2345824, + "inode": 524835, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1569", + "xusr": false, + "atime": 1436810539.2345824, + "isdir": false, + "ctime": 1436810539.2345824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1425824, + "inode": 523375, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/109", + "xusr": false, + "atime": 1436810538.1425824, + "isdir": false, + "ctime": 1436810538.1425824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7755823, + "inode": 525421, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2155", + "xusr": false, + "atime": 1436810539.7755823, + "isdir": false, + "ctime": 1436810539.7755823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1475823, + "inode": 525887, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2621", + "xusr": false, + "atime": 1436810540.1475823, + "isdir": false, + "ctime": 1436810540.1475823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6565824, + "inode": 526503, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3237", + "xusr": false, + "atime": 1436810540.6565824, + "isdir": false, + "ctime": 1436810540.6565824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6855824, + "inode": 527884, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4618", + "xusr": false, + "atime": 1436810541.6855824, + "isdir": false, + "ctime": 1436810541.6855824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6965823, + "inode": 525331, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2065", + "xusr": false, + "atime": 1436810539.6965823, + "isdir": false, + "ctime": 1436810539.6965823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6275823, + "inode": 527805, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4539", + "xusr": false, + "atime": 1436810541.6275823, + "isdir": false, + "ctime": 1436810541.6275823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8325822, + "inode": 525497, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2231", + "xusr": false, + "atime": 1436810539.8325822, + "isdir": false, + "ctime": 1436810539.8325822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5885823, + "inode": 527752, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4486", + "xusr": false, + "atime": 1436810541.5885823, + "isdir": false, + "ctime": 1436810541.5885823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5215824, + "inode": 523857, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/591", + "xusr": false, + "atime": 1436810538.5215824, + "isdir": false, + "ctime": 1436810538.5215824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7845824, + "inode": 528021, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4755", + "xusr": false, + "atime": 1436810541.7845824, + "isdir": false, + "ctime": 1436810541.7845824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4805822, + "inode": 526285, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3019", + "xusr": false, + "atime": 1436810540.4805822, + "isdir": false, + "ctime": 1436810540.4805822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3105824, + "inode": 523610, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/344", + "xusr": false, + "atime": 1436810538.3105824, + "isdir": false, + "ctime": 1436810538.3105824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7715824, + "inode": 525415, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2149", + "xusr": false, + "atime": 1436810539.7715824, + "isdir": false, + "ctime": 1436810539.7715824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8585823, + "inode": 526787, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3521", + "xusr": false, + "atime": 1436810540.8585823, + "isdir": false, + "ctime": 1436810540.8585823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4255824, + "inode": 525056, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1790", + "xusr": false, + "atime": 1436810539.4255824, + "isdir": false, + "ctime": 1436810539.4255824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0005822, + "inode": 526986, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3720", + "xusr": false, + "atime": 1436810541.0005822, + "isdir": false, + "ctime": 1436810541.0005822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4255824, + "inode": 526228, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2962", + "xusr": false, + "atime": 1436810540.4255824, + "isdir": false, + "ctime": 1436810540.4255824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9195824, + "inode": 525618, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2352", + "xusr": false, + "atime": 1436810539.9195824, + "isdir": false, + "ctime": 1436810539.9195824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6105824, + "inode": 523979, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/713", + "xusr": false, + "atime": 1436810538.6105824, + "isdir": false, + "ctime": 1436810538.6105824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3415823, + "inode": 523638, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/372", + "xusr": false, + "atime": 1436810538.3415823, + "isdir": false, + "ctime": 1436810538.3415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6725824, + "inode": 527866, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4600", + "xusr": false, + "atime": 1436810541.6725824, + "isdir": false, + "ctime": 1436810541.6725824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6575823, + "inode": 527845, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4579", + "xusr": false, + "atime": 1436810541.6575823, + "isdir": false, + "ctime": 1436810541.6575823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1585822, + "inode": 525898, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2632", + "xusr": false, + "atime": 1436810540.1585822, + "isdir": false, + "ctime": 1436810540.1585822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4015822, + "inode": 526194, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2928", + "xusr": false, + "atime": 1436810540.4015822, + "isdir": false, + "ctime": 1436810540.4015822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4675822, + "inode": 523782, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/516", + "xusr": false, + "atime": 1436810538.4675822, + "isdir": false, + "ctime": 1436810538.4675822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9045823, + "inode": 528186, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4920", + "xusr": false, + "atime": 1436810541.9045823, + "isdir": false, + "ctime": 1436810541.9045823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9905822, + "inode": 524487, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1221", + "xusr": false, + "atime": 1436810538.9905822, + "isdir": false, + "ctime": 1436810538.9905822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4845824, + "inode": 523805, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/539", + "xusr": false, + "atime": 1436810538.4845824, + "isdir": false, + "ctime": 1436810538.4845824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2145822, + "inode": 525958, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2692", + "xusr": false, + "atime": 1436810540.2145822, + "isdir": false, + "ctime": 1436810540.2145822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3875823, + "inode": 525014, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1748", + "xusr": false, + "atime": 1436810539.3875823, + "isdir": false, + "ctime": 1436810539.3875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6745822, + "inode": 524066, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/800", + "xusr": false, + "atime": 1436810538.6745822, + "isdir": false, + "ctime": 1436810538.6745822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2625823, + "inode": 524876, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1610", + "xusr": false, + "atime": 1436810539.2625823, + "isdir": false, + "ctime": 1436810539.2625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2265823, + "inode": 524823, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1557", + "xusr": false, + "atime": 1436810539.2265823, + "isdir": false, + "ctime": 1436810539.2265823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4375823, + "inode": 526243, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2977", + "xusr": false, + "atime": 1436810540.4375823, + "isdir": false, + "ctime": 1436810540.4375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8195822, + "inode": 525478, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2212", + "xusr": false, + "atime": 1436810539.8195822, + "isdir": false, + "ctime": 1436810539.8195822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3595824, + "inode": 527453, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4187", + "xusr": false, + "atime": 1436810541.3595824, + "isdir": false, + "ctime": 1436810541.3595824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3725822, + "inode": 527463, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4197", + "xusr": false, + "atime": 1436810541.3725822, + "isdir": false, + "ctime": 1436810541.3725822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3085823, + "inode": 524939, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1673", + "xusr": false, + "atime": 1436810539.3085823, + "isdir": false, + "ctime": 1436810539.3085823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7665823, + "inode": 527996, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4730", + "xusr": false, + "atime": 1436810541.7665823, + "isdir": false, + "ctime": 1436810541.7665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8505824, + "inode": 528110, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4844", + "xusr": false, + "atime": 1436810541.8505824, + "isdir": false, + "ctime": 1436810541.8505824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1485822, + "inode": 524712, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1446", + "xusr": false, + "atime": 1436810539.1485822, + "isdir": false, + "ctime": 1436810539.1485822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8545823, + "inode": 524299, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1033", + "xusr": false, + "atime": 1436810538.8545823, + "isdir": false, + "ctime": 1436810538.8545823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4675822, + "inode": 525085, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1819", + "xusr": false, + "atime": 1436810539.4675822, + "isdir": false, + "ctime": 1436810539.4675822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6415823, + "inode": 524020, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/754", + "xusr": false, + "atime": 1436810538.6415823, + "isdir": false, + "ctime": 1436810538.6415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6275823, + "inode": 526463, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3197", + "xusr": false, + "atime": 1436810540.6275823, + "isdir": false, + "ctime": 1436810540.6275823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6505823, + "inode": 526495, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3229", + "xusr": false, + "atime": 1436810540.6505823, + "isdir": false, + "ctime": 1436810540.6505823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7195823, + "inode": 524124, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/858", + "xusr": false, + "atime": 1436810538.7195823, + "isdir": false, + "ctime": 1436810538.7195823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3445823, + "inode": 527442, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4176", + "xusr": false, + "atime": 1436810541.3445823, + "isdir": false, + "ctime": 1436810541.3445823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1535823, + "inode": 525892, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2626", + "xusr": false, + "atime": 1436810540.1535823, + "isdir": false, + "ctime": 1436810540.1535823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8175824, + "inode": 526730, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3464", + "xusr": false, + "atime": 1436810540.8175824, + "isdir": false, + "ctime": 1436810540.8175824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9875822, + "inode": 524483, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1217", + "xusr": false, + "atime": 1436810538.9875822, + "isdir": false, + "ctime": 1436810538.9875822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6545823, + "inode": 524038, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/772", + "xusr": false, + "atime": 1436810538.6545823, + "isdir": false, + "ctime": 1436810538.6545823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1495824, + "inode": 524713, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1447", + "xusr": false, + "atime": 1436810539.1495824, + "isdir": false, + "ctime": 1436810539.1495824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5525823, + "inode": 526358, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3092", + "xusr": false, + "atime": 1436810540.5525823, + "isdir": false, + "ctime": 1436810540.5525823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7245822, + "inode": 527938, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4672", + "xusr": false, + "atime": 1436810541.7245822, + "isdir": false, + "ctime": 1436810541.7245822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8455822, + "inode": 525514, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2248", + "xusr": false, + "atime": 1436810539.8455822, + "isdir": false, + "ctime": 1436810539.8455822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7665823, + "inode": 526657, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3391", + "xusr": false, + "atime": 1436810540.7665823, + "isdir": false, + "ctime": 1436810540.7665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5665822, + "inode": 527720, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4454", + "xusr": false, + "atime": 1436810541.5665822, + "isdir": false, + "ctime": 1436810541.5665822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5375824, + "inode": 526338, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3072", + "xusr": false, + "atime": 1436810540.5375824, + "isdir": false, + "ctime": 1436810540.5375824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3305824, + "inode": 523627, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/361", + "xusr": false, + "atime": 1436810538.3305824, + "isdir": false, + "ctime": 1436810538.3305824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6995823, + "inode": 527904, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4638", + "xusr": false, + "atime": 1436810541.6995823, + "isdir": false, + "ctime": 1436810541.6995823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9685824, + "inode": 525684, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2418", + "xusr": false, + "atime": 1436810539.9685824, + "isdir": false, + "ctime": 1436810539.9685824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2015824, + "inode": 524788, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1522", + "xusr": false, + "atime": 1436810539.2015824, + "isdir": false, + "ctime": 1436810539.2015824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2155824, + "inode": 524808, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1542", + "xusr": false, + "atime": 1436810539.2155824, + "isdir": false, + "ctime": 1436810539.2155824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5755823, + "inode": 527733, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4467", + "xusr": false, + "atime": 1436810541.5755823, + "isdir": false, + "ctime": 1436810541.5755823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2965822, + "inode": 526048, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2782", + "xusr": false, + "atime": 1436810540.2965822, + "isdir": false, + "ctime": 1436810540.2965822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6485822, + "inode": 525285, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2019", + "xusr": false, + "atime": 1436810539.6485822, + "isdir": false, + "ctime": 1436810539.6485822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5775824, + "inode": 527736, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4470", + "xusr": false, + "atime": 1436810541.5775824, + "isdir": false, + "ctime": 1436810541.5775824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3275824, + "inode": 527425, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4159", + "xusr": false, + "atime": 1436810541.3275824, + "isdir": false, + "ctime": 1436810541.3275824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2695823, + "inode": 527356, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4090", + "xusr": false, + "atime": 1436810541.2695823, + "isdir": false, + "ctime": 1436810541.2695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2985823, + "inode": 526051, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2785", + "xusr": false, + "atime": 1436810540.2985823, + "isdir": false, + "ctime": 1436810540.2985823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1015823, + "inode": 524644, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1378", + "xusr": false, + "atime": 1436810539.1015823, + "isdir": false, + "ctime": 1436810539.1015823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9765823, + "inode": 524467, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1201", + "xusr": false, + "atime": 1436810538.9765823, + "isdir": false, + "ctime": 1436810538.9765823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4655824, + "inode": 523779, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/513", + "xusr": false, + "atime": 1436810538.4655824, + "isdir": false, + "ctime": 1436810538.4655824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4595823, + "inode": 523771, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/505", + "xusr": false, + "atime": 1436810538.4595823, + "isdir": false, + "ctime": 1436810538.4595823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1795824, + "inode": 524756, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1490", + "xusr": false, + "atime": 1436810539.1795824, + "isdir": false, + "ctime": 1436810539.1795824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8805823, + "inode": 525564, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2298", + "xusr": false, + "atime": 1436810539.8805823, + "isdir": false, + "ctime": 1436810539.8805823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9935822, + "inode": 524490, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1224", + "xusr": false, + "atime": 1436810538.9935822, + "isdir": false, + "ctime": 1436810538.9935822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2465823, + "inode": 527323, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4057", + "xusr": false, + "atime": 1436810541.2465823, + "isdir": false, + "ctime": 1436810541.2465823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8115823, + "inode": 526722, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3456", + "xusr": false, + "atime": 1436810540.8115823, + "isdir": false, + "ctime": 1436810540.8115823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8355823, + "inode": 526755, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3489", + "xusr": false, + "atime": 1436810540.8355823, + "isdir": false, + "ctime": 1436810540.8355823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8065822, + "inode": 526715, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3449", + "xusr": false, + "atime": 1436810540.8065822, + "isdir": false, + "ctime": 1436810540.8065822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1145823, + "inode": 527144, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3878", + "xusr": false, + "atime": 1436810541.1145823, + "isdir": false, + "ctime": 1436810541.1145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5325823, + "inode": 525153, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1887", + "xusr": false, + "atime": 1436810539.5325823, + "isdir": false, + "ctime": 1436810539.5325823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1875823, + "inode": 523440, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/174", + "xusr": false, + "atime": 1436810538.1875823, + "isdir": false, + "ctime": 1436810538.1875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3355823, + "inode": 523634, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/368", + "xusr": false, + "atime": 1436810538.3355823, + "isdir": false, + "ctime": 1436810538.3355823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9175823, + "inode": 526870, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3604", + "xusr": false, + "atime": 1436810540.9175823, + "isdir": false, + "ctime": 1436810540.9175823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1685822, + "inode": 523411, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/145", + "xusr": false, + "atime": 1436810538.1685822, + "isdir": false, + "ctime": 1436810538.1685822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1665823, + "inode": 524738, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1472", + "xusr": false, + "atime": 1436810539.1665823, + "isdir": false, + "ctime": 1436810539.1665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9585824, + "inode": 525671, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2405", + "xusr": false, + "atime": 1436810539.9585824, + "isdir": false, + "ctime": 1436810539.9585824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9365823, + "inode": 526898, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3632", + "xusr": false, + "atime": 1436810540.9365823, + "isdir": false, + "ctime": 1436810540.9365823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2525823, + "inode": 526000, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2734", + "xusr": false, + "atime": 1436810540.2525823, + "isdir": false, + "ctime": 1436810540.2525823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3235824, + "inode": 526084, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2818", + "xusr": false, + "atime": 1436810540.3235824, + "isdir": false, + "ctime": 1436810540.3235824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9655824, + "inode": 524452, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1186", + "xusr": false, + "atime": 1436810538.9655824, + "isdir": false, + "ctime": 1436810538.9655824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7405822, + "inode": 527961, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4695", + "xusr": false, + "atime": 1436810541.7405822, + "isdir": false, + "ctime": 1436810541.7405822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0635824, + "inode": 524589, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1323", + "xusr": false, + "atime": 1436810539.0635824, + "isdir": false, + "ctime": 1436810539.0635824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7155824, + "inode": 527926, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4660", + "xusr": false, + "atime": 1436810541.7155824, + "isdir": false, + "ctime": 1436810541.7155824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8805823, + "inode": 526818, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3552", + "xusr": false, + "atime": 1436810540.8805823, + "isdir": false, + "ctime": 1436810540.8805823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3385823, + "inode": 526106, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2840", + "xusr": false, + "atime": 1436810540.3385823, + "isdir": false, + "ctime": 1436810540.3385823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0285823, + "inode": 524539, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1273", + "xusr": false, + "atime": 1436810539.0285823, + "isdir": false, + "ctime": 1436810539.0285823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7365823, + "inode": 526617, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3351", + "xusr": false, + "atime": 1436810540.7365823, + "isdir": false, + "ctime": 1436810540.7365823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2965822, + "inode": 527394, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4128", + "xusr": false, + "atime": 1436810541.2965822, + "isdir": false, + "ctime": 1436810541.2965822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3445823, + "inode": 527443, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4177", + "xusr": false, + "atime": 1436810541.3445823, + "isdir": false, + "ctime": 1436810541.3445823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2085824, + "inode": 525950, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2684", + "xusr": false, + "atime": 1436810540.2085824, + "isdir": false, + "ctime": 1436810540.2085824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9495823, + "inode": 526915, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3649", + "xusr": false, + "atime": 1436810540.9495823, + "isdir": false, + "ctime": 1436810540.9495823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0345824, + "inode": 525774, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2508", + "xusr": false, + "atime": 1436810540.0345824, + "isdir": false, + "ctime": 1436810540.0345824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8295822, + "inode": 525492, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2226", + "xusr": false, + "atime": 1436810539.8295822, + "isdir": false, + "ctime": 1436810539.8295822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5775824, + "inode": 526393, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3127", + "xusr": false, + "atime": 1436810540.5775824, + "isdir": false, + "ctime": 1436810540.5775824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7595823, + "inode": 527986, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4720", + "xusr": false, + "atime": 1436810541.7595823, + "isdir": false, + "ctime": 1436810541.7595823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4205823, + "inode": 526220, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2954", + "xusr": false, + "atime": 1436810540.4205823, + "isdir": false, + "ctime": 1436810540.4205823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0665822, + "inode": 524594, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1328", + "xusr": false, + "atime": 1436810539.0665822, + "isdir": false, + "ctime": 1436810539.0665822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5005822, + "inode": 526301, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3035", + "xusr": false, + "atime": 1436810540.5005822, + "isdir": false, + "ctime": 1436810540.5005822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1465824, + "inode": 524709, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1443", + "xusr": false, + "atime": 1436810539.1465824, + "isdir": false, + "ctime": 1436810539.1465824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8155823, + "inode": 524247, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/981", + "xusr": false, + "atime": 1436810538.8155823, + "isdir": false, + "ctime": 1436810538.8155823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3615823, + "inode": 527456, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4190", + "xusr": false, + "atime": 1436810541.3615823, + "isdir": false, + "ctime": 1436810541.3615823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3825824, + "inode": 526167, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2901", + "xusr": false, + "atime": 1436810540.3825824, + "isdir": false, + "ctime": 1436810540.3825824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9725823, + "inode": 525689, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2423", + "xusr": false, + "atime": 1436810539.9725823, + "isdir": false, + "ctime": 1436810539.9725823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3835824, + "inode": 526169, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2903", + "xusr": false, + "atime": 1436810540.3835824, + "isdir": false, + "ctime": 1436810540.3835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3815823, + "inode": 523675, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/409", + "xusr": false, + "atime": 1436810538.3815823, + "isdir": false, + "ctime": 1436810538.3815823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4325824, + "inode": 527536, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4270", + "xusr": false, + "atime": 1436810541.4325824, + "isdir": false, + "ctime": 1436810541.4325824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9305823, + "inode": 528222, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4956", + "xusr": false, + "atime": 1436810541.9305823, + "isdir": false, + "ctime": 1436810541.9305823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1255822, + "inode": 523350, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/84", + "xusr": false, + "atime": 1436810538.1255822, + "isdir": false, + "ctime": 1436810538.1255822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7695823, + "inode": 528000, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4734", + "xusr": false, + "atime": 1436810541.7695823, + "isdir": false, + "ctime": 1436810541.7695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8475823, + "inode": 526771, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3505", + "xusr": false, + "atime": 1436810540.8475823, + "isdir": false, + "ctime": 1436810540.8475823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1865823, + "inode": 525924, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2658", + "xusr": false, + "atime": 1436810540.1865823, + "isdir": false, + "ctime": 1436810540.1865823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7975824, + "inode": 528039, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4773", + "xusr": false, + "atime": 1436810541.7975824, + "isdir": false, + "ctime": 1436810541.7975824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3155823, + "inode": 527416, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4150", + "xusr": false, + "atime": 1436810541.3155823, + "isdir": false, + "ctime": 1436810541.3155823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3895824, + "inode": 523682, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/416", + "xusr": false, + "atime": 1436810538.3895824, + "isdir": false, + "ctime": 1436810538.3895824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0335822, + "inode": 524546, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1280", + "xusr": false, + "atime": 1436810539.0335822, + "isdir": false, + "ctime": 1436810539.0335822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4445822, + "inode": 523749, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/483", + "xusr": false, + "atime": 1436810538.4445822, + "isdir": false, + "ctime": 1436810538.4445822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5095823, + "inode": 526306, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3040", + "xusr": false, + "atime": 1436810540.5095823, + "isdir": false, + "ctime": 1436810540.5095823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8245823, + "inode": 528075, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4809", + "xusr": false, + "atime": 1436810541.8245823, + "isdir": false, + "ctime": 1436810541.8245823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9445822, + "inode": 528241, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4975", + "xusr": false, + "atime": 1436810541.9445822, + "isdir": false, + "ctime": 1436810541.9445822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8705823, + "inode": 524322, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1056", + "xusr": false, + "atime": 1436810538.8705823, + "isdir": false, + "ctime": 1436810538.8705823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4225824, + "inode": 523726, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/460", + "xusr": false, + "atime": 1436810538.4225824, + "isdir": false, + "ctime": 1436810538.4225824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8355823, + "inode": 526754, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3488", + "xusr": false, + "atime": 1436810540.8355823, + "isdir": false, + "ctime": 1436810540.8355823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4025824, + "inode": 523699, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/433", + "xusr": false, + "atime": 1436810538.4025824, + "isdir": false, + "ctime": 1436810538.4025824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2215824, + "inode": 525965, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2699", + "xusr": false, + "atime": 1436810540.2215824, + "isdir": false, + "ctime": 1436810540.2215824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2355824, + "inode": 524837, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1571", + "xusr": false, + "atime": 1436810539.2355824, + "isdir": false, + "ctime": 1436810539.2355824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5565822, + "inode": 527706, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4440", + "xusr": false, + "atime": 1436810541.5565822, + "isdir": false, + "ctime": 1436810541.5565822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3575823, + "inode": 523653, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/387", + "xusr": false, + "atime": 1436810538.3575823, + "isdir": false, + "ctime": 1436810538.3575823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4855824, + "inode": 523807, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/541", + "xusr": false, + "atime": 1436810538.4855824, + "isdir": false, + "ctime": 1436810538.4855824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0635824, + "inode": 525806, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2540", + "xusr": false, + "atime": 1436810540.0635824, + "isdir": false, + "ctime": 1436810540.0635824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0775824, + "inode": 523286, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/20", + "xusr": false, + "atime": 1436810538.0775824, + "isdir": false, + "ctime": 1436810538.0775824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1025822, + "inode": 524645, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1379", + "xusr": false, + "atime": 1436810539.1025822, + "isdir": false, + "ctime": 1436810539.1025822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1195824, + "inode": 523342, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/76", + "xusr": false, + "atime": 1436810538.1195824, + "isdir": false, + "ctime": 1436810538.1195824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7945824, + "inode": 524218, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/952", + "xusr": false, + "atime": 1436810538.7945824, + "isdir": false, + "ctime": 1436810538.7945824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6235824, + "inode": 527800, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4534", + "xusr": false, + "atime": 1436810541.6235824, + "isdir": false, + "ctime": 1436810541.6235824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0245824, + "inode": 525761, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2495", + "xusr": false, + "atime": 1436810540.0245824, + "isdir": false, + "ctime": 1436810540.0245824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1745822, + "inode": 525914, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2648", + "xusr": false, + "atime": 1436810540.1745822, + "isdir": false, + "ctime": 1436810540.1745822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3645823, + "inode": 527459, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4193", + "xusr": false, + "atime": 1436810541.3645823, + "isdir": false, + "ctime": 1436810541.3645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6745822, + "inode": 525310, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2044", + "xusr": false, + "atime": 1436810539.6745822, + "isdir": false, + "ctime": 1436810539.6745822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4895823, + "inode": 525110, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1844", + "xusr": false, + "atime": 1436810539.4895823, + "isdir": false, + "ctime": 1436810539.4895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4545822, + "inode": 526261, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2995", + "xusr": false, + "atime": 1436810540.4545822, + "isdir": false, + "ctime": 1436810540.4545822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4775822, + "inode": 525097, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1831", + "xusr": false, + "atime": 1436810539.4775822, + "isdir": false, + "ctime": 1436810539.4775822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4455824, + "inode": 527554, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4288", + "xusr": false, + "atime": 1436810541.4455824, + "isdir": false, + "ctime": 1436810541.4455824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7425823, + "inode": 526626, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3360", + "xusr": false, + "atime": 1436810540.7425823, + "isdir": false, + "ctime": 1436810540.7425823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5385823, + "inode": 523879, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/613", + "xusr": false, + "atime": 1436810538.5385823, + "isdir": false, + "ctime": 1436810538.5385823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6295824, + "inode": 525262, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1996", + "xusr": false, + "atime": 1436810539.6295824, + "isdir": false, + "ctime": 1436810539.6295824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7495823, + "inode": 527972, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4706", + "xusr": false, + "atime": 1436810541.7495823, + "isdir": false, + "ctime": 1436810541.7495823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3335824, + "inode": 527433, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4167", + "xusr": false, + "atime": 1436810541.3335824, + "isdir": false, + "ctime": 1436810541.3335824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1795824, + "inode": 525918, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2652", + "xusr": false, + "atime": 1436810540.1795824, + "isdir": false, + "ctime": 1436810540.1795824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6585822, + "inode": 527847, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4581", + "xusr": false, + "atime": 1436810541.6585822, + "isdir": false, + "ctime": 1436810541.6585822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4535823, + "inode": 527564, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4298", + "xusr": false, + "atime": 1436810541.4535823, + "isdir": false, + "ctime": 1436810541.4535823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2575824, + "inode": 523538, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/272", + "xusr": false, + "atime": 1436810538.2575824, + "isdir": false, + "ctime": 1436810538.2575824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6765823, + "inode": 527872, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4606", + "xusr": false, + "atime": 1436810541.6765823, + "isdir": false, + "ctime": 1436810541.6765823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3305824, + "inode": 524960, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1694", + "xusr": false, + "atime": 1436810539.3305824, + "isdir": false, + "ctime": 1436810539.3305824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0065823, + "inode": 525737, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2471", + "xusr": false, + "atime": 1436810540.0065823, + "isdir": false, + "ctime": 1436810540.0065823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8855822, + "inode": 525571, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2305", + "xusr": false, + "atime": 1436810539.8855822, + "isdir": false, + "ctime": 1436810539.8855822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8375823, + "inode": 526757, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3491", + "xusr": false, + "atime": 1436810540.8375823, + "isdir": false, + "ctime": 1436810540.8375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8675823, + "inode": 526799, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3533", + "xusr": false, + "atime": 1436810540.8675823, + "isdir": false, + "ctime": 1436810540.8675823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1095824, + "inode": 524656, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1390", + "xusr": false, + "atime": 1436810539.1095824, + "isdir": false, + "ctime": 1436810539.1095824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3655822, + "inode": 524992, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1726", + "xusr": false, + "atime": 1436810539.3655822, + "isdir": false, + "ctime": 1436810539.3655822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6715822, + "inode": 526525, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3259", + "xusr": false, + "atime": 1436810540.6715822, + "isdir": false, + "ctime": 1436810540.6715822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9935822, + "inode": 526976, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3710", + "xusr": false, + "atime": 1436810540.9935822, + "isdir": false, + "ctime": 1436810540.9935822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8545823, + "inode": 526781, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3515", + "xusr": false, + "atime": 1436810540.8545823, + "isdir": false, + "ctime": 1436810540.8545823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8575823, + "inode": 525532, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2266", + "xusr": false, + "atime": 1436810539.8575823, + "isdir": false, + "ctime": 1436810539.8575823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9155824, + "inode": 525613, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2347", + "xusr": false, + "atime": 1436810539.9155824, + "isdir": false, + "ctime": 1436810539.9155824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6405823, + "inode": 527822, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4556", + "xusr": false, + "atime": 1436810541.6405823, + "isdir": false, + "ctime": 1436810541.6405823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5905824, + "inode": 525215, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1949", + "xusr": false, + "atime": 1436810539.5905824, + "isdir": false, + "ctime": 1436810539.5905824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9535823, + "inode": 526921, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3655", + "xusr": false, + "atime": 1436810540.9535823, + "isdir": false, + "ctime": 1436810540.9535823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4865823, + "inode": 523808, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/542", + "xusr": false, + "atime": 1436810538.4865823, + "isdir": false, + "ctime": 1436810538.4865823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5855823, + "inode": 523944, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/678", + "xusr": false, + "atime": 1436810538.5855823, + "isdir": false, + "ctime": 1436810538.5855823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4225824, + "inode": 523727, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/461", + "xusr": false, + "atime": 1436810538.4225824, + "isdir": false, + "ctime": 1436810538.4225824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7095823, + "inode": 526578, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3312", + "xusr": false, + "atime": 1436810540.7095823, + "isdir": false, + "ctime": 1436810540.7095823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8135824, + "inode": 526724, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3458", + "xusr": false, + "atime": 1436810540.8135824, + "isdir": false, + "ctime": 1436810540.8135824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4965823, + "inode": 523823, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/557", + "xusr": false, + "atime": 1436810538.4965823, + "isdir": false, + "ctime": 1436810538.4965823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4425824, + "inode": 526248, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2982", + "xusr": false, + "atime": 1436810540.4425824, + "isdir": false, + "ctime": 1436810540.4425824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7085824, + "inode": 527916, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4650", + "xusr": false, + "atime": 1436810541.7085824, + "isdir": false, + "ctime": 1436810541.7085824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2945824, + "inode": 526046, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2780", + "xusr": false, + "atime": 1436810540.2945824, + "isdir": false, + "ctime": 1436810540.2945824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8055823, + "inode": 524234, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/968", + "xusr": false, + "atime": 1436810538.8055823, + "isdir": false, + "ctime": 1436810538.8055823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7675824, + "inode": 524186, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/920", + "xusr": false, + "atime": 1436810538.7675824, + "isdir": false, + "ctime": 1436810538.7675824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8075824, + "inode": 526716, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3450", + "xusr": false, + "atime": 1436810540.8075824, + "isdir": false, + "ctime": 1436810540.8075824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3075824, + "inode": 527407, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4141", + "xusr": false, + "atime": 1436810541.3075824, + "isdir": false, + "ctime": 1436810541.3075824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3515823, + "inode": 526123, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2857", + "xusr": false, + "atime": 1436810540.3515823, + "isdir": false, + "ctime": 1436810540.3515823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3595824, + "inode": 526135, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2869", + "xusr": false, + "atime": 1436810540.3595824, + "isdir": false, + "ctime": 1436810540.3595824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8885822, + "inode": 526830, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3564", + "xusr": false, + "atime": 1436810540.8885822, + "isdir": false, + "ctime": 1436810540.8885822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6045823, + "inode": 525229, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1963", + "xusr": false, + "atime": 1436810539.6045823, + "isdir": false, + "ctime": 1436810539.6045823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9015822, + "inode": 524364, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1098", + "xusr": false, + "atime": 1436810538.9015822, + "isdir": false, + "ctime": 1436810538.9015822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7485824, + "inode": 527971, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4705", + "xusr": false, + "atime": 1436810541.7485824, + "isdir": false, + "ctime": 1436810541.7485824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7155824, + "inode": 526587, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3321", + "xusr": false, + "atime": 1436810540.7155824, + "isdir": false, + "ctime": 1436810540.7155824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6695824, + "inode": 527862, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4596", + "xusr": false, + "atime": 1436810541.6695824, + "isdir": false, + "ctime": 1436810541.6695824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5345824, + "inode": 526334, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3068", + "xusr": false, + "atime": 1436810540.5345824, + "isdir": false, + "ctime": 1436810540.5345824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2155824, + "inode": 525959, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2693", + "xusr": false, + "atime": 1436810540.2155824, + "isdir": false, + "ctime": 1436810540.2155824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0855823, + "inode": 524622, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1356", + "xusr": false, + "atime": 1436810539.0855823, + "isdir": false, + "ctime": 1436810539.0855823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4685824, + "inode": 527585, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4319", + "xusr": false, + "atime": 1436810541.4685824, + "isdir": false, + "ctime": 1436810541.4685824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3335824, + "inode": 523632, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/366", + "xusr": false, + "atime": 1436810538.3335824, + "isdir": false, + "ctime": 1436810538.3335824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2945824, + "inode": 524921, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1655", + "xusr": false, + "atime": 1436810539.2945824, + "isdir": false, + "ctime": 1436810539.2945824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4965823, + "inode": 523822, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/556", + "xusr": false, + "atime": 1436810538.4965823, + "isdir": false, + "ctime": 1436810538.4965823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8505824, + "inode": 524294, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1028", + "xusr": false, + "atime": 1436810538.8505824, + "isdir": false, + "ctime": 1436810538.8505824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9205823, + "inode": 526875, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3609", + "xusr": false, + "atime": 1436810540.9205823, + "isdir": false, + "ctime": 1436810540.9205823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5215824, + "inode": 526321, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3055", + "xusr": false, + "atime": 1436810540.5215824, + "isdir": false, + "ctime": 1436810540.5215824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7945824, + "inode": 525446, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2180", + "xusr": false, + "atime": 1436810539.7945824, + "isdir": false, + "ctime": 1436810539.7945824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8595824, + "inode": 526788, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3522", + "xusr": false, + "atime": 1436810540.8595824, + "isdir": false, + "ctime": 1436810540.8595824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2975824, + "inode": 523596, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/330", + "xusr": false, + "atime": 1436810538.2975824, + "isdir": false, + "ctime": 1436810538.2975824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0605824, + "inode": 524585, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1319", + "xusr": false, + "atime": 1436810539.0605824, + "isdir": false, + "ctime": 1436810539.0605824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8375823, + "inode": 528093, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4827", + "xusr": false, + "atime": 1436810541.8375823, + "isdir": false, + "ctime": 1436810541.8375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3345823, + "inode": 524965, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1699", + "xusr": false, + "atime": 1436810539.3345823, + "isdir": false, + "ctime": 1436810539.3345823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2085824, + "inode": 527270, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4004", + "xusr": false, + "atime": 1436810541.2085824, + "isdir": false, + "ctime": 1436810541.2085824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7915823, + "inode": 528031, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4765", + "xusr": false, + "atime": 1436810541.7915823, + "isdir": false, + "ctime": 1436810541.7915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3715823, + "inode": 526151, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2885", + "xusr": false, + "atime": 1436810540.3715823, + "isdir": false, + "ctime": 1436810540.3715823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2595823, + "inode": 523540, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/274", + "xusr": false, + "atime": 1436810538.2595823, + "isdir": false, + "ctime": 1436810538.2595823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4675822, + "inode": 527583, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4317", + "xusr": false, + "atime": 1436810541.4675822, + "isdir": false, + "ctime": 1436810541.4675822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9455824, + "inode": 528243, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4977", + "xusr": false, + "atime": 1436810541.9455824, + "isdir": false, + "ctime": 1436810541.9455824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2975824, + "inode": 523595, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/329", + "xusr": false, + "atime": 1436810538.2975824, + "isdir": false, + "ctime": 1436810538.2975824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5555823, + "inode": 526363, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3097", + "xusr": false, + "atime": 1436810540.5555823, + "isdir": false, + "ctime": 1436810540.5555823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7145822, + "inode": 526586, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3320", + "xusr": false, + "atime": 1436810540.7145822, + "isdir": false, + "ctime": 1436810540.7145822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0025823, + "inode": 524503, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1237", + "xusr": false, + "atime": 1436810539.0025823, + "isdir": false, + "ctime": 1436810539.0025823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9995823, + "inode": 526984, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3718", + "xusr": false, + "atime": 1436810540.9995823, + "isdir": false, + "ctime": 1436810540.9995823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5795822, + "inode": 527739, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4473", + "xusr": false, + "atime": 1436810541.5795822, + "isdir": false, + "ctime": 1436810541.5795822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5025823, + "inode": 525123, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1857", + "xusr": false, + "atime": 1436810539.5025823, + "isdir": false, + "ctime": 1436810539.5025823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8885822, + "inode": 525576, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2310", + "xusr": false, + "atime": 1436810539.8885822, + "isdir": false, + "ctime": 1436810539.8885822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0935824, + "inode": 527114, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3848", + "xusr": false, + "atime": 1436810541.0935824, + "isdir": false, + "ctime": 1436810541.0935824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0685823, + "inode": 523274, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/8", + "xusr": false, + "atime": 1436810538.0685823, + "isdir": false, + "ctime": 1436810538.0685823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0795822, + "inode": 523290, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/24", + "xusr": false, + "atime": 1436810538.0795822, + "isdir": false, + "ctime": 1436810538.0795822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3475823, + "inode": 527446, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4180", + "xusr": false, + "atime": 1436810541.3475823, + "isdir": false, + "ctime": 1436810541.3475823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2325823, + "inode": 527303, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4037", + "xusr": false, + "atime": 1436810541.2325823, + "isdir": false, + "ctime": 1436810541.2325823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1245823, + "inode": 525865, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2599", + "xusr": false, + "atime": 1436810540.1245823, + "isdir": false, + "ctime": 1436810540.1245823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8215823, + "inode": 525481, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2215", + "xusr": false, + "atime": 1436810539.8215823, + "isdir": false, + "ctime": 1436810539.8215823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6795824, + "inode": 525314, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2048", + "xusr": false, + "atime": 1436810539.6795824, + "isdir": false, + "ctime": 1436810539.6795824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2215824, + "inode": 523487, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/221", + "xusr": false, + "atime": 1436810538.2215824, + "isdir": false, + "ctime": 1436810538.2215824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0715823, + "inode": 524602, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1336", + "xusr": false, + "atime": 1436810539.0715823, + "isdir": false, + "ctime": 1436810539.0715823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1695824, + "inode": 524742, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1476", + "xusr": false, + "atime": 1436810539.1695824, + "isdir": false, + "ctime": 1436810539.1695824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6055822, + "inode": 527775, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4509", + "xusr": false, + "atime": 1436810541.6055822, + "isdir": false, + "ctime": 1436810541.6055822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3025823, + "inode": 524933, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1667", + "xusr": false, + "atime": 1436810539.3025823, + "isdir": false, + "ctime": 1436810539.3025823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3985822, + "inode": 526190, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2924", + "xusr": false, + "atime": 1436810540.3985822, + "isdir": false, + "ctime": 1436810540.3985822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9995823, + "inode": 525728, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2462", + "xusr": false, + "atime": 1436810539.9995823, + "isdir": false, + "ctime": 1436810539.9995823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0805824, + "inode": 524614, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1348", + "xusr": false, + "atime": 1436810539.0805824, + "isdir": false, + "ctime": 1436810539.0805824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1425824, + "inode": 527182, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3916", + "xusr": false, + "atime": 1436810541.1425824, + "isdir": false, + "ctime": 1436810541.1425824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1685822, + "inode": 523412, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/146", + "xusr": false, + "atime": 1436810538.1685822, + "isdir": false, + "ctime": 1436810538.1685822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3445823, + "inode": 524974, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1708", + "xusr": false, + "atime": 1436810539.3445823, + "isdir": false, + "ctime": 1436810539.3445823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4665823, + "inode": 523780, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/514", + "xusr": false, + "atime": 1436810538.4665823, + "isdir": false, + "ctime": 1436810538.4665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7995822, + "inode": 526705, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3439", + "xusr": false, + "atime": 1436810540.7995822, + "isdir": false, + "ctime": 1436810540.7995822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4965823, + "inode": 526296, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3030", + "xusr": false, + "atime": 1436810540.4965823, + "isdir": false, + "ctime": 1436810540.4965823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6305823, + "inode": 524006, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/740", + "xusr": false, + "atime": 1436810538.6305823, + "isdir": false, + "ctime": 1436810538.6305823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9965823, + "inode": 525724, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2458", + "xusr": false, + "atime": 1436810539.9965823, + "isdir": false, + "ctime": 1436810539.9965823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0405824, + "inode": 525783, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2517", + "xusr": false, + "atime": 1436810540.0405824, + "isdir": false, + "ctime": 1436810540.0405824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1455822, + "inode": 524708, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1442", + "xusr": false, + "atime": 1436810539.1455822, + "isdir": false, + "ctime": 1436810539.1455822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1445823, + "inode": 527184, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3918", + "xusr": false, + "atime": 1436810541.1445823, + "isdir": false, + "ctime": 1436810541.1445823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5335822, + "inode": 527675, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4409", + "xusr": false, + "atime": 1436810541.5335822, + "isdir": false, + "ctime": 1436810541.5335822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7475822, + "inode": 527969, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4703", + "xusr": false, + "atime": 1436810541.7475822, + "isdir": false, + "ctime": 1436810541.7475822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9075823, + "inode": 528190, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4924", + "xusr": false, + "atime": 1436810541.9075823, + "isdir": false, + "ctime": 1436810541.9075823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2235823, + "inode": 524820, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1554", + "xusr": false, + "atime": 1436810539.2235823, + "isdir": false, + "ctime": 1436810539.2235823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7665823, + "inode": 525408, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2142", + "xusr": false, + "atime": 1436810539.7665823, + "isdir": false, + "ctime": 1436810539.7665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6825824, + "inode": 525316, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2050", + "xusr": false, + "atime": 1436810539.6825824, + "isdir": false, + "ctime": 1436810539.6825824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3235824, + "inode": 526085, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2819", + "xusr": false, + "atime": 1436810540.3235824, + "isdir": false, + "ctime": 1436810540.3235824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2555823, + "inode": 526004, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2738", + "xusr": false, + "atime": 1436810540.2555823, + "isdir": false, + "ctime": 1436810540.2555823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7965822, + "inode": 528038, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4772", + "xusr": false, + "atime": 1436810541.7965822, + "isdir": false, + "ctime": 1436810541.7965822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5995822, + "inode": 523964, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/698", + "xusr": false, + "atime": 1436810538.5995822, + "isdir": false, + "ctime": 1436810538.5995822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5415823, + "inode": 525162, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1896", + "xusr": false, + "atime": 1436810539.5415823, + "isdir": false, + "ctime": 1436810539.5415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6195824, + "inode": 525249, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1983", + "xusr": false, + "atime": 1436810539.6195824, + "isdir": false, + "ctime": 1436810539.6195824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0415823, + "inode": 527042, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3776", + "xusr": false, + "atime": 1436810541.0415823, + "isdir": false, + "ctime": 1436810541.0415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4065824, + "inode": 523705, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/439", + "xusr": false, + "atime": 1436810538.4065824, + "isdir": false, + "ctime": 1436810538.4065824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5425823, + "inode": 527688, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4422", + "xusr": false, + "atime": 1436810541.5425823, + "isdir": false, + "ctime": 1436810541.5425823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9055824, + "inode": 526853, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3587", + "xusr": false, + "atime": 1436810540.9055824, + "isdir": false, + "ctime": 1436810540.9055824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6385822, + "inode": 524017, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/751", + "xusr": false, + "atime": 1436810538.6385822, + "isdir": false, + "ctime": 1436810538.6385822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8805823, + "inode": 524335, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1069", + "xusr": false, + "atime": 1436810538.8805823, + "isdir": false, + "ctime": 1436810538.8805823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5115824, + "inode": 523843, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/577", + "xusr": false, + "atime": 1436810538.5115824, + "isdir": false, + "ctime": 1436810538.5115824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8205824, + "inode": 525479, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2213", + "xusr": false, + "atime": 1436810539.8205824, + "isdir": false, + "ctime": 1436810539.8205824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6875823, + "inode": 527887, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4621", + "xusr": false, + "atime": 1436810541.6875823, + "isdir": false, + "ctime": 1436810541.6875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5865824, + "inode": 527749, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4483", + "xusr": false, + "atime": 1436810541.5865824, + "isdir": false, + "ctime": 1436810541.5865824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0015824, + "inode": 525731, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2465", + "xusr": false, + "atime": 1436810540.0015824, + "isdir": false, + "ctime": 1436810540.0015824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2505822, + "inode": 527328, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4062", + "xusr": false, + "atime": 1436810541.2505822, + "isdir": false, + "ctime": 1436810541.2505822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8005824, + "inode": 526706, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3440", + "xusr": false, + "atime": 1436810540.8005824, + "isdir": false, + "ctime": 1436810540.8005824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5285823, + "inode": 527668, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4402", + "xusr": false, + "atime": 1436810541.5285823, + "isdir": false, + "ctime": 1436810541.5285823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6525824, + "inode": 524036, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/770", + "xusr": false, + "atime": 1436810538.6525824, + "isdir": false, + "ctime": 1436810538.6525824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2195823, + "inode": 523484, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/218", + "xusr": false, + "atime": 1436810538.2195823, + "isdir": false, + "ctime": 1436810538.2195823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9035823, + "inode": 528184, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4918", + "xusr": false, + "atime": 1436810541.9035823, + "isdir": false, + "ctime": 1436810541.9035823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1335824, + "inode": 525873, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2607", + "xusr": false, + "atime": 1436810540.1335824, + "isdir": false, + "ctime": 1436810540.1335824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7665823, + "inode": 524185, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/919", + "xusr": false, + "atime": 1436810538.7665823, + "isdir": false, + "ctime": 1436810538.7665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6935823, + "inode": 524091, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/825", + "xusr": false, + "atime": 1436810538.6935823, + "isdir": false, + "ctime": 1436810538.6935823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6365824, + "inode": 524014, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/748", + "xusr": false, + "atime": 1436810538.6365824, + "isdir": false, + "ctime": 1436810538.6365824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8375823, + "inode": 524277, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1011", + "xusr": false, + "atime": 1436810538.8375823, + "isdir": false, + "ctime": 1436810538.8375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3155823, + "inode": 524947, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1681", + "xusr": false, + "atime": 1436810539.3155823, + "isdir": false, + "ctime": 1436810539.3155823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3685822, + "inode": 526148, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2882", + "xusr": false, + "atime": 1436810540.3685822, + "isdir": false, + "ctime": 1436810540.3685822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8155823, + "inode": 528063, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4797", + "xusr": false, + "atime": 1436810541.8155823, + "isdir": false, + "ctime": 1436810541.8155823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1245823, + "inode": 527157, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3891", + "xusr": false, + "atime": 1436810541.1245823, + "isdir": false, + "ctime": 1436810541.1245823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9645822, + "inode": 526937, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3671", + "xusr": false, + "atime": 1436810540.9645822, + "isdir": false, + "ctime": 1436810540.9645822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9125824, + "inode": 528197, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4931", + "xusr": false, + "atime": 1436810541.9125824, + "isdir": false, + "ctime": 1436810541.9125824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8845823, + "inode": 525570, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2304", + "xusr": false, + "atime": 1436810539.8845823, + "isdir": false, + "ctime": 1436810539.8845823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2875824, + "inode": 527381, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4115", + "xusr": false, + "atime": 1436810541.2875824, + "isdir": false, + "ctime": 1436810541.2875824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6065824, + "inode": 523973, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/707", + "xusr": false, + "atime": 1436810538.6065824, + "isdir": false, + "ctime": 1436810538.6065824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8765824, + "inode": 526813, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3547", + "xusr": false, + "atime": 1436810540.8765824, + "isdir": false, + "ctime": 1436810540.8765824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1945822, + "inode": 524778, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1512", + "xusr": false, + "atime": 1436810539.1945822, + "isdir": false, + "ctime": 1436810539.1945822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7525823, + "inode": 525390, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2124", + "xusr": false, + "atime": 1436810539.7525823, + "isdir": false, + "ctime": 1436810539.7525823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5465822, + "inode": 523891, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/625", + "xusr": false, + "atime": 1436810538.5465822, + "isdir": false, + "ctime": 1436810538.5465822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8375823, + "inode": 525504, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2238", + "xusr": false, + "atime": 1436810539.8375823, + "isdir": false, + "ctime": 1436810539.8375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8785822, + "inode": 525561, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2295", + "xusr": false, + "atime": 1436810539.8785822, + "isdir": false, + "ctime": 1436810539.8785822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6445823, + "inode": 527827, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4561", + "xusr": false, + "atime": 1436810541.6445823, + "isdir": false, + "ctime": 1436810541.6445823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5485823, + "inode": 527695, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4429", + "xusr": false, + "atime": 1436810541.5485823, + "isdir": false, + "ctime": 1436810541.5485823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2235823, + "inode": 527291, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4025", + "xusr": false, + "atime": 1436810541.2235823, + "isdir": false, + "ctime": 1436810541.2235823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5245824, + "inode": 525143, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1877", + "xusr": false, + "atime": 1436810539.5245824, + "isdir": false, + "ctime": 1436810539.5245824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3115823, + "inode": 524943, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1677", + "xusr": false, + "atime": 1436810539.3115823, + "isdir": false, + "ctime": 1436810539.3115823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2475822, + "inode": 523524, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/258", + "xusr": false, + "atime": 1436810538.2475822, + "isdir": false, + "ctime": 1436810538.2475822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8675823, + "inode": 528133, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4867", + "xusr": false, + "atime": 1436810541.8675823, + "isdir": false, + "ctime": 1436810541.8675823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0635824, + "inode": 524590, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1324", + "xusr": false, + "atime": 1436810539.0635824, + "isdir": false, + "ctime": 1436810539.0635824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3825824, + "inode": 527475, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4209", + "xusr": false, + "atime": 1436810541.3825824, + "isdir": false, + "ctime": 1436810541.3825824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9305823, + "inode": 526889, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3623", + "xusr": false, + "atime": 1436810540.9305823, + "isdir": false, + "ctime": 1436810540.9305823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2215824, + "inode": 523488, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/222", + "xusr": false, + "atime": 1436810538.2215824, + "isdir": false, + "ctime": 1436810538.2215824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2855823, + "inode": 524908, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1642", + "xusr": false, + "atime": 1436810539.2855823, + "isdir": false, + "ctime": 1436810539.2855823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4485824, + "inode": 527558, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4292", + "xusr": false, + "atime": 1436810541.4485824, + "isdir": false, + "ctime": 1436810541.4485824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4195824, + "inode": 523722, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/456", + "xusr": false, + "atime": 1436810538.4195824, + "isdir": false, + "ctime": 1436810538.4195824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8955822, + "inode": 524355, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1089", + "xusr": false, + "atime": 1436810538.8955822, + "isdir": false, + "ctime": 1436810538.8955822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1845822, + "inode": 527236, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3970", + "xusr": false, + "atime": 1436810541.1845822, + "isdir": false, + "ctime": 1436810541.1845822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6805823, + "inode": 527877, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4611", + "xusr": false, + "atime": 1436810541.6805823, + "isdir": false, + "ctime": 1436810541.6805823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5245824, + "inode": 523861, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/595", + "xusr": false, + "atime": 1436810538.5245824, + "isdir": false, + "ctime": 1436810538.5245824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2305822, + "inode": 524829, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1563", + "xusr": false, + "atime": 1436810539.2305822, + "isdir": false, + "ctime": 1436810539.2305822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7075822, + "inode": 527915, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4649", + "xusr": false, + "atime": 1436810541.7075822, + "isdir": false, + "ctime": 1436810541.7075822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6585822, + "inode": 524043, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/777", + "xusr": false, + "atime": 1436810538.6585822, + "isdir": false, + "ctime": 1436810538.6585822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0815823, + "inode": 527098, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3832", + "xusr": false, + "atime": 1436810541.0815823, + "isdir": false, + "ctime": 1436810541.0815823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8505824, + "inode": 525521, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2255", + "xusr": false, + "atime": 1436810539.8505824, + "isdir": false, + "ctime": 1436810539.8505824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0545824, + "inode": 524576, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1310", + "xusr": false, + "atime": 1436810539.0545824, + "isdir": false, + "ctime": 1436810539.0545824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9525824, + "inode": 524433, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1167", + "xusr": false, + "atime": 1436810538.9525824, + "isdir": false, + "ctime": 1436810538.9525824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0915823, + "inode": 527112, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3846", + "xusr": false, + "atime": 1436810541.0915823, + "isdir": false, + "ctime": 1436810541.0915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4445822, + "inode": 527552, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4286", + "xusr": false, + "atime": 1436810541.4445822, + "isdir": false, + "ctime": 1436810541.4445822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0905824, + "inode": 523304, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/38", + "xusr": false, + "atime": 1436810538.0905824, + "isdir": false, + "ctime": 1436810538.0905824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2435822, + "inode": 525989, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2723", + "xusr": false, + "atime": 1436810540.2435822, + "isdir": false, + "ctime": 1436810540.2435822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7655823, + "inode": 526656, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3390", + "xusr": false, + "atime": 1436810540.7655823, + "isdir": false, + "ctime": 1436810540.7655823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6965823, + "inode": 527899, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4633", + "xusr": false, + "atime": 1436810541.6965823, + "isdir": false, + "ctime": 1436810541.6965823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2765822, + "inode": 523565, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/299", + "xusr": false, + "atime": 1436810538.2765822, + "isdir": false, + "ctime": 1436810538.2765822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3945823, + "inode": 523688, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/422", + "xusr": false, + "atime": 1436810538.3945823, + "isdir": false, + "ctime": 1436810538.3945823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6965823, + "inode": 526560, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3294", + "xusr": false, + "atime": 1436810540.6965823, + "isdir": false, + "ctime": 1436810540.6965823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8115823, + "inode": 525466, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2200", + "xusr": false, + "atime": 1436810539.8115823, + "isdir": false, + "ctime": 1436810539.8115823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9405823, + "inode": 524416, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1150", + "xusr": false, + "atime": 1436810538.9405823, + "isdir": false, + "ctime": 1436810538.9405823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2885823, + "inode": 524913, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1647", + "xusr": false, + "atime": 1436810539.2885823, + "isdir": false, + "ctime": 1436810539.2885823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8105824, + "inode": 524241, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/975", + "xusr": false, + "atime": 1436810538.8105824, + "isdir": false, + "ctime": 1436810538.8105824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8025823, + "inode": 525454, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2188", + "xusr": false, + "atime": 1436810539.8025823, + "isdir": false, + "ctime": 1436810539.8025823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8095822, + "inode": 525464, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2198", + "xusr": false, + "atime": 1436810539.8095822, + "isdir": false, + "ctime": 1436810539.8095822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2535822, + "inode": 527333, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4067", + "xusr": false, + "atime": 1436810541.2535822, + "isdir": false, + "ctime": 1436810541.2535822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8985822, + "inode": 528177, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4911", + "xusr": false, + "atime": 1436810541.8985822, + "isdir": false, + "ctime": 1436810541.8985822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1465824, + "inode": 527188, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3922", + "xusr": false, + "atime": 1436810541.1465824, + "isdir": false, + "ctime": 1436810541.1465824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5905824, + "inode": 527755, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4489", + "xusr": false, + "atime": 1436810541.5905824, + "isdir": false, + "ctime": 1436810541.5905824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7185824, + "inode": 526592, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3326", + "xusr": false, + "atime": 1436810540.7185824, + "isdir": false, + "ctime": 1436810540.7185824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1475823, + "inode": 527189, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3923", + "xusr": false, + "atime": 1436810541.1475823, + "isdir": false, + "ctime": 1436810541.1475823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8305824, + "inode": 528084, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4818", + "xusr": false, + "atime": 1436810541.8305824, + "isdir": false, + "ctime": 1436810541.8305824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3845823, + "inode": 525010, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1744", + "xusr": false, + "atime": 1436810539.3845823, + "isdir": false, + "ctime": 1436810539.3845823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9625823, + "inode": 525676, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2410", + "xusr": false, + "atime": 1436810539.9625823, + "isdir": false, + "ctime": 1436810539.9625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9275823, + "inode": 528218, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4952", + "xusr": false, + "atime": 1436810541.9275823, + "isdir": false, + "ctime": 1436810541.9275823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7515824, + "inode": 526637, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3371", + "xusr": false, + "atime": 1436810540.7515824, + "isdir": false, + "ctime": 1436810540.7515824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3265824, + "inode": 523622, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/356", + "xusr": false, + "atime": 1436810538.3265824, + "isdir": false, + "ctime": 1436810538.3265824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0105822, + "inode": 525743, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2477", + "xusr": false, + "atime": 1436810540.0105822, + "isdir": false, + "ctime": 1436810540.0105822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0565822, + "inode": 524580, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1314", + "xusr": false, + "atime": 1436810539.0565822, + "isdir": false, + "ctime": 1436810539.0565822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4025824, + "inode": 527496, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4230", + "xusr": false, + "atime": 1436810541.4025824, + "isdir": false, + "ctime": 1436810541.4025824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0085824, + "inode": 526997, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3731", + "xusr": false, + "atime": 1436810541.0085824, + "isdir": false, + "ctime": 1436810541.0085824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8795824, + "inode": 528150, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4884", + "xusr": false, + "atime": 1436810541.8795824, + "isdir": false, + "ctime": 1436810541.8795824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9865823, + "inode": 525709, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2443", + "xusr": false, + "atime": 1436810539.9865823, + "isdir": false, + "ctime": 1436810539.9865823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4255824, + "inode": 525055, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1789", + "xusr": false, + "atime": 1436810539.4255824, + "isdir": false, + "ctime": 1436810539.4255824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3095822, + "inode": 526066, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2800", + "xusr": false, + "atime": 1436810540.3095822, + "isdir": false, + "ctime": 1436810540.3095822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2815824, + "inode": 524903, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1637", + "xusr": false, + "atime": 1436810539.2815824, + "isdir": false, + "ctime": 1436810539.2815824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8645823, + "inode": 528130, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4864", + "xusr": false, + "atime": 1436810541.8645823, + "isdir": false, + "ctime": 1436810541.8645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7355824, + "inode": 525372, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2106", + "xusr": false, + "atime": 1436810539.7355824, + "isdir": false, + "ctime": 1436810539.7355824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2625823, + "inode": 523545, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/279", + "xusr": false, + "atime": 1436810538.2625823, + "isdir": false, + "ctime": 1436810538.2625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7165823, + "inode": 526589, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3323", + "xusr": false, + "atime": 1436810540.7165823, + "isdir": false, + "ctime": 1436810540.7165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5915823, + "inode": 527756, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4490", + "xusr": false, + "atime": 1436810541.5915823, + "isdir": false, + "ctime": 1436810541.5915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1375823, + "inode": 524696, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1430", + "xusr": false, + "atime": 1436810539.1375823, + "isdir": false, + "ctime": 1436810539.1375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5185823, + "inode": 527655, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4389", + "xusr": false, + "atime": 1436810541.5185823, + "isdir": false, + "ctime": 1436810541.5185823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5115824, + "inode": 526309, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3043", + "xusr": false, + "atime": 1436810540.5115824, + "isdir": false, + "ctime": 1436810540.5115824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9355824, + "inode": 525640, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2374", + "xusr": false, + "atime": 1436810539.9355824, + "isdir": false, + "ctime": 1436810539.9355824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5625823, + "inode": 525185, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1919", + "xusr": false, + "atime": 1436810539.5625823, + "isdir": false, + "ctime": 1436810539.5625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8125823, + "inode": 528060, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4794", + "xusr": false, + "atime": 1436810541.8125823, + "isdir": false, + "ctime": 1436810541.8125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4715824, + "inode": 527590, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4324", + "xusr": false, + "atime": 1436810541.4715824, + "isdir": false, + "ctime": 1436810541.4715824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0325823, + "inode": 524545, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1279", + "xusr": false, + "atime": 1436810539.0325823, + "isdir": false, + "ctime": 1436810539.0325823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3825824, + "inode": 523676, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/410", + "xusr": false, + "atime": 1436810538.3825824, + "isdir": false, + "ctime": 1436810538.3825824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9115822, + "inode": 525608, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2342", + "xusr": false, + "atime": 1436810539.9115822, + "isdir": false, + "ctime": 1436810539.9115822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2325823, + "inode": 523502, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/236", + "xusr": false, + "atime": 1436810538.2325823, + "isdir": false, + "ctime": 1436810538.2325823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5775824, + "inode": 526394, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3128", + "xusr": false, + "atime": 1436810540.5775824, + "isdir": false, + "ctime": 1436810540.5775824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9555824, + "inode": 528257, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4991", + "xusr": false, + "atime": 1436810541.9555824, + "isdir": false, + "ctime": 1436810541.9555824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3975823, + "inode": 525023, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1757", + "xusr": false, + "atime": 1436810539.3975823, + "isdir": false, + "ctime": 1436810539.3975823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0455823, + "inode": 525790, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2524", + "xusr": false, + "atime": 1436810540.0455823, + "isdir": false, + "ctime": 1436810540.0455823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8515823, + "inode": 524296, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1030", + "xusr": false, + "atime": 1436810538.8515823, + "isdir": false, + "ctime": 1436810538.8515823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3255823, + "inode": 527422, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4156", + "xusr": false, + "atime": 1436810541.3255823, + "isdir": false, + "ctime": 1436810541.3255823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9535823, + "inode": 525664, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2398", + "xusr": false, + "atime": 1436810539.9535823, + "isdir": false, + "ctime": 1436810539.9535823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6425824, + "inode": 526484, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3218", + "xusr": false, + "atime": 1436810540.6425824, + "isdir": false, + "ctime": 1436810540.6425824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5395823, + "inode": 523881, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/615", + "xusr": false, + "atime": 1436810538.5395823, + "isdir": false, + "ctime": 1436810538.5395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0815823, + "inode": 525825, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2559", + "xusr": false, + "atime": 1436810540.0815823, + "isdir": false, + "ctime": 1436810540.0815823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8725822, + "inode": 525553, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2287", + "xusr": false, + "atime": 1436810539.8725822, + "isdir": false, + "ctime": 1436810539.8725822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0085824, + "inode": 525740, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2474", + "xusr": false, + "atime": 1436810540.0085824, + "isdir": false, + "ctime": 1436810540.0085824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4145823, + "inode": 525042, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1776", + "xusr": false, + "atime": 1436810539.4145823, + "isdir": false, + "ctime": 1436810539.4145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3615823, + "inode": 526137, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2871", + "xusr": false, + "atime": 1436810540.3615823, + "isdir": false, + "ctime": 1436810540.3615823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5305824, + "inode": 527671, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4405", + "xusr": false, + "atime": 1436810541.5305824, + "isdir": false, + "ctime": 1436810541.5305824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8665824, + "inode": 524316, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1050", + "xusr": false, + "atime": 1436810538.8665824, + "isdir": false, + "ctime": 1436810538.8665824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6525824, + "inode": 524035, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/769", + "xusr": false, + "atime": 1436810538.6525824, + "isdir": false, + "ctime": 1436810538.6525824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9295824, + "inode": 525631, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2365", + "xusr": false, + "atime": 1436810539.9295824, + "isdir": false, + "ctime": 1436810539.9295824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0295823, + "inode": 527025, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3759", + "xusr": false, + "atime": 1436810541.0295823, + "isdir": false, + "ctime": 1436810541.0295823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6725824, + "inode": 524063, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/797", + "xusr": false, + "atime": 1436810538.6725824, + "isdir": false, + "ctime": 1436810538.6725824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4065824, + "inode": 526202, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2936", + "xusr": false, + "atime": 1436810540.4065824, + "isdir": false, + "ctime": 1436810540.4065824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2755823, + "inode": 524894, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1628", + "xusr": false, + "atime": 1436810539.2755823, + "isdir": false, + "ctime": 1436810539.2755823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8285823, + "inode": 524265, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/999", + "xusr": false, + "atime": 1436810538.8285823, + "isdir": false, + "ctime": 1436810538.8285823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5235822, + "inode": 523859, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/593", + "xusr": false, + "atime": 1436810538.5235822, + "isdir": false, + "ctime": 1436810538.5235822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5665822, + "inode": 526378, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3112", + "xusr": false, + "atime": 1436810540.5665822, + "isdir": false, + "ctime": 1436810540.5665822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8025823, + "inode": 528046, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4780", + "xusr": false, + "atime": 1436810541.8025823, + "isdir": false, + "ctime": 1436810541.8025823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5295823, + "inode": 526328, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3062", + "xusr": false, + "atime": 1436810540.5295823, + "isdir": false, + "ctime": 1436810540.5295823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2995822, + "inode": 524928, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1662", + "xusr": false, + "atime": 1436810539.2995822, + "isdir": false, + "ctime": 1436810539.2995822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0295823, + "inode": 524541, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1275", + "xusr": false, + "atime": 1436810539.0295823, + "isdir": false, + "ctime": 1436810539.0295823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2075822, + "inode": 527269, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4003", + "xusr": false, + "atime": 1436810541.2075822, + "isdir": false, + "ctime": 1436810541.2075822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2455823, + "inode": 524851, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1585", + "xusr": false, + "atime": 1436810539.2455823, + "isdir": false, + "ctime": 1436810539.2455823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5545824, + "inode": 525174, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1908", + "xusr": false, + "atime": 1436810539.5545824, + "isdir": false, + "ctime": 1436810539.5545824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1045823, + "inode": 527129, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3863", + "xusr": false, + "atime": 1436810541.1045823, + "isdir": false, + "ctime": 1436810541.1045823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2185824, + "inode": 524812, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1546", + "xusr": false, + "atime": 1436810539.2185824, + "isdir": false, + "ctime": 1436810539.2185824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1445823, + "inode": 527185, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3919", + "xusr": false, + "atime": 1436810541.1445823, + "isdir": false, + "ctime": 1436810541.1445823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4835823, + "inode": 526288, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3022", + "xusr": false, + "atime": 1436810540.4835823, + "isdir": false, + "ctime": 1436810540.4835823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8705823, + "inode": 524321, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1055", + "xusr": false, + "atime": 1436810538.8705823, + "isdir": false, + "ctime": 1436810538.8705823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1035824, + "inode": 523321, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/55", + "xusr": false, + "atime": 1436810538.1035824, + "isdir": false, + "ctime": 1436810538.1035824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5085824, + "inode": 523839, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/573", + "xusr": false, + "atime": 1436810538.5085824, + "isdir": false, + "ctime": 1436810538.5085824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8065822, + "inode": 526714, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3448", + "xusr": false, + "atime": 1436810540.8065822, + "isdir": false, + "ctime": 1436810540.8065822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0895822, + "inode": 525832, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2566", + "xusr": false, + "atime": 1436810540.0895822, + "isdir": false, + "ctime": 1436810540.0895822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6015823, + "inode": 525225, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1959", + "xusr": false, + "atime": 1436810539.6015823, + "isdir": false, + "ctime": 1436810539.6015823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7815824, + "inode": 524203, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/937", + "xusr": false, + "atime": 1436810538.7815824, + "isdir": false, + "ctime": 1436810538.7815824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1065824, + "inode": 527132, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3866", + "xusr": false, + "atime": 1436810541.1065824, + "isdir": false, + "ctime": 1436810541.1065824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7135823, + "inode": 526585, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3319", + "xusr": false, + "atime": 1436810540.7135823, + "isdir": false, + "ctime": 1436810540.7135823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9395823, + "inode": 524415, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1149", + "xusr": false, + "atime": 1436810538.9395823, + "isdir": false, + "ctime": 1436810538.9395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0175824, + "inode": 525753, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2487", + "xusr": false, + "atime": 1436810540.0175824, + "isdir": false, + "ctime": 1436810540.0175824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8005824, + "inode": 524227, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/961", + "xusr": false, + "atime": 1436810538.8005824, + "isdir": false, + "ctime": 1436810538.8005824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7225823, + "inode": 527935, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4669", + "xusr": false, + "atime": 1436810541.7225823, + "isdir": false, + "ctime": 1436810541.7225823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9665823, + "inode": 525681, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2415", + "xusr": false, + "atime": 1436810539.9665823, + "isdir": false, + "ctime": 1436810539.9665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9475822, + "inode": 528246, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4980", + "xusr": false, + "atime": 1436810541.9475822, + "isdir": false, + "ctime": 1436810541.9475822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5055823, + "inode": 525126, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1860", + "xusr": false, + "atime": 1436810539.5055823, + "isdir": false, + "ctime": 1436810539.5055823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6375823, + "inode": 525273, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2007", + "xusr": false, + "atime": 1436810539.6375823, + "isdir": false, + "ctime": 1436810539.6375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2375822, + "inode": 524840, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1574", + "xusr": false, + "atime": 1436810539.2375822, + "isdir": false, + "ctime": 1436810539.2375822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9575822, + "inode": 525670, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2404", + "xusr": false, + "atime": 1436810539.9575822, + "isdir": false, + "ctime": 1436810539.9575822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7215824, + "inode": 525358, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2092", + "xusr": false, + "atime": 1436810539.7215824, + "isdir": false, + "ctime": 1436810539.7215824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6145823, + "inode": 525243, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1977", + "xusr": false, + "atime": 1436810539.6145823, + "isdir": false, + "ctime": 1436810539.6145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0545824, + "inode": 527059, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3793", + "xusr": false, + "atime": 1436810541.0545824, + "isdir": false, + "ctime": 1436810541.0545824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1895823, + "inode": 524771, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1505", + "xusr": false, + "atime": 1436810539.1895823, + "isdir": false, + "ctime": 1436810539.1895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5695822, + "inode": 523922, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/656", + "xusr": false, + "atime": 1436810538.5695822, + "isdir": false, + "ctime": 1436810538.5695822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6625824, + "inode": 525300, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2034", + "xusr": false, + "atime": 1436810539.6625824, + "isdir": false, + "ctime": 1436810539.6625824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1705823, + "inode": 527219, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3953", + "xusr": false, + "atime": 1436810541.1705823, + "isdir": false, + "ctime": 1436810541.1705823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2315824, + "inode": 525978, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2712", + "xusr": false, + "atime": 1436810540.2315824, + "isdir": false, + "ctime": 1436810540.2315824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8655822, + "inode": 525543, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2277", + "xusr": false, + "atime": 1436810539.8655822, + "isdir": false, + "ctime": 1436810539.8655822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4835823, + "inode": 527606, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4340", + "xusr": false, + "atime": 1436810541.4835823, + "isdir": false, + "ctime": 1436810541.4835823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7305822, + "inode": 526608, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3342", + "xusr": false, + "atime": 1436810540.7305822, + "isdir": false, + "ctime": 1436810540.7305822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4085822, + "inode": 525034, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1768", + "xusr": false, + "atime": 1436810539.4085822, + "isdir": false, + "ctime": 1436810539.4085822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1115823, + "inode": 523331, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/65", + "xusr": false, + "atime": 1436810538.1115823, + "isdir": false, + "ctime": 1436810538.1115823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9555824, + "inode": 524438, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1172", + "xusr": false, + "atime": 1436810538.9555824, + "isdir": false, + "ctime": 1436810538.9555824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7895823, + "inode": 525441, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2175", + "xusr": false, + "atime": 1436810539.7895823, + "isdir": false, + "ctime": 1436810539.7895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8445823, + "inode": 524287, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1021", + "xusr": false, + "atime": 1436810538.8445823, + "isdir": false, + "ctime": 1436810538.8445823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2945824, + "inode": 523591, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/325", + "xusr": false, + "atime": 1436810538.2945824, + "isdir": false, + "ctime": 1436810538.2945824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5165823, + "inode": 526315, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3049", + "xusr": false, + "atime": 1436810540.5165823, + "isdir": false, + "ctime": 1436810540.5165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1385822, + "inode": 523369, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/103", + "xusr": false, + "atime": 1436810538.1385822, + "isdir": false, + "ctime": 1436810538.1385822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6305823, + "inode": 526468, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3202", + "xusr": false, + "atime": 1436810540.6305823, + "isdir": false, + "ctime": 1436810540.6305823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9715824, + "inode": 526946, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3680", + "xusr": false, + "atime": 1436810540.9715824, + "isdir": false, + "ctime": 1436810540.9715824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3435824, + "inode": 526113, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2847", + "xusr": false, + "atime": 1436810540.3435824, + "isdir": false, + "ctime": 1436810540.3435824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0645823, + "inode": 523268, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2", + "xusr": false, + "atime": 1436810538.0645823, + "isdir": false, + "ctime": 1436810538.0645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3165822, + "inode": 527417, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4151", + "xusr": false, + "atime": 1436810541.3165822, + "isdir": false, + "ctime": 1436810541.3165822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0465822, + "inode": 527049, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3783", + "xusr": false, + "atime": 1436810541.0465822, + "isdir": false, + "ctime": 1436810541.0465822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6335824, + "inode": 524010, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/744", + "xusr": false, + "atime": 1436810538.6335824, + "isdir": false, + "ctime": 1436810538.6335824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1815822, + "inode": 527233, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3967", + "xusr": false, + "atime": 1436810541.1815822, + "isdir": false, + "ctime": 1436810541.1815822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7055824, + "inode": 524108, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/842", + "xusr": false, + "atime": 1436810538.7055824, + "isdir": false, + "ctime": 1436810538.7055824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0885823, + "inode": 525831, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2565", + "xusr": false, + "atime": 1436810540.0885823, + "isdir": false, + "ctime": 1436810540.0885823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0945823, + "inode": 524635, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1369", + "xusr": false, + "atime": 1436810539.0945823, + "isdir": false, + "ctime": 1436810539.0945823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8645823, + "inode": 525541, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2275", + "xusr": false, + "atime": 1436810539.8645823, + "isdir": false, + "ctime": 1436810539.8645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0795822, + "inode": 523289, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/23", + "xusr": false, + "atime": 1436810538.0795822, + "isdir": false, + "ctime": 1436810538.0795822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4935822, + "inode": 527621, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4355", + "xusr": false, + "atime": 1436810541.4935822, + "isdir": false, + "ctime": 1436810541.4935822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2125823, + "inode": 523476, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/210", + "xusr": false, + "atime": 1436810538.2125823, + "isdir": false, + "ctime": 1436810538.2125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4975822, + "inode": 527625, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4359", + "xusr": false, + "atime": 1436810541.4975822, + "isdir": false, + "ctime": 1436810541.4975822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2235823, + "inode": 523490, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/224", + "xusr": false, + "atime": 1436810538.2235823, + "isdir": false, + "ctime": 1436810538.2235823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0365822, + "inode": 524551, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1285", + "xusr": false, + "atime": 1436810539.0365822, + "isdir": false, + "ctime": 1436810539.0365822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9085822, + "inode": 528192, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4926", + "xusr": false, + "atime": 1436810541.9085822, + "isdir": false, + "ctime": 1436810541.9085822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6805823, + "inode": 526537, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3271", + "xusr": false, + "atime": 1436810540.6805823, + "isdir": false, + "ctime": 1436810540.6805823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9865823, + "inode": 525710, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2444", + "xusr": false, + "atime": 1436810539.9865823, + "isdir": false, + "ctime": 1436810539.9865823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6085823, + "inode": 523976, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/710", + "xusr": false, + "atime": 1436810538.6085823, + "isdir": false, + "ctime": 1436810538.6085823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9575822, + "inode": 528259, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4993", + "xusr": false, + "atime": 1436810541.9575822, + "isdir": false, + "ctime": 1436810541.9575822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6245823, + "inode": 527802, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4536", + "xusr": false, + "atime": 1436810541.6245823, + "isdir": false, + "ctime": 1436810541.6245823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5565822, + "inode": 526364, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3098", + "xusr": false, + "atime": 1436810540.5565822, + "isdir": false, + "ctime": 1436810540.5565822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8565824, + "inode": 526784, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3518", + "xusr": false, + "atime": 1436810540.8565824, + "isdir": false, + "ctime": 1436810540.8565824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2025824, + "inode": 524789, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1523", + "xusr": false, + "atime": 1436810539.2025824, + "isdir": false, + "ctime": 1436810539.2025824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3005824, + "inode": 526053, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2787", + "xusr": false, + "atime": 1436810540.3005824, + "isdir": false, + "ctime": 1436810540.3005824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8325822, + "inode": 526750, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3484", + "xusr": false, + "atime": 1436810540.8325822, + "isdir": false, + "ctime": 1436810540.8325822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6965823, + "inode": 527900, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4634", + "xusr": false, + "atime": 1436810541.6965823, + "isdir": false, + "ctime": 1436810541.6965823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5055823, + "inode": 527637, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4371", + "xusr": false, + "atime": 1436810541.5055823, + "isdir": false, + "ctime": 1436810541.5055823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4995823, + "inode": 526300, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3034", + "xusr": false, + "atime": 1436810540.4995823, + "isdir": false, + "ctime": 1436810540.4995823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1845822, + "inode": 524763, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1497", + "xusr": false, + "atime": 1436810539.1845822, + "isdir": false, + "ctime": 1436810539.1845822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8825824, + "inode": 525567, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2301", + "xusr": false, + "atime": 1436810539.8825824, + "isdir": false, + "ctime": 1436810539.8825824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1145823, + "inode": 523335, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/69", + "xusr": false, + "atime": 1436810538.1145823, + "isdir": false, + "ctime": 1436810538.1145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4845824, + "inode": 525106, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1840", + "xusr": false, + "atime": 1436810539.4845824, + "isdir": false, + "ctime": 1436810539.4845824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1035824, + "inode": 527128, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3862", + "xusr": false, + "atime": 1436810541.1035824, + "isdir": false, + "ctime": 1436810541.1035824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7115824, + "inode": 526582, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3316", + "xusr": false, + "atime": 1436810540.7115824, + "isdir": false, + "ctime": 1436810540.7115824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3275824, + "inode": 523623, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/357", + "xusr": false, + "atime": 1436810538.3275824, + "isdir": false, + "ctime": 1436810538.3275824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7935822, + "inode": 525445, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2179", + "xusr": false, + "atime": 1436810539.7935822, + "isdir": false, + "ctime": 1436810539.7935822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8465824, + "inode": 528105, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4839", + "xusr": false, + "atime": 1436810541.8465824, + "isdir": false, + "ctime": 1436810541.8465824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7265823, + "inode": 525362, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2096", + "xusr": false, + "atime": 1436810539.7265823, + "isdir": false, + "ctime": 1436810539.7265823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8935823, + "inode": 526836, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3570", + "xusr": false, + "atime": 1436810540.8935823, + "isdir": false, + "ctime": 1436810540.8935823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5445824, + "inode": 525165, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1899", + "xusr": false, + "atime": 1436810539.5445824, + "isdir": false, + "ctime": 1436810539.5445824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6715822, + "inode": 524062, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/796", + "xusr": false, + "atime": 1436810538.6715822, + "isdir": false, + "ctime": 1436810538.6715822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0905824, + "inode": 524629, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1363", + "xusr": false, + "atime": 1436810539.0905824, + "isdir": false, + "ctime": 1436810539.0905824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8075824, + "inode": 525461, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2195", + "xusr": false, + "atime": 1436810539.8075824, + "isdir": false, + "ctime": 1436810539.8075824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7755823, + "inode": 526670, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3404", + "xusr": false, + "atime": 1436810540.7755823, + "isdir": false, + "ctime": 1436810540.7755823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3395822, + "inode": 526107, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2841", + "xusr": false, + "atime": 1436810540.3395822, + "isdir": false, + "ctime": 1436810540.3395822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9305823, + "inode": 524403, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1137", + "xusr": false, + "atime": 1436810538.9305823, + "isdir": false, + "ctime": 1436810538.9305823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7435822, + "inode": 525381, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2115", + "xusr": false, + "atime": 1436810539.7435822, + "isdir": false, + "ctime": 1436810539.7435822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9835823, + "inode": 524478, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1212", + "xusr": false, + "atime": 1436810538.9835823, + "isdir": false, + "ctime": 1436810538.9835823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9505823, + "inode": 526917, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3651", + "xusr": false, + "atime": 1436810540.9505823, + "isdir": false, + "ctime": 1436810540.9505823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1455822, + "inode": 524707, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1441", + "xusr": false, + "atime": 1436810539.1455822, + "isdir": false, + "ctime": 1436810539.1455822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3045824, + "inode": 526059, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2793", + "xusr": false, + "atime": 1436810540.3045824, + "isdir": false, + "ctime": 1436810540.3045824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4755824, + "inode": 523793, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/527", + "xusr": false, + "atime": 1436810538.4755824, + "isdir": false, + "ctime": 1436810538.4755824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0765824, + "inode": 523285, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/19", + "xusr": false, + "atime": 1436810538.0765824, + "isdir": false, + "ctime": 1436810538.0765824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2105823, + "inode": 525952, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2686", + "xusr": false, + "atime": 1436810540.2105823, + "isdir": false, + "ctime": 1436810540.2105823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2985823, + "inode": 527397, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4131", + "xusr": false, + "atime": 1436810541.2985823, + "isdir": false, + "ctime": 1436810541.2985823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1695824, + "inode": 523413, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/147", + "xusr": false, + "atime": 1436810538.1695824, + "isdir": false, + "ctime": 1436810538.1695824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5545824, + "inode": 527703, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4437", + "xusr": false, + "atime": 1436810541.5545824, + "isdir": false, + "ctime": 1436810541.5545824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9525824, + "inode": 525663, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2397", + "xusr": false, + "atime": 1436810539.9525824, + "isdir": false, + "ctime": 1436810539.9525824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2505822, + "inode": 523528, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/262", + "xusr": false, + "atime": 1436810538.2505822, + "isdir": false, + "ctime": 1436810538.2505822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3685822, + "inode": 526147, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2881", + "xusr": false, + "atime": 1436810540.3685822, + "isdir": false, + "ctime": 1436810540.3685822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2925823, + "inode": 524919, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1653", + "xusr": false, + "atime": 1436810539.2925823, + "isdir": false, + "ctime": 1436810539.2925823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5955822, + "inode": 526419, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3153", + "xusr": false, + "atime": 1436810540.5955822, + "isdir": false, + "ctime": 1436810540.5955822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3855822, + "inode": 525011, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1745", + "xusr": false, + "atime": 1436810539.3855822, + "isdir": false, + "ctime": 1436810539.3855822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9325824, + "inode": 526892, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3626", + "xusr": false, + "atime": 1436810540.9325824, + "isdir": false, + "ctime": 1436810540.9325824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4415822, + "inode": 526247, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2981", + "xusr": false, + "atime": 1436810540.4415822, + "isdir": false, + "ctime": 1436810540.4415822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4975822, + "inode": 523824, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/558", + "xusr": false, + "atime": 1436810538.4975822, + "isdir": false, + "ctime": 1436810538.4975822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2695823, + "inode": 527355, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4089", + "xusr": false, + "atime": 1436810541.2695823, + "isdir": false, + "ctime": 1436810541.2695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0855823, + "inode": 527103, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3837", + "xusr": false, + "atime": 1436810541.0855823, + "isdir": false, + "ctime": 1436810541.0855823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0875823, + "inode": 523301, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/35", + "xusr": false, + "atime": 1436810538.0875823, + "isdir": false, + "ctime": 1436810538.0875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8905823, + "inode": 526833, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3567", + "xusr": false, + "atime": 1436810540.8905823, + "isdir": false, + "ctime": 1436810540.8905823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1575823, + "inode": 527203, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3937", + "xusr": false, + "atime": 1436810541.1575823, + "isdir": false, + "ctime": 1436810541.1575823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2845824, + "inode": 524907, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1641", + "xusr": false, + "atime": 1436810539.2845824, + "isdir": false, + "ctime": 1436810539.2845824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3985822, + "inode": 525024, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1758", + "xusr": false, + "atime": 1436810539.3985822, + "isdir": false, + "ctime": 1436810539.3985822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1215823, + "inode": 524673, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1407", + "xusr": false, + "atime": 1436810539.1215823, + "isdir": false, + "ctime": 1436810539.1215823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6165824, + "inode": 523986, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/720", + "xusr": false, + "atime": 1436810538.6165824, + "isdir": false, + "ctime": 1436810538.6165824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9195824, + "inode": 526874, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3608", + "xusr": false, + "atime": 1436810540.9195824, + "isdir": false, + "ctime": 1436810540.9195824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0335822, + "inode": 527030, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3764", + "xusr": false, + "atime": 1436810541.0335822, + "isdir": false, + "ctime": 1436810541.0335822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3405824, + "inode": 526109, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2843", + "xusr": false, + "atime": 1436810540.3405824, + "isdir": false, + "ctime": 1436810540.3405824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2985823, + "inode": 527396, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4130", + "xusr": false, + "atime": 1436810541.2985823, + "isdir": false, + "ctime": 1436810541.2985823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7685823, + "inode": 525411, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2145", + "xusr": false, + "atime": 1436810539.7685823, + "isdir": false, + "ctime": 1436810539.7685823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6375823, + "inode": 524015, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/749", + "xusr": false, + "atime": 1436810538.6375823, + "isdir": false, + "ctime": 1436810538.6375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1145823, + "inode": 524663, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1397", + "xusr": false, + "atime": 1436810539.1145823, + "isdir": false, + "ctime": 1436810539.1145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6115823, + "inode": 523980, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/714", + "xusr": false, + "atime": 1436810538.6115823, + "isdir": false, + "ctime": 1436810538.6115823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4815824, + "inode": 525103, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1837", + "xusr": false, + "atime": 1436810539.4815824, + "isdir": false, + "ctime": 1436810539.4815824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9005823, + "inode": 526846, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3580", + "xusr": false, + "atime": 1436810540.9005823, + "isdir": false, + "ctime": 1436810540.9005823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8145823, + "inode": 526726, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3460", + "xusr": false, + "atime": 1436810540.8145823, + "isdir": false, + "ctime": 1436810540.8145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9045823, + "inode": 525599, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2333", + "xusr": false, + "atime": 1436810539.9045823, + "isdir": false, + "ctime": 1436810539.9045823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9785824, + "inode": 524471, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1205", + "xusr": false, + "atime": 1436810538.9785824, + "isdir": false, + "ctime": 1436810538.9785824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3665824, + "inode": 526145, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2879", + "xusr": false, + "atime": 1436810540.3665824, + "isdir": false, + "ctime": 1436810540.3665824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0255823, + "inode": 525762, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2496", + "xusr": false, + "atime": 1436810540.0255823, + "isdir": false, + "ctime": 1436810540.0255823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3905823, + "inode": 526178, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2912", + "xusr": false, + "atime": 1436810540.3905823, + "isdir": false, + "ctime": 1436810540.3905823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4915824, + "inode": 523815, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/549", + "xusr": false, + "atime": 1436810538.4915824, + "isdir": false, + "ctime": 1436810538.4915824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7995822, + "inode": 528042, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4776", + "xusr": false, + "atime": 1436810541.7995822, + "isdir": false, + "ctime": 1436810541.7995822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1655824, + "inode": 525904, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2638", + "xusr": false, + "atime": 1436810540.1655824, + "isdir": false, + "ctime": 1436810540.1655824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2805824, + "inode": 524901, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1635", + "xusr": false, + "atime": 1436810539.2805824, + "isdir": false, + "ctime": 1436810539.2805824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8685822, + "inode": 526801, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3535", + "xusr": false, + "atime": 1436810540.8685822, + "isdir": false, + "ctime": 1436810540.8685822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2325823, + "inode": 523503, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/237", + "xusr": false, + "atime": 1436810538.2325823, + "isdir": false, + "ctime": 1436810538.2325823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0835824, + "inode": 524619, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1353", + "xusr": false, + "atime": 1436810539.0835824, + "isdir": false, + "ctime": 1436810539.0835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4765823, + "inode": 527597, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4331", + "xusr": false, + "atime": 1436810541.4765823, + "isdir": false, + "ctime": 1436810541.4765823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6555824, + "inode": 526502, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3236", + "xusr": false, + "atime": 1436810540.6555824, + "isdir": false, + "ctime": 1436810540.6555824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7105823, + "inode": 526580, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3314", + "xusr": false, + "atime": 1436810540.7105823, + "isdir": false, + "ctime": 1436810540.7105823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7745824, + "inode": 528006, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4740", + "xusr": false, + "atime": 1436810541.7745824, + "isdir": false, + "ctime": 1436810541.7745824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1565824, + "inode": 525896, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2630", + "xusr": false, + "atime": 1436810540.1565824, + "isdir": false, + "ctime": 1436810540.1565824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9165823, + "inode": 528203, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4937", + "xusr": false, + "atime": 1436810541.9165823, + "isdir": false, + "ctime": 1436810541.9165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3935823, + "inode": 525017, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1751", + "xusr": false, + "atime": 1436810539.3935823, + "isdir": false, + "ctime": 1436810539.3935823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5805824, + "inode": 525206, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1940", + "xusr": false, + "atime": 1436810539.5805824, + "isdir": false, + "ctime": 1436810539.5805824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7915823, + "inode": 526693, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3427", + "xusr": false, + "atime": 1436810540.7915823, + "isdir": false, + "ctime": 1436810540.7915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1735823, + "inode": 525912, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2646", + "xusr": false, + "atime": 1436810540.1735823, + "isdir": false, + "ctime": 1436810540.1735823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0065823, + "inode": 526993, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3727", + "xusr": false, + "atime": 1436810541.0065823, + "isdir": false, + "ctime": 1436810541.0065823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9395823, + "inode": 526902, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3636", + "xusr": false, + "atime": 1436810540.9395823, + "isdir": false, + "ctime": 1436810540.9395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0085824, + "inode": 524512, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1246", + "xusr": false, + "atime": 1436810539.0085824, + "isdir": false, + "ctime": 1436810539.0085824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3825824, + "inode": 523677, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/411", + "xusr": false, + "atime": 1436810538.3825824, + "isdir": false, + "ctime": 1436810538.3825824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6175823, + "inode": 525247, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1981", + "xusr": false, + "atime": 1436810539.6175823, + "isdir": false, + "ctime": 1436810539.6175823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7835822, + "inode": 525433, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2167", + "xusr": false, + "atime": 1436810539.7835822, + "isdir": false, + "ctime": 1436810539.7835822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7805824, + "inode": 526678, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3412", + "xusr": false, + "atime": 1436810540.7805824, + "isdir": false, + "ctime": 1436810540.7805824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9345822, + "inode": 525639, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2373", + "xusr": false, + "atime": 1436810539.9345822, + "isdir": false, + "ctime": 1436810539.9345822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2395823, + "inode": 524842, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1576", + "xusr": false, + "atime": 1436810539.2395823, + "isdir": false, + "ctime": 1436810539.2395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0295823, + "inode": 527024, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3758", + "xusr": false, + "atime": 1436810541.0295823, + "isdir": false, + "ctime": 1436810541.0295823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8435824, + "inode": 526766, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3500", + "xusr": false, + "atime": 1436810540.8435824, + "isdir": false, + "ctime": 1436810540.8435824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8605824, + "inode": 525536, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2270", + "xusr": false, + "atime": 1436810539.8605824, + "isdir": false, + "ctime": 1436810539.8605824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0225823, + "inode": 525758, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2492", + "xusr": false, + "atime": 1436810540.0225823, + "isdir": false, + "ctime": 1436810540.0225823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6165824, + "inode": 523987, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/721", + "xusr": false, + "atime": 1436810538.6165824, + "isdir": false, + "ctime": 1436810538.6165824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2405822, + "inode": 523514, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/248", + "xusr": false, + "atime": 1436810538.2405822, + "isdir": false, + "ctime": 1436810538.2405822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0195823, + "inode": 524527, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1261", + "xusr": false, + "atime": 1436810539.0195823, + "isdir": false, + "ctime": 1436810539.0195823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8245823, + "inode": 525485, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2219", + "xusr": false, + "atime": 1436810539.8245823, + "isdir": false, + "ctime": 1436810539.8245823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5485823, + "inode": 526353, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3087", + "xusr": false, + "atime": 1436810540.5485823, + "isdir": false, + "ctime": 1436810540.5485823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0335822, + "inode": 525773, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2507", + "xusr": false, + "atime": 1436810540.0335822, + "isdir": false, + "ctime": 1436810540.0335822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0165823, + "inode": 524523, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1257", + "xusr": false, + "atime": 1436810539.0165823, + "isdir": false, + "ctime": 1436810539.0165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6635823, + "inode": 524050, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/784", + "xusr": false, + "atime": 1436810538.6635823, + "isdir": false, + "ctime": 1436810538.6635823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9465823, + "inode": 524425, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1159", + "xusr": false, + "atime": 1436810538.9465823, + "isdir": false, + "ctime": 1436810538.9465823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4495823, + "inode": 523756, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/490", + "xusr": false, + "atime": 1436810538.4495823, + "isdir": false, + "ctime": 1436810538.4495823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2665823, + "inode": 527351, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4085", + "xusr": false, + "atime": 1436810541.2665823, + "isdir": false, + "ctime": 1436810541.2665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7085824, + "inode": 524112, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/846", + "xusr": false, + "atime": 1436810538.7085824, + "isdir": false, + "ctime": 1436810538.7085824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1705823, + "inode": 524743, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1477", + "xusr": false, + "atime": 1436810539.1705823, + "isdir": false, + "ctime": 1436810539.1705823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1025822, + "inode": 527127, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3861", + "xusr": false, + "atime": 1436810541.1025822, + "isdir": false, + "ctime": 1436810541.1025822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8275824, + "inode": 526744, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3478", + "xusr": false, + "atime": 1436810540.8275824, + "isdir": false, + "ctime": 1436810540.8275824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0065823, + "inode": 524509, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1243", + "xusr": false, + "atime": 1436810539.0065823, + "isdir": false, + "ctime": 1436810539.0065823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8305824, + "inode": 528083, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4817", + "xusr": false, + "atime": 1436810541.8305824, + "isdir": false, + "ctime": 1436810541.8305824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3335824, + "inode": 524964, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1698", + "xusr": false, + "atime": 1436810539.3335824, + "isdir": false, + "ctime": 1436810539.3335824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2735822, + "inode": 524891, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1625", + "xusr": false, + "atime": 1436810539.2735822, + "isdir": false, + "ctime": 1436810539.2735822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0925822, + "inode": 524631, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1365", + "xusr": false, + "atime": 1436810539.0925822, + "isdir": false, + "ctime": 1436810539.0925822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6905823, + "inode": 525323, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2057", + "xusr": false, + "atime": 1436810539.6905823, + "isdir": false, + "ctime": 1436810539.6905823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7635822, + "inode": 526653, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3387", + "xusr": false, + "atime": 1436810540.7635822, + "isdir": false, + "ctime": 1436810540.7635822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5185823, + "inode": 523852, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/586", + "xusr": false, + "atime": 1436810538.5185823, + "isdir": false, + "ctime": 1436810538.5185823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6865823, + "inode": 525320, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2054", + "xusr": false, + "atime": 1436810539.6865823, + "isdir": false, + "ctime": 1436810539.6865823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0505824, + "inode": 527054, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3788", + "xusr": false, + "atime": 1436810541.0505824, + "isdir": false, + "ctime": 1436810541.0505824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8015823, + "inode": 524228, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/962", + "xusr": false, + "atime": 1436810538.8015823, + "isdir": false, + "ctime": 1436810538.8015823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9835823, + "inode": 524477, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1211", + "xusr": false, + "atime": 1436810538.9835823, + "isdir": false, + "ctime": 1436810538.9835823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8605824, + "inode": 528124, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4858", + "xusr": false, + "atime": 1436810541.8605824, + "isdir": false, + "ctime": 1436810541.8605824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8355823, + "inode": 528091, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4825", + "xusr": false, + "atime": 1436810541.8355823, + "isdir": false, + "ctime": 1436810541.8355823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5925822, + "inode": 523953, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/687", + "xusr": false, + "atime": 1436810538.5925822, + "isdir": false, + "ctime": 1436810538.5925822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1835823, + "inode": 523433, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/167", + "xusr": false, + "atime": 1436810538.1835823, + "isdir": false, + "ctime": 1436810538.1835823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0955822, + "inode": 527117, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3851", + "xusr": false, + "atime": 1436810541.0955822, + "isdir": false, + "ctime": 1436810541.0955822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4795823, + "inode": 523799, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/533", + "xusr": false, + "atime": 1436810538.4795823, + "isdir": false, + "ctime": 1436810538.4795823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7295823, + "inode": 525365, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2099", + "xusr": false, + "atime": 1436810539.7295823, + "isdir": false, + "ctime": 1436810539.7295823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8265822, + "inode": 526742, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3476", + "xusr": false, + "atime": 1436810540.8265822, + "isdir": false, + "ctime": 1436810540.8265822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2845824, + "inode": 527377, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4111", + "xusr": false, + "atime": 1436810541.2845824, + "isdir": false, + "ctime": 1436810541.2845824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2325823, + "inode": 524832, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1566", + "xusr": false, + "atime": 1436810539.2325823, + "isdir": false, + "ctime": 1436810539.2325823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1365824, + "inode": 523366, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/100", + "xusr": false, + "atime": 1436810538.1365824, + "isdir": false, + "ctime": 1436810538.1365824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1805823, + "inode": 525919, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2653", + "xusr": false, + "atime": 1436810540.1805823, + "isdir": false, + "ctime": 1436810540.1805823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0905824, + "inode": 525834, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2568", + "xusr": false, + "atime": 1436810540.0905824, + "isdir": false, + "ctime": 1436810540.0905824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7765822, + "inode": 525422, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2156", + "xusr": false, + "atime": 1436810539.7765822, + "isdir": false, + "ctime": 1436810539.7765822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6225822, + "inode": 523994, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/728", + "xusr": false, + "atime": 1436810538.6225822, + "isdir": false, + "ctime": 1436810538.6225822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6585822, + "inode": 524044, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/778", + "xusr": false, + "atime": 1436810538.6585822, + "isdir": false, + "ctime": 1436810538.6585822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4705822, + "inode": 525089, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1823", + "xusr": false, + "atime": 1436810539.4705822, + "isdir": false, + "ctime": 1436810539.4705822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4205823, + "inode": 526221, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2955", + "xusr": false, + "atime": 1436810540.4205823, + "isdir": false, + "ctime": 1436810540.4205823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2285824, + "inode": 525974, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2708", + "xusr": false, + "atime": 1436810540.2285824, + "isdir": false, + "ctime": 1436810540.2285824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5955822, + "inode": 523958, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/692", + "xusr": false, + "atime": 1436810538.5955822, + "isdir": false, + "ctime": 1436810538.5955822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3625822, + "inode": 527457, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4191", + "xusr": false, + "atime": 1436810541.3625822, + "isdir": false, + "ctime": 1436810541.3625822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8995824, + "inode": 528179, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4913", + "xusr": false, + "atime": 1436810541.8995824, + "isdir": false, + "ctime": 1436810541.8995824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5085824, + "inode": 523840, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/574", + "xusr": false, + "atime": 1436810538.5085824, + "isdir": false, + "ctime": 1436810538.5085824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1845822, + "inode": 523435, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/169", + "xusr": false, + "atime": 1436810538.1845822, + "isdir": false, + "ctime": 1436810538.1845822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0725822, + "inode": 523280, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/14", + "xusr": false, + "atime": 1436810538.0725822, + "isdir": false, + "ctime": 1436810538.0725822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8615823, + "inode": 528125, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4859", + "xusr": false, + "atime": 1436810541.8615823, + "isdir": false, + "ctime": 1436810541.8615823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4695823, + "inode": 526275, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3009", + "xusr": false, + "atime": 1436810540.4695823, + "isdir": false, + "ctime": 1436810540.4695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5515823, + "inode": 523897, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/631", + "xusr": false, + "atime": 1436810538.5515823, + "isdir": false, + "ctime": 1436810538.5515823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9725823, + "inode": 526948, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3682", + "xusr": false, + "atime": 1436810540.9725823, + "isdir": false, + "ctime": 1436810540.9725823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2825823, + "inode": 524904, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1638", + "xusr": false, + "atime": 1436810539.2825823, + "isdir": false, + "ctime": 1436810539.2825823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7095823, + "inode": 524113, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/847", + "xusr": false, + "atime": 1436810538.7095823, + "isdir": false, + "ctime": 1436810538.7095823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2885823, + "inode": 526038, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2772", + "xusr": false, + "atime": 1436810540.2885823, + "isdir": false, + "ctime": 1436810540.2885823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0255823, + "inode": 524535, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1269", + "xusr": false, + "atime": 1436810539.0255823, + "isdir": false, + "ctime": 1436810539.0255823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3785822, + "inode": 526162, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2896", + "xusr": false, + "atime": 1436810540.3785822, + "isdir": false, + "ctime": 1436810540.3785822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7315824, + "inode": 527947, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4681", + "xusr": false, + "atime": 1436810541.7315824, + "isdir": false, + "ctime": 1436810541.7315824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2115824, + "inode": 527275, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4009", + "xusr": false, + "atime": 1436810541.2115824, + "isdir": false, + "ctime": 1436810541.2115824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8625822, + "inode": 525539, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2273", + "xusr": false, + "atime": 1436810539.8625822, + "isdir": false, + "ctime": 1436810539.8625822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7025824, + "inode": 524104, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/838", + "xusr": false, + "atime": 1436810538.7025824, + "isdir": false, + "ctime": 1436810538.7025824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4105823, + "inode": 525036, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1770", + "xusr": false, + "atime": 1436810539.4105823, + "isdir": false, + "ctime": 1436810539.4105823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0305824, + "inode": 525769, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2503", + "xusr": false, + "atime": 1436810540.0305824, + "isdir": false, + "ctime": 1436810540.0305824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1985824, + "inode": 523456, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/190", + "xusr": false, + "atime": 1436810538.1985824, + "isdir": false, + "ctime": 1436810538.1985824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0895822, + "inode": 523303, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/37", + "xusr": false, + "atime": 1436810538.0895822, + "isdir": false, + "ctime": 1436810538.0895822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3285823, + "inode": 524957, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1691", + "xusr": false, + "atime": 1436810539.3285823, + "isdir": false, + "ctime": 1436810539.3285823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2635822, + "inode": 523547, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/281", + "xusr": false, + "atime": 1436810538.2635822, + "isdir": false, + "ctime": 1436810538.2635822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5095823, + "inode": 527642, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4376", + "xusr": false, + "atime": 1436810541.5095823, + "isdir": false, + "ctime": 1436810541.5095823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4345822, + "inode": 526239, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2973", + "xusr": false, + "atime": 1436810540.4345822, + "isdir": false, + "ctime": 1436810540.4345822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4715824, + "inode": 523788, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/522", + "xusr": false, + "atime": 1436810538.4715824, + "isdir": false, + "ctime": 1436810538.4715824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5185823, + "inode": 523853, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/587", + "xusr": false, + "atime": 1436810538.5185823, + "isdir": false, + "ctime": 1436810538.5185823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7575824, + "inode": 527983, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4717", + "xusr": false, + "atime": 1436810541.7575824, + "isdir": false, + "ctime": 1436810541.7575824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0465822, + "inode": 527048, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3782", + "xusr": false, + "atime": 1436810541.0465822, + "isdir": false, + "ctime": 1436810541.0465822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4695823, + "inode": 525087, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1821", + "xusr": false, + "atime": 1436810539.4695823, + "isdir": false, + "ctime": 1436810539.4695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9115822, + "inode": 525607, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2341", + "xusr": false, + "atime": 1436810539.9115822, + "isdir": false, + "ctime": 1436810539.9115822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9815824, + "inode": 526960, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3694", + "xusr": false, + "atime": 1436810540.9815824, + "isdir": false, + "ctime": 1436810540.9815824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2285824, + "inode": 523497, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/231", + "xusr": false, + "atime": 1436810538.2285824, + "isdir": false, + "ctime": 1436810538.2285824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6115823, + "inode": 525238, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1972", + "xusr": false, + "atime": 1436810539.6115823, + "isdir": false, + "ctime": 1436810539.6115823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4195824, + "inode": 527518, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4252", + "xusr": false, + "atime": 1436810541.4195824, + "isdir": false, + "ctime": 1436810541.4195824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6185822, + "inode": 527793, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4527", + "xusr": false, + "atime": 1436810541.6185822, + "isdir": false, + "ctime": 1436810541.6185822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8735824, + "inode": 525554, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2288", + "xusr": false, + "atime": 1436810539.8735824, + "isdir": false, + "ctime": 1436810539.8735824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6485822, + "inode": 527833, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4567", + "xusr": false, + "atime": 1436810541.6485822, + "isdir": false, + "ctime": 1436810541.6485822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4705822, + "inode": 523786, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/520", + "xusr": false, + "atime": 1436810538.4705822, + "isdir": false, + "ctime": 1436810538.4705822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6255822, + "inode": 523998, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/732", + "xusr": false, + "atime": 1436810538.6255822, + "isdir": false, + "ctime": 1436810538.6255822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8745823, + "inode": 528143, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4877", + "xusr": false, + "atime": 1436810541.8745823, + "isdir": false, + "ctime": 1436810541.8745823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3255823, + "inode": 526087, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2821", + "xusr": false, + "atime": 1436810540.3255823, + "isdir": false, + "ctime": 1436810540.3255823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6285822, + "inode": 527806, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4540", + "xusr": false, + "atime": 1436810541.6285822, + "isdir": false, + "ctime": 1436810541.6285822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5005822, + "inode": 525121, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1855", + "xusr": false, + "atime": 1436810539.5005822, + "isdir": false, + "ctime": 1436810539.5005822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8665824, + "inode": 525545, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2279", + "xusr": false, + "atime": 1436810539.8665824, + "isdir": false, + "ctime": 1436810539.8665824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2915823, + "inode": 524917, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1651", + "xusr": false, + "atime": 1436810539.2915823, + "isdir": false, + "ctime": 1436810539.2915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5245824, + "inode": 527663, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4397", + "xusr": false, + "atime": 1436810541.5245824, + "isdir": false, + "ctime": 1436810541.5245824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4825823, + "inode": 523803, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/537", + "xusr": false, + "atime": 1436810538.4825823, + "isdir": false, + "ctime": 1436810538.4825823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0465822, + "inode": 525792, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2526", + "xusr": false, + "atime": 1436810540.0465822, + "isdir": false, + "ctime": 1436810540.0465822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9515824, + "inode": 524432, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1166", + "xusr": false, + "atime": 1436810538.9515824, + "isdir": false, + "ctime": 1436810538.9515824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2195823, + "inode": 525962, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2696", + "xusr": false, + "atime": 1436810540.2195823, + "isdir": false, + "ctime": 1436810540.2195823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2205822, + "inode": 527287, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4021", + "xusr": false, + "atime": 1436810541.2205822, + "isdir": false, + "ctime": 1436810541.2205822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7255824, + "inode": 526602, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3336", + "xusr": false, + "atime": 1436810540.7255824, + "isdir": false, + "ctime": 1436810540.7255824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7725823, + "inode": 528004, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4738", + "xusr": false, + "atime": 1436810541.7725823, + "isdir": false, + "ctime": 1436810541.7725823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2615824, + "inode": 527344, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4078", + "xusr": false, + "atime": 1436810541.2615824, + "isdir": false, + "ctime": 1436810541.2615824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0525823, + "inode": 524574, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1308", + "xusr": false, + "atime": 1436810539.0525823, + "isdir": false, + "ctime": 1436810539.0525823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6245823, + "inode": 525255, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1989", + "xusr": false, + "atime": 1436810539.6245823, + "isdir": false, + "ctime": 1436810539.6245823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0105822, + "inode": 524514, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1248", + "xusr": false, + "atime": 1436810539.0105822, + "isdir": false, + "ctime": 1436810539.0105822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0685823, + "inode": 525812, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2546", + "xusr": false, + "atime": 1436810540.0685823, + "isdir": false, + "ctime": 1436810540.0685823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9005823, + "inode": 525592, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2326", + "xusr": false, + "atime": 1436810539.9005823, + "isdir": false, + "ctime": 1436810539.9005823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9185822, + "inode": 528205, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4939", + "xusr": false, + "atime": 1436810541.9185822, + "isdir": false, + "ctime": 1436810541.9185822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5115824, + "inode": 527645, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4379", + "xusr": false, + "atime": 1436810541.5115824, + "isdir": false, + "ctime": 1436810541.5115824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6055822, + "inode": 526433, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3167", + "xusr": false, + "atime": 1436810540.6055822, + "isdir": false, + "ctime": 1436810540.6055822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8625822, + "inode": 524311, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1045", + "xusr": false, + "atime": 1436810538.8625822, + "isdir": false, + "ctime": 1436810538.8625822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7905824, + "inode": 524213, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/947", + "xusr": false, + "atime": 1436810538.7905824, + "isdir": false, + "ctime": 1436810538.7905824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3775823, + "inode": 525001, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1735", + "xusr": false, + "atime": 1436810539.3775823, + "isdir": false, + "ctime": 1436810539.3775823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0125823, + "inode": 525745, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2479", + "xusr": false, + "atime": 1436810540.0125823, + "isdir": false, + "ctime": 1436810540.0125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7115824, + "inode": 524115, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/849", + "xusr": false, + "atime": 1436810538.7115824, + "isdir": false, + "ctime": 1436810538.7115824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8175824, + "inode": 528067, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4801", + "xusr": false, + "atime": 1436810541.8175824, + "isdir": false, + "ctime": 1436810541.8175824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9375823, + "inode": 528231, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4965", + "xusr": false, + "atime": 1436810541.9375823, + "isdir": false, + "ctime": 1436810541.9375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2835822, + "inode": 524905, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1639", + "xusr": false, + "atime": 1436810539.2835822, + "isdir": false, + "ctime": 1436810539.2835822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9245822, + "inode": 524396, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1130", + "xusr": false, + "atime": 1436810538.9245822, + "isdir": false, + "ctime": 1436810538.9245822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7895823, + "inode": 528028, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4762", + "xusr": false, + "atime": 1436810541.7895823, + "isdir": false, + "ctime": 1436810541.7895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3785822, + "inode": 526161, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2895", + "xusr": false, + "atime": 1436810540.3785822, + "isdir": false, + "ctime": 1436810540.3785822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3815823, + "inode": 525006, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1740", + "xusr": false, + "atime": 1436810539.3815823, + "isdir": false, + "ctime": 1436810539.3815823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6105824, + "inode": 527783, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4517", + "xusr": false, + "atime": 1436810541.6105824, + "isdir": false, + "ctime": 1436810541.6105824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3105824, + "inode": 526067, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2801", + "xusr": false, + "atime": 1436810540.3105824, + "isdir": false, + "ctime": 1436810540.3105824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1205823, + "inode": 524671, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1405", + "xusr": false, + "atime": 1436810539.1205823, + "isdir": false, + "ctime": 1436810539.1205823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5245824, + "inode": 523860, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/594", + "xusr": false, + "atime": 1436810538.5245824, + "isdir": false, + "ctime": 1436810538.5245824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9845824, + "inode": 526965, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3699", + "xusr": false, + "atime": 1436810540.9845824, + "isdir": false, + "ctime": 1436810540.9845824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8095822, + "inode": 524239, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/973", + "xusr": false, + "atime": 1436810538.8095822, + "isdir": false, + "ctime": 1436810538.8095822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8845823, + "inode": 524341, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1075", + "xusr": false, + "atime": 1436810538.8845823, + "isdir": false, + "ctime": 1436810538.8845823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6415823, + "inode": 525277, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2011", + "xusr": false, + "atime": 1436810539.6415823, + "isdir": false, + "ctime": 1436810539.6415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6345823, + "inode": 526473, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3207", + "xusr": false, + "atime": 1436810540.6345823, + "isdir": false, + "ctime": 1436810540.6345823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6135824, + "inode": 526444, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3178", + "xusr": false, + "atime": 1436810540.6135824, + "isdir": false, + "ctime": 1436810540.6135824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3525822, + "inode": 523652, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/386", + "xusr": false, + "atime": 1436810538.3525822, + "isdir": false, + "ctime": 1436810538.3525822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4735823, + "inode": 525092, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1826", + "xusr": false, + "atime": 1436810539.4735823, + "isdir": false, + "ctime": 1436810539.4735823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9945824, + "inode": 524492, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1226", + "xusr": false, + "atime": 1436810538.9945824, + "isdir": false, + "ctime": 1436810538.9945824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4235823, + "inode": 526225, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2959", + "xusr": false, + "atime": 1436810540.4235823, + "isdir": false, + "ctime": 1436810540.4235823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3455822, + "inode": 526116, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2850", + "xusr": false, + "atime": 1436810540.3455822, + "isdir": false, + "ctime": 1436810540.3455822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1615822, + "inode": 527207, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3941", + "xusr": false, + "atime": 1436810541.1615822, + "isdir": false, + "ctime": 1436810541.1615822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4115822, + "inode": 525038, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1772", + "xusr": false, + "atime": 1436810539.4115822, + "isdir": false, + "ctime": 1436810539.4115822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1115823, + "inode": 525853, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2587", + "xusr": false, + "atime": 1436810540.1115823, + "isdir": false, + "ctime": 1436810540.1115823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8235824, + "inode": 525484, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2218", + "xusr": false, + "atime": 1436810539.8235824, + "isdir": false, + "ctime": 1436810539.8235824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4505823, + "inode": 527561, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4295", + "xusr": false, + "atime": 1436810541.4505823, + "isdir": false, + "ctime": 1436810541.4505823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6285822, + "inode": 524003, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/737", + "xusr": false, + "atime": 1436810538.6285822, + "isdir": false, + "ctime": 1436810538.6285822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1345823, + "inode": 527171, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3905", + "xusr": false, + "atime": 1436810541.1345823, + "isdir": false, + "ctime": 1436810541.1345823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3455822, + "inode": 523644, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/378", + "xusr": false, + "atime": 1436810538.3455822, + "isdir": false, + "ctime": 1436810538.3455822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7935822, + "inode": 528033, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4767", + "xusr": false, + "atime": 1436810541.7935822, + "isdir": false, + "ctime": 1436810541.7935822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2655823, + "inode": 527349, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4083", + "xusr": false, + "atime": 1436810541.2655823, + "isdir": false, + "ctime": 1436810541.2655823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1805823, + "inode": 524758, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1492", + "xusr": false, + "atime": 1436810539.1805823, + "isdir": false, + "ctime": 1436810539.1805823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0035822, + "inode": 524504, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1238", + "xusr": false, + "atime": 1436810539.0035822, + "isdir": false, + "ctime": 1436810539.0035822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8235824, + "inode": 528073, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4807", + "xusr": false, + "atime": 1436810541.8235824, + "isdir": false, + "ctime": 1436810541.8235824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7985823, + "inode": 525450, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2184", + "xusr": false, + "atime": 1436810539.7985823, + "isdir": false, + "ctime": 1436810539.7985823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3435824, + "inode": 524973, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1707", + "xusr": false, + "atime": 1436810539.3435824, + "isdir": false, + "ctime": 1436810539.3435824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7065823, + "inode": 527914, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4648", + "xusr": false, + "atime": 1436810541.7065823, + "isdir": false, + "ctime": 1436810541.7065823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8495822, + "inode": 526774, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3508", + "xusr": false, + "atime": 1436810540.8495822, + "isdir": false, + "ctime": 1436810540.8495822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9485824, + "inode": 526914, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3648", + "xusr": false, + "atime": 1436810540.9485824, + "isdir": false, + "ctime": 1436810540.9485824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4005823, + "inode": 527494, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4228", + "xusr": false, + "atime": 1436810541.4005823, + "isdir": false, + "ctime": 1436810541.4005823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0265822, + "inode": 524536, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1270", + "xusr": false, + "atime": 1436810539.0265822, + "isdir": false, + "ctime": 1436810539.0265822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4145823, + "inode": 523715, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/449", + "xusr": false, + "atime": 1436810538.4145823, + "isdir": false, + "ctime": 1436810538.4145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8565824, + "inode": 528118, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4852", + "xusr": false, + "atime": 1436810541.8565824, + "isdir": false, + "ctime": 1436810541.8565824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7565823, + "inode": 525395, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2129", + "xusr": false, + "atime": 1436810539.7565823, + "isdir": false, + "ctime": 1436810539.7565823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6955824, + "inode": 526559, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3293", + "xusr": false, + "atime": 1436810540.6955824, + "isdir": false, + "ctime": 1436810540.6955824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4695823, + "inode": 527586, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4320", + "xusr": false, + "atime": 1436810541.4695823, + "isdir": false, + "ctime": 1436810541.4695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2545824, + "inode": 523534, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/268", + "xusr": false, + "atime": 1436810538.2545824, + "isdir": false, + "ctime": 1436810538.2545824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1655824, + "inode": 523407, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/141", + "xusr": false, + "atime": 1436810538.1655824, + "isdir": false, + "ctime": 1436810538.1655824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7065823, + "inode": 526574, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3308", + "xusr": false, + "atime": 1436810540.7065823, + "isdir": false, + "ctime": 1436810540.7065823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8445823, + "inode": 526768, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3502", + "xusr": false, + "atime": 1436810540.8445823, + "isdir": false, + "ctime": 1436810540.8445823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7645824, + "inode": 526655, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3389", + "xusr": false, + "atime": 1436810540.7645824, + "isdir": false, + "ctime": 1436810540.7645824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1505823, + "inode": 523386, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/120", + "xusr": false, + "atime": 1436810538.1505823, + "isdir": false, + "ctime": 1436810538.1505823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9615824, + "inode": 525675, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2409", + "xusr": false, + "atime": 1436810539.9615824, + "isdir": false, + "ctime": 1436810539.9615824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3945823, + "inode": 527486, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4220", + "xusr": false, + "atime": 1436810541.3945823, + "isdir": false, + "ctime": 1436810541.3945823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8585823, + "inode": 524305, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1039", + "xusr": false, + "atime": 1436810538.8585823, + "isdir": false, + "ctime": 1436810538.8585823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1575823, + "inode": 525897, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2631", + "xusr": false, + "atime": 1436810540.1575823, + "isdir": false, + "ctime": 1436810540.1575823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6365824, + "inode": 524013, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/747", + "xusr": false, + "atime": 1436810538.6365824, + "isdir": false, + "ctime": 1436810538.6365824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7315824, + "inode": 525367, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2101", + "xusr": false, + "atime": 1436810539.7315824, + "isdir": false, + "ctime": 1436810539.7315824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1955824, + "inode": 527251, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3985", + "xusr": false, + "atime": 1436810541.1955824, + "isdir": false, + "ctime": 1436810541.1955824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3225822, + "inode": 526083, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2817", + "xusr": false, + "atime": 1436810540.3225822, + "isdir": false, + "ctime": 1436810540.3225822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0815823, + "inode": 523292, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/26", + "xusr": false, + "atime": 1436810538.0815823, + "isdir": false, + "ctime": 1436810538.0815823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2035823, + "inode": 524790, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1524", + "xusr": false, + "atime": 1436810539.2035823, + "isdir": false, + "ctime": 1436810539.2035823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4525824, + "inode": 525071, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1805", + "xusr": false, + "atime": 1436810539.4525824, + "isdir": false, + "ctime": 1436810539.4525824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3305824, + "inode": 527429, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4163", + "xusr": false, + "atime": 1436810541.3305824, + "isdir": false, + "ctime": 1436810541.3305824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2315824, + "inode": 525979, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2713", + "xusr": false, + "atime": 1436810540.2315824, + "isdir": false, + "ctime": 1436810540.2315824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7415824, + "inode": 524152, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/886", + "xusr": false, + "atime": 1436810538.7415824, + "isdir": false, + "ctime": 1436810538.7415824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2755823, + "inode": 523564, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/298", + "xusr": false, + "atime": 1436810538.2755823, + "isdir": false, + "ctime": 1436810538.2755823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5415823, + "inode": 526344, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3078", + "xusr": false, + "atime": 1436810540.5415823, + "isdir": false, + "ctime": 1436810540.5415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3375823, + "inode": 526104, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2838", + "xusr": false, + "atime": 1436810540.3375823, + "isdir": false, + "ctime": 1436810540.3375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6445823, + "inode": 526487, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3221", + "xusr": false, + "atime": 1436810540.6445823, + "isdir": false, + "ctime": 1436810540.6445823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2875824, + "inode": 524911, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1645", + "xusr": false, + "atime": 1436810539.2875824, + "isdir": false, + "ctime": 1436810539.2875824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8285823, + "inode": 528081, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4815", + "xusr": false, + "atime": 1436810541.8285823, + "isdir": false, + "ctime": 1436810541.8285823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1385822, + "inode": 527177, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3911", + "xusr": false, + "atime": 1436810541.1385822, + "isdir": false, + "ctime": 1436810541.1385822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0235822, + "inode": 524532, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1266", + "xusr": false, + "atime": 1436810539.0235822, + "isdir": false, + "ctime": 1436810539.0235822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2045822, + "inode": 523464, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/198", + "xusr": false, + "atime": 1436810538.2045822, + "isdir": false, + "ctime": 1436810538.2045822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6135824, + "inode": 527786, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4520", + "xusr": false, + "atime": 1436810541.6135824, + "isdir": false, + "ctime": 1436810541.6135824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7535822, + "inode": 525391, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2125", + "xusr": false, + "atime": 1436810539.7535822, + "isdir": false, + "ctime": 1436810539.7535822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8925824, + "inode": 525581, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2315", + "xusr": false, + "atime": 1436810539.8925824, + "isdir": false, + "ctime": 1436810539.8925824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9815824, + "inode": 526961, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3695", + "xusr": false, + "atime": 1436810540.9815824, + "isdir": false, + "ctime": 1436810540.9815824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3545823, + "inode": 527451, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4185", + "xusr": false, + "atime": 1436810541.3545823, + "isdir": false, + "ctime": 1436810541.3545823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1265824, + "inode": 523351, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/85", + "xusr": false, + "atime": 1436810538.1265824, + "isdir": false, + "ctime": 1436810538.1265824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1735823, + "inode": 525913, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2647", + "xusr": false, + "atime": 1436810540.1735823, + "isdir": false, + "ctime": 1436810540.1735823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9515824, + "inode": 524431, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1165", + "xusr": false, + "atime": 1436810538.9515824, + "isdir": false, + "ctime": 1436810538.9515824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0445824, + "inode": 527046, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3780", + "xusr": false, + "atime": 1436810541.0445824, + "isdir": false, + "ctime": 1436810541.0445824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9945824, + "inode": 526978, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3712", + "xusr": false, + "atime": 1436810540.9945824, + "isdir": false, + "ctime": 1436810540.9945824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2185824, + "inode": 525961, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2695", + "xusr": false, + "atime": 1436810540.2185824, + "isdir": false, + "ctime": 1436810540.2185824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7955823, + "inode": 528036, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4770", + "xusr": false, + "atime": 1436810541.7955823, + "isdir": false, + "ctime": 1436810541.7955823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2285824, + "inode": 524827, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1561", + "xusr": false, + "atime": 1436810539.2285824, + "isdir": false, + "ctime": 1436810539.2285824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8615823, + "inode": 524309, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1043", + "xusr": false, + "atime": 1436810538.8615823, + "isdir": false, + "ctime": 1436810538.8615823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3805823, + "inode": 527472, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4206", + "xusr": false, + "atime": 1436810541.3805823, + "isdir": false, + "ctime": 1436810541.3805823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9225824, + "inode": 525622, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2356", + "xusr": false, + "atime": 1436810539.9225824, + "isdir": false, + "ctime": 1436810539.9225824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1115823, + "inode": 527139, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3873", + "xusr": false, + "atime": 1436810541.1115823, + "isdir": false, + "ctime": 1436810541.1115823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5495822, + "inode": 523894, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/628", + "xusr": false, + "atime": 1436810538.5495822, + "isdir": false, + "ctime": 1436810538.5495822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5155823, + "inode": 523848, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/582", + "xusr": false, + "atime": 1436810538.5155823, + "isdir": false, + "ctime": 1436810538.5155823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9285824, + "inode": 525630, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2364", + "xusr": false, + "atime": 1436810539.9285824, + "isdir": false, + "ctime": 1436810539.9285824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7595823, + "inode": 524176, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/910", + "xusr": false, + "atime": 1436810538.7595823, + "isdir": false, + "ctime": 1436810538.7595823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7945824, + "inode": 526698, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3432", + "xusr": false, + "atime": 1436810540.7945824, + "isdir": false, + "ctime": 1436810540.7945824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2735822, + "inode": 523561, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/295", + "xusr": false, + "atime": 1436810538.2735822, + "isdir": false, + "ctime": 1436810538.2735822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8715823, + "inode": 525552, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2286", + "xusr": false, + "atime": 1436810539.8715823, + "isdir": false, + "ctime": 1436810539.8715823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2905824, + "inode": 523586, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/320", + "xusr": false, + "atime": 1436810538.2905824, + "isdir": false, + "ctime": 1436810538.2905824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7075822, + "inode": 526576, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3310", + "xusr": false, + "atime": 1436810540.7075822, + "isdir": false, + "ctime": 1436810540.7075822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4395823, + "inode": 523742, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/476", + "xusr": false, + "atime": 1436810538.4395823, + "isdir": false, + "ctime": 1436810538.4395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0675824, + "inode": 525810, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2544", + "xusr": false, + "atime": 1436810540.0675824, + "isdir": false, + "ctime": 1436810540.0675824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2115824, + "inode": 525953, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2687", + "xusr": false, + "atime": 1436810540.2115824, + "isdir": false, + "ctime": 1436810540.2115824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6025822, + "inode": 523968, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/702", + "xusr": false, + "atime": 1436810538.6025822, + "isdir": false, + "ctime": 1436810538.6025822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8375823, + "inode": 524278, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1012", + "xusr": false, + "atime": 1436810538.8375823, + "isdir": false, + "ctime": 1436810538.8375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0125823, + "inode": 524517, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1251", + "xusr": false, + "atime": 1436810539.0125823, + "isdir": false, + "ctime": 1436810539.0125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6385822, + "inode": 527820, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4554", + "xusr": false, + "atime": 1436810541.6385822, + "isdir": false, + "ctime": 1436810541.6385822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8725822, + "inode": 526807, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3541", + "xusr": false, + "atime": 1436810540.8725822, + "isdir": false, + "ctime": 1436810540.8725822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5755823, + "inode": 526391, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3125", + "xusr": false, + "atime": 1436810540.5755823, + "isdir": false, + "ctime": 1436810540.5755823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8035824, + "inode": 525455, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2189", + "xusr": false, + "atime": 1436810539.8035824, + "isdir": false, + "ctime": 1436810539.8035824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5815823, + "inode": 527742, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4476", + "xusr": false, + "atime": 1436810541.5815823, + "isdir": false, + "ctime": 1436810541.5815823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4175823, + "inode": 527516, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4250", + "xusr": false, + "atime": 1436810541.4175823, + "isdir": false, + "ctime": 1436810541.4175823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7545824, + "inode": 524170, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/904", + "xusr": false, + "atime": 1436810538.7545824, + "isdir": false, + "ctime": 1436810538.7545824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8745823, + "inode": 525556, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2290", + "xusr": false, + "atime": 1436810539.8745823, + "isdir": false, + "ctime": 1436810539.8745823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4705822, + "inode": 527588, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4322", + "xusr": false, + "atime": 1436810541.4705822, + "isdir": false, + "ctime": 1436810541.4705822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9585824, + "inode": 526928, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3662", + "xusr": false, + "atime": 1436810540.9585824, + "isdir": false, + "ctime": 1436810540.9585824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4285824, + "inode": 525060, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1794", + "xusr": false, + "atime": 1436810539.4285824, + "isdir": false, + "ctime": 1436810539.4285824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8115823, + "inode": 528059, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4793", + "xusr": false, + "atime": 1436810541.8115823, + "isdir": false, + "ctime": 1436810541.8115823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7415824, + "inode": 527962, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4696", + "xusr": false, + "atime": 1436810541.7415824, + "isdir": false, + "ctime": 1436810541.7415824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3055823, + "inode": 524936, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1670", + "xusr": false, + "atime": 1436810539.3055823, + "isdir": false, + "ctime": 1436810539.3055823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2175822, + "inode": 527283, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4017", + "xusr": false, + "atime": 1436810541.2175822, + "isdir": false, + "ctime": 1436810541.2175822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3835824, + "inode": 527476, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4210", + "xusr": false, + "atime": 1436810541.3835824, + "isdir": false, + "ctime": 1436810541.3835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1025822, + "inode": 523319, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/53", + "xusr": false, + "atime": 1436810538.1025822, + "isdir": false, + "ctime": 1436810538.1025822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7635822, + "inode": 525405, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2139", + "xusr": false, + "atime": 1436810539.7635822, + "isdir": false, + "ctime": 1436810539.7635822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9135823, + "inode": 524380, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1114", + "xusr": false, + "atime": 1436810538.9135823, + "isdir": false, + "ctime": 1436810538.9135823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2205822, + "inode": 525964, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2698", + "xusr": false, + "atime": 1436810540.2205822, + "isdir": false, + "ctime": 1436810540.2205822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9645822, + "inode": 524451, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1185", + "xusr": false, + "atime": 1436810538.9645822, + "isdir": false, + "ctime": 1436810538.9645822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8715823, + "inode": 528139, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4873", + "xusr": false, + "atime": 1436810541.8715823, + "isdir": false, + "ctime": 1436810541.8715823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9915824, + "inode": 526974, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3708", + "xusr": false, + "atime": 1436810540.9915824, + "isdir": false, + "ctime": 1436810540.9915824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4055824, + "inode": 526200, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2934", + "xusr": false, + "atime": 1436810540.4055824, + "isdir": false, + "ctime": 1436810540.4055824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0395823, + "inode": 527039, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3773", + "xusr": false, + "atime": 1436810541.0395823, + "isdir": false, + "ctime": 1436810541.0395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8535824, + "inode": 525526, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2260", + "xusr": false, + "atime": 1436810539.8535824, + "isdir": false, + "ctime": 1436810539.8535824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8515823, + "inode": 524295, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1029", + "xusr": false, + "atime": 1436810538.8515823, + "isdir": false, + "ctime": 1436810538.8515823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7155824, + "inode": 525352, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2086", + "xusr": false, + "atime": 1436810539.7155824, + "isdir": false, + "ctime": 1436810539.7155824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5715823, + "inode": 523924, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/658", + "xusr": false, + "atime": 1436810538.5715823, + "isdir": false, + "ctime": 1436810538.5715823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7035823, + "inode": 524105, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/839", + "xusr": false, + "atime": 1436810538.7035823, + "isdir": false, + "ctime": 1436810538.7035823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2195823, + "inode": 523485, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/219", + "xusr": false, + "atime": 1436810538.2195823, + "isdir": false, + "ctime": 1436810538.2195823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2055824, + "inode": 524793, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1527", + "xusr": false, + "atime": 1436810539.2055824, + "isdir": false, + "ctime": 1436810539.2055824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5385823, + "inode": 527681, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4415", + "xusr": false, + "atime": 1436810541.5385823, + "isdir": false, + "ctime": 1436810541.5385823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5545824, + "inode": 523901, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/635", + "xusr": false, + "atime": 1436810538.5545824, + "isdir": false, + "ctime": 1436810538.5545824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9715824, + "inode": 526947, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3681", + "xusr": false, + "atime": 1436810540.9715824, + "isdir": false, + "ctime": 1436810540.9715824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4545822, + "inode": 527565, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4299", + "xusr": false, + "atime": 1436810541.4545822, + "isdir": false, + "ctime": 1436810541.4545822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3405824, + "inode": 526108, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2842", + "xusr": false, + "atime": 1436810540.3405824, + "isdir": false, + "ctime": 1436810540.3405824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8825824, + "inode": 524337, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1071", + "xusr": false, + "atime": 1436810538.8825824, + "isdir": false, + "ctime": 1436810538.8825824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7795823, + "inode": 525427, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2161", + "xusr": false, + "atime": 1436810539.7795823, + "isdir": false, + "ctime": 1436810539.7795823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6795824, + "inode": 527875, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4609", + "xusr": false, + "atime": 1436810541.6795824, + "isdir": false, + "ctime": 1436810541.6795824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6565824, + "inode": 527843, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4577", + "xusr": false, + "atime": 1436810541.6565824, + "isdir": false, + "ctime": 1436810541.6565824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4995823, + "inode": 523827, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/561", + "xusr": false, + "atime": 1436810538.4995823, + "isdir": false, + "ctime": 1436810538.4995823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0605824, + "inode": 524586, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1320", + "xusr": false, + "atime": 1436810539.0605824, + "isdir": false, + "ctime": 1436810539.0605824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7095823, + "inode": 527918, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4652", + "xusr": false, + "atime": 1436810541.7095823, + "isdir": false, + "ctime": 1436810541.7095823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5795822, + "inode": 526397, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3131", + "xusr": false, + "atime": 1436810540.5795822, + "isdir": false, + "ctime": 1436810540.5795822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4325824, + "inode": 526237, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2971", + "xusr": false, + "atime": 1436810540.4325824, + "isdir": false, + "ctime": 1436810540.4325824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5495822, + "inode": 526354, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3088", + "xusr": false, + "atime": 1436810540.5495822, + "isdir": false, + "ctime": 1436810540.5495822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6165824, + "inode": 527790, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4524", + "xusr": false, + "atime": 1436810541.6165824, + "isdir": false, + "ctime": 1436810541.6165824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9485824, + "inode": 525657, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2391", + "xusr": false, + "atime": 1436810539.9485824, + "isdir": false, + "ctime": 1436810539.9485824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1075823, + "inode": 523326, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/60", + "xusr": false, + "atime": 1436810538.1075823, + "isdir": false, + "ctime": 1436810538.1075823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5835824, + "inode": 526403, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3137", + "xusr": false, + "atime": 1436810540.5835824, + "isdir": false, + "ctime": 1436810540.5835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3355823, + "inode": 523635, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/369", + "xusr": false, + "atime": 1436810538.3355823, + "isdir": false, + "ctime": 1436810538.3355823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1565824, + "inode": 523395, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/129", + "xusr": false, + "atime": 1436810538.1565824, + "isdir": false, + "ctime": 1436810538.1565824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3265824, + "inode": 526089, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2823", + "xusr": false, + "atime": 1436810540.3265824, + "isdir": false, + "ctime": 1436810540.3265824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8475823, + "inode": 525517, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2251", + "xusr": false, + "atime": 1436810539.8475823, + "isdir": false, + "ctime": 1436810539.8475823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9455824, + "inode": 524424, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1158", + "xusr": false, + "atime": 1436810538.9455824, + "isdir": false, + "ctime": 1436810538.9455824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9055824, + "inode": 526854, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3588", + "xusr": false, + "atime": 1436810540.9055824, + "isdir": false, + "ctime": 1436810540.9055824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6345823, + "inode": 525270, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2004", + "xusr": false, + "atime": 1436810539.6345823, + "isdir": false, + "ctime": 1436810539.6345823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9265823, + "inode": 528216, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4950", + "xusr": false, + "atime": 1436810541.9265823, + "isdir": false, + "ctime": 1436810541.9265823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2485824, + "inode": 527326, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4060", + "xusr": false, + "atime": 1436810541.2485824, + "isdir": false, + "ctime": 1436810541.2485824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1375823, + "inode": 523367, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/101", + "xusr": false, + "atime": 1436810538.1375823, + "isdir": false, + "ctime": 1436810538.1375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5845823, + "inode": 525210, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1944", + "xusr": false, + "atime": 1436810539.5845823, + "isdir": false, + "ctime": 1436810539.5845823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8535824, + "inode": 528114, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4848", + "xusr": false, + "atime": 1436810541.8535824, + "isdir": false, + "ctime": 1436810541.8535824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5135822, + "inode": 527647, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4381", + "xusr": false, + "atime": 1436810541.5135822, + "isdir": false, + "ctime": 1436810541.5135822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7075822, + "inode": 524110, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/844", + "xusr": false, + "atime": 1436810538.7075822, + "isdir": false, + "ctime": 1436810538.7075822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4985824, + "inode": 526298, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3032", + "xusr": false, + "atime": 1436810540.4985824, + "isdir": false, + "ctime": 1436810540.4985824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4215822, + "inode": 523725, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/459", + "xusr": false, + "atime": 1436810538.4215822, + "isdir": false, + "ctime": 1436810538.4215822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8865824, + "inode": 528161, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4895", + "xusr": false, + "atime": 1436810541.8865824, + "isdir": false, + "ctime": 1436810541.8865824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7795823, + "inode": 524200, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/934", + "xusr": false, + "atime": 1436810538.7795823, + "isdir": false, + "ctime": 1436810538.7795823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2835822, + "inode": 524906, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1640", + "xusr": false, + "atime": 1436810539.2835822, + "isdir": false, + "ctime": 1436810539.2835822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8265824, + "inode": 525488, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2222", + "xusr": false, + "atime": 1436810539.8265824, + "isdir": false, + "ctime": 1436810539.8265824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7145822, + "inode": 527925, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4659", + "xusr": false, + "atime": 1436810541.7145822, + "isdir": false, + "ctime": 1436810541.7145822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1925824, + "inode": 527248, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3982", + "xusr": false, + "atime": 1436810541.1925824, + "isdir": false, + "ctime": 1436810541.1925824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2895823, + "inode": 523584, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/318", + "xusr": false, + "atime": 1436810538.2895823, + "isdir": false, + "ctime": 1436810538.2895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0235822, + "inode": 525759, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2493", + "xusr": false, + "atime": 1436810540.0235822, + "isdir": false, + "ctime": 1436810540.0235822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1545823, + "inode": 527198, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3932", + "xusr": false, + "atime": 1436810541.1545823, + "isdir": false, + "ctime": 1436810541.1545823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3745823, + "inode": 526156, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2890", + "xusr": false, + "atime": 1436810540.3745823, + "isdir": false, + "ctime": 1436810540.3745823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9515822, + "inode": 528251, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4985", + "xusr": false, + "atime": 1436810541.9515822, + "isdir": false, + "ctime": 1436810541.9515822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3955822, + "inode": 527487, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4221", + "xusr": false, + "atime": 1436810541.3955822, + "isdir": false, + "ctime": 1436810541.3955822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6495824, + "inode": 524032, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/766", + "xusr": false, + "atime": 1436810538.6495824, + "isdir": false, + "ctime": 1436810538.6495824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2155824, + "inode": 527280, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4014", + "xusr": false, + "atime": 1436810541.2155824, + "isdir": false, + "ctime": 1436810541.2155824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8845823, + "inode": 528158, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4892", + "xusr": false, + "atime": 1436810541.8845823, + "isdir": false, + "ctime": 1436810541.8845823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9995823, + "inode": 524499, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1233", + "xusr": false, + "atime": 1436810538.9995823, + "isdir": false, + "ctime": 1436810538.9995823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0865824, + "inode": 525829, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2563", + "xusr": false, + "atime": 1436810540.0865824, + "isdir": false, + "ctime": 1436810540.0865824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4605823, + "inode": 525077, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1811", + "xusr": false, + "atime": 1436810539.4605823, + "isdir": false, + "ctime": 1436810539.4605823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2825823, + "inode": 527374, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4108", + "xusr": false, + "atime": 1436810541.2825823, + "isdir": false, + "ctime": 1436810541.2825823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8575823, + "inode": 525531, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2265", + "xusr": false, + "atime": 1436810539.8575823, + "isdir": false, + "ctime": 1436810539.8575823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7245822, + "inode": 525360, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2094", + "xusr": false, + "atime": 1436810539.7245822, + "isdir": false, + "ctime": 1436810539.7245822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1885824, + "inode": 524769, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1503", + "xusr": false, + "atime": 1436810539.1885824, + "isdir": false, + "ctime": 1436810539.1885824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4755824, + "inode": 527595, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4329", + "xusr": false, + "atime": 1436810541.4755824, + "isdir": false, + "ctime": 1436810541.4755824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5505824, + "inode": 526356, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3090", + "xusr": false, + "atime": 1436810540.5505824, + "isdir": false, + "ctime": 1436810540.5505824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9405823, + "inode": 528235, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4969", + "xusr": false, + "atime": 1436810541.9405823, + "isdir": false, + "ctime": 1436810541.9405823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4935822, + "inode": 527620, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4354", + "xusr": false, + "atime": 1436810541.4935822, + "isdir": false, + "ctime": 1436810541.4935822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7995822, + "inode": 524225, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/959", + "xusr": false, + "atime": 1436810538.7995822, + "isdir": false, + "ctime": 1436810538.7995822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8225822, + "inode": 525482, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2216", + "xusr": false, + "atime": 1436810539.8225822, + "isdir": false, + "ctime": 1436810539.8225822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6425824, + "inode": 527824, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4558", + "xusr": false, + "atime": 1436810541.6425824, + "isdir": false, + "ctime": 1436810541.6425824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0185823, + "inode": 527010, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3744", + "xusr": false, + "atime": 1436810541.0185823, + "isdir": false, + "ctime": 1436810541.0185823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7765822, + "inode": 525423, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2157", + "xusr": false, + "atime": 1436810539.7765822, + "isdir": false, + "ctime": 1436810539.7765822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6105824, + "inode": 527782, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4516", + "xusr": false, + "atime": 1436810541.6105824, + "isdir": false, + "ctime": 1436810541.6105824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6465824, + "inode": 525283, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2017", + "xusr": false, + "atime": 1436810539.6465824, + "isdir": false, + "ctime": 1436810539.6465824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8785822, + "inode": 528149, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4883", + "xusr": false, + "atime": 1436810541.8785822, + "isdir": false, + "ctime": 1436810541.8785822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5895822, + "inode": 523950, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/684", + "xusr": false, + "atime": 1436810538.5895822, + "isdir": false, + "ctime": 1436810538.5895822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1175823, + "inode": 524667, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1401", + "xusr": false, + "atime": 1436810539.1175823, + "isdir": false, + "ctime": 1436810539.1175823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8305824, + "inode": 526748, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3482", + "xusr": false, + "atime": 1436810540.8305824, + "isdir": false, + "ctime": 1436810540.8305824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2245822, + "inode": 525969, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2703", + "xusr": false, + "atime": 1436810540.2245822, + "isdir": false, + "ctime": 1436810540.2245822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0355823, + "inode": 527033, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3767", + "xusr": false, + "atime": 1436810541.0355823, + "isdir": false, + "ctime": 1436810541.0355823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4975822, + "inode": 526297, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3031", + "xusr": false, + "atime": 1436810540.4975822, + "isdir": false, + "ctime": 1436810540.4975822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6475823, + "inode": 527832, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4566", + "xusr": false, + "atime": 1436810541.6475823, + "isdir": false, + "ctime": 1436810541.6475823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4085822, + "inode": 526204, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2938", + "xusr": false, + "atime": 1436810540.4085822, + "isdir": false, + "ctime": 1436810540.4085822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8275824, + "inode": 525489, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2223", + "xusr": false, + "atime": 1436810539.8275824, + "isdir": false, + "ctime": 1436810539.8275824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6445823, + "inode": 524025, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/759", + "xusr": false, + "atime": 1436810538.6445823, + "isdir": false, + "ctime": 1436810538.6445823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1575823, + "inode": 523396, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/130", + "xusr": false, + "atime": 1436810538.1575823, + "isdir": false, + "ctime": 1436810538.1575823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4505823, + "inode": 526256, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2990", + "xusr": false, + "atime": 1436810540.4505823, + "isdir": false, + "ctime": 1436810540.4505823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6135824, + "inode": 525241, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1975", + "xusr": false, + "atime": 1436810539.6135824, + "isdir": false, + "ctime": 1436810539.6135824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3175824, + "inode": 526077, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2811", + "xusr": false, + "atime": 1436810540.3175824, + "isdir": false, + "ctime": 1436810540.3175824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5865824, + "inode": 527748, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4482", + "xusr": false, + "atime": 1436810541.5865824, + "isdir": false, + "ctime": 1436810541.5865824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8025823, + "inode": 524230, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/964", + "xusr": false, + "atime": 1436810538.8025823, + "isdir": false, + "ctime": 1436810538.8025823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9885824, + "inode": 526970, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3704", + "xusr": false, + "atime": 1436810540.9885824, + "isdir": false, + "ctime": 1436810540.9885824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0805824, + "inode": 525824, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2558", + "xusr": false, + "atime": 1436810540.0805824, + "isdir": false, + "ctime": 1436810540.0805824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6785824, + "inode": 524071, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/805", + "xusr": false, + "atime": 1436810538.6785824, + "isdir": false, + "ctime": 1436810538.6785824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3635824, + "inode": 523658, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/392", + "xusr": false, + "atime": 1436810538.3635824, + "isdir": false, + "ctime": 1436810538.3635824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6125822, + "inode": 525240, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1974", + "xusr": false, + "atime": 1436810539.6125822, + "isdir": false, + "ctime": 1436810539.6125822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5125823, + "inode": 523844, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/578", + "xusr": false, + "atime": 1436810538.5125823, + "isdir": false, + "ctime": 1436810538.5125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5425823, + "inode": 525163, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1897", + "xusr": false, + "atime": 1436810539.5425823, + "isdir": false, + "ctime": 1436810539.5425823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1345823, + "inode": 524691, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1425", + "xusr": false, + "atime": 1436810539.1345823, + "isdir": false, + "ctime": 1436810539.1345823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2555823, + "inode": 527335, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4069", + "xusr": false, + "atime": 1436810541.2555823, + "isdir": false, + "ctime": 1436810541.2555823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0245824, + "inode": 527018, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3752", + "xusr": false, + "atime": 1436810541.0245824, + "isdir": false, + "ctime": 1436810541.0245824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5645823, + "inode": 526376, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3110", + "xusr": false, + "atime": 1436810540.5645823, + "isdir": false, + "ctime": 1436810540.5645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5935824, + "inode": 526416, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3150", + "xusr": false, + "atime": 1436810540.5935824, + "isdir": false, + "ctime": 1436810540.5935824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6675823, + "inode": 526519, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3253", + "xusr": false, + "atime": 1436810540.6675823, + "isdir": false, + "ctime": 1436810540.6675823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4405823, + "inode": 526246, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2980", + "xusr": false, + "atime": 1436810540.4405823, + "isdir": false, + "ctime": 1436810540.4405823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1955824, + "inode": 527252, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3986", + "xusr": false, + "atime": 1436810541.1955824, + "isdir": false, + "ctime": 1436810541.1955824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7615824, + "inode": 527989, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4723", + "xusr": false, + "atime": 1436810541.7615824, + "isdir": false, + "ctime": 1436810541.7615824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8255823, + "inode": 525486, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2220", + "xusr": false, + "atime": 1436810539.8255823, + "isdir": false, + "ctime": 1436810539.8255823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6265824, + "inode": 525259, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1993", + "xusr": false, + "atime": 1436810539.6265824, + "isdir": false, + "ctime": 1436810539.6265824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7625823, + "inode": 524179, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/913", + "xusr": false, + "atime": 1436810538.7625823, + "isdir": false, + "ctime": 1436810538.7625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7015822, + "inode": 526567, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3301", + "xusr": false, + "atime": 1436810540.7015822, + "isdir": false, + "ctime": 1436810540.7015822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3225822, + "inode": 524954, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1688", + "xusr": false, + "atime": 1436810539.3225822, + "isdir": false, + "ctime": 1436810539.3225822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6085823, + "inode": 526437, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3171", + "xusr": false, + "atime": 1436810540.6085823, + "isdir": false, + "ctime": 1436810540.6085823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0825822, + "inode": 527099, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3833", + "xusr": false, + "atime": 1436810541.0825822, + "isdir": false, + "ctime": 1436810541.0825822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6115823, + "inode": 526441, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3175", + "xusr": false, + "atime": 1436810540.6115823, + "isdir": false, + "ctime": 1436810540.6115823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6495824, + "inode": 524031, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/765", + "xusr": false, + "atime": 1436810538.6495824, + "isdir": false, + "ctime": 1436810538.6495824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9695823, + "inode": 525685, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2419", + "xusr": false, + "atime": 1436810539.9695823, + "isdir": false, + "ctime": 1436810539.9695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9215822, + "inode": 524392, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1126", + "xusr": false, + "atime": 1436810538.9215822, + "isdir": false, + "ctime": 1436810538.9215822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7715824, + "inode": 525416, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2150", + "xusr": false, + "atime": 1436810539.7715824, + "isdir": false, + "ctime": 1436810539.7715824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8395822, + "inode": 525507, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2241", + "xusr": false, + "atime": 1436810539.8395822, + "isdir": false, + "ctime": 1436810539.8395822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6155822, + "inode": 525244, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1978", + "xusr": false, + "atime": 1436810539.6155822, + "isdir": false, + "ctime": 1436810539.6155822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5175824, + "inode": 526316, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3050", + "xusr": false, + "atime": 1436810540.5175824, + "isdir": false, + "ctime": 1436810540.5175824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6975822, + "inode": 526562, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3296", + "xusr": false, + "atime": 1436810540.6975822, + "isdir": false, + "ctime": 1436810540.6975822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4765823, + "inode": 523794, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/528", + "xusr": false, + "atime": 1436810538.4765823, + "isdir": false, + "ctime": 1436810538.4765823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7955823, + "inode": 526699, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3433", + "xusr": false, + "atime": 1436810540.7955823, + "isdir": false, + "ctime": 1436810540.7955823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9635823, + "inode": 526935, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3669", + "xusr": false, + "atime": 1436810540.9635823, + "isdir": false, + "ctime": 1436810540.9635823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7545824, + "inode": 527979, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4713", + "xusr": false, + "atime": 1436810541.7545824, + "isdir": false, + "ctime": 1436810541.7545824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8415823, + "inode": 525509, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2243", + "xusr": false, + "atime": 1436810539.8415823, + "isdir": false, + "ctime": 1436810539.8415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9245822, + "inode": 525625, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2359", + "xusr": false, + "atime": 1436810539.9245822, + "isdir": false, + "ctime": 1436810539.9245822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6205823, + "inode": 526453, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3187", + "xusr": false, + "atime": 1436810540.6205823, + "isdir": false, + "ctime": 1436810540.6205823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2725823, + "inode": 524890, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1624", + "xusr": false, + "atime": 1436810539.2725823, + "isdir": false, + "ctime": 1436810539.2725823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4355824, + "inode": 526241, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2975", + "xusr": false, + "atime": 1436810540.4355824, + "isdir": false, + "ctime": 1436810540.4355824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2775824, + "inode": 524897, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1631", + "xusr": false, + "atime": 1436810539.2775824, + "isdir": false, + "ctime": 1436810539.2775824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8845823, + "inode": 526824, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3558", + "xusr": false, + "atime": 1436810540.8845823, + "isdir": false, + "ctime": 1436810540.8845823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5815823, + "inode": 525207, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1941", + "xusr": false, + "atime": 1436810539.5815823, + "isdir": false, + "ctime": 1436810539.5815823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8685822, + "inode": 524319, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1053", + "xusr": false, + "atime": 1436810538.8685822, + "isdir": false, + "ctime": 1436810538.8685822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8275824, + "inode": 526743, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3477", + "xusr": false, + "atime": 1436810540.8275824, + "isdir": false, + "ctime": 1436810540.8275824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7885823, + "inode": 526689, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3423", + "xusr": false, + "atime": 1436810540.7885823, + "isdir": false, + "ctime": 1436810540.7885823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7165823, + "inode": 527927, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4661", + "xusr": false, + "atime": 1436810541.7165823, + "isdir": false, + "ctime": 1436810541.7165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6665823, + "inode": 526517, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3251", + "xusr": false, + "atime": 1436810540.6665823, + "isdir": false, + "ctime": 1436810540.6665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0705824, + "inode": 525814, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2548", + "xusr": false, + "atime": 1436810540.0705824, + "isdir": false, + "ctime": 1436810540.0705824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6595824, + "inode": 525296, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2030", + "xusr": false, + "atime": 1436810539.6595824, + "isdir": false, + "ctime": 1436810539.6595824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4555824, + "inode": 527567, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4301", + "xusr": false, + "atime": 1436810541.4555824, + "isdir": false, + "ctime": 1436810541.4555824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1665823, + "inode": 524737, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1471", + "xusr": false, + "atime": 1436810539.1665823, + "isdir": false, + "ctime": 1436810539.1665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0975823, + "inode": 523313, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/47", + "xusr": false, + "atime": 1436810538.0975823, + "isdir": false, + "ctime": 1436810538.0975823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6825824, + "inode": 524077, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/811", + "xusr": false, + "atime": 1436810538.6825824, + "isdir": false, + "ctime": 1436810538.6825824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1755824, + "inode": 523421, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/155", + "xusr": false, + "atime": 1436810538.1755824, + "isdir": false, + "ctime": 1436810538.1755824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7625823, + "inode": 525403, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2137", + "xusr": false, + "atime": 1436810539.7625823, + "isdir": false, + "ctime": 1436810539.7625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6845822, + "inode": 527882, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4616", + "xusr": false, + "atime": 1436810541.6845822, + "isdir": false, + "ctime": 1436810541.6845822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4285824, + "inode": 527530, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4264", + "xusr": false, + "atime": 1436810541.4285824, + "isdir": false, + "ctime": 1436810541.4285824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1435823, + "inode": 527183, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3917", + "xusr": false, + "atime": 1436810541.1435823, + "isdir": false, + "ctime": 1436810541.1435823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9155824, + "inode": 524383, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1117", + "xusr": false, + "atime": 1436810538.9155824, + "isdir": false, + "ctime": 1436810538.9155824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1775823, + "inode": 524753, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1487", + "xusr": false, + "atime": 1436810539.1775823, + "isdir": false, + "ctime": 1436810539.1775823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7805824, + "inode": 526677, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3411", + "xusr": false, + "atime": 1436810540.7805824, + "isdir": false, + "ctime": 1436810540.7805824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6025822, + "inode": 523967, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/701", + "xusr": false, + "atime": 1436810538.6025822, + "isdir": false, + "ctime": 1436810538.6025822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2145822, + "inode": 523479, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/213", + "xusr": false, + "atime": 1436810538.2145822, + "isdir": false, + "ctime": 1436810538.2145822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7795823, + "inode": 528014, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4748", + "xusr": false, + "atime": 1436810541.7795823, + "isdir": false, + "ctime": 1436810541.7795823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8465824, + "inode": 528104, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4838", + "xusr": false, + "atime": 1436810541.8465824, + "isdir": false, + "ctime": 1436810541.8465824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5485823, + "inode": 523893, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/627", + "xusr": false, + "atime": 1436810538.5485823, + "isdir": false, + "ctime": 1436810538.5485823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6735823, + "inode": 525309, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2043", + "xusr": false, + "atime": 1436810539.6735823, + "isdir": false, + "ctime": 1436810539.6735823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4095824, + "inode": 527505, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4239", + "xusr": false, + "atime": 1436810541.4095824, + "isdir": false, + "ctime": 1436810541.4095824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1895823, + "inode": 523443, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/177", + "xusr": false, + "atime": 1436810538.1895823, + "isdir": false, + "ctime": 1436810538.1895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7855823, + "inode": 526685, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3419", + "xusr": false, + "atime": 1436810540.7855823, + "isdir": false, + "ctime": 1436810540.7855823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9225824, + "inode": 524394, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1128", + "xusr": false, + "atime": 1436810538.9225824, + "isdir": false, + "ctime": 1436810538.9225824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0165823, + "inode": 527008, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3742", + "xusr": false, + "atime": 1436810541.0165823, + "isdir": false, + "ctime": 1436810541.0165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3485823, + "inode": 524979, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1713", + "xusr": false, + "atime": 1436810539.3485823, + "isdir": false, + "ctime": 1436810539.3485823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5995822, + "inode": 523963, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/697", + "xusr": false, + "atime": 1436810538.5995822, + "isdir": false, + "ctime": 1436810538.5995822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0695822, + "inode": 524599, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1333", + "xusr": false, + "atime": 1436810539.0695822, + "isdir": false, + "ctime": 1436810539.0695822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6455822, + "inode": 525282, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2016", + "xusr": false, + "atime": 1436810539.6455822, + "isdir": false, + "ctime": 1436810539.6455822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3955822, + "inode": 526186, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2920", + "xusr": false, + "atime": 1436810540.3955822, + "isdir": false, + "ctime": 1436810540.3955822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4805822, + "inode": 523800, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/534", + "xusr": false, + "atime": 1436810538.4805822, + "isdir": false, + "ctime": 1436810538.4805822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9925823, + "inode": 525718, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2452", + "xusr": false, + "atime": 1436810539.9925823, + "isdir": false, + "ctime": 1436810539.9925823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4435823, + "inode": 527551, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4285", + "xusr": false, + "atime": 1436810541.4435823, + "isdir": false, + "ctime": 1436810541.4435823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0605824, + "inode": 527068, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3802", + "xusr": false, + "atime": 1436810541.0605824, + "isdir": false, + "ctime": 1436810541.0605824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8205824, + "inode": 528070, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4804", + "xusr": false, + "atime": 1436810541.8205824, + "isdir": false, + "ctime": 1436810541.8205824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6475823, + "inode": 527831, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4565", + "xusr": false, + "atime": 1436810541.6475823, + "isdir": false, + "ctime": 1436810541.6475823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2865822, + "inode": 527379, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4113", + "xusr": false, + "atime": 1436810541.2865822, + "isdir": false, + "ctime": 1436810541.2865822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7585824, + "inode": 524175, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/909", + "xusr": false, + "atime": 1436810538.7585824, + "isdir": false, + "ctime": 1436810538.7585824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0875823, + "inode": 524624, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1358", + "xusr": false, + "atime": 1436810539.0875823, + "isdir": false, + "ctime": 1436810539.0875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7285824, + "inode": 527944, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4678", + "xusr": false, + "atime": 1436810541.7285824, + "isdir": false, + "ctime": 1436810541.7285824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0135822, + "inode": 524518, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1252", + "xusr": false, + "atime": 1436810539.0135822, + "isdir": false, + "ctime": 1436810539.0135822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3355823, + "inode": 526101, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2835", + "xusr": false, + "atime": 1436810540.3355823, + "isdir": false, + "ctime": 1436810540.3355823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1875823, + "inode": 527241, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3975", + "xusr": false, + "atime": 1436810541.1875823, + "isdir": false, + "ctime": 1436810541.1875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7765822, + "inode": 528009, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4743", + "xusr": false, + "atime": 1436810541.7765822, + "isdir": false, + "ctime": 1436810541.7765822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4035823, + "inode": 527498, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4232", + "xusr": false, + "atime": 1436810541.4035823, + "isdir": false, + "ctime": 1436810541.4035823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0775824, + "inode": 524610, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1344", + "xusr": false, + "atime": 1436810539.0775824, + "isdir": false, + "ctime": 1436810539.0775824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4945824, + "inode": 527622, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4356", + "xusr": false, + "atime": 1436810541.4945824, + "isdir": false, + "ctime": 1436810541.4945824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8145823, + "inode": 524246, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/980", + "xusr": false, + "atime": 1436810538.8145823, + "isdir": false, + "ctime": 1436810538.8145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7075822, + "inode": 525344, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2078", + "xusr": false, + "atime": 1436810539.7075822, + "isdir": false, + "ctime": 1436810539.7075822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2975824, + "inode": 527395, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4129", + "xusr": false, + "atime": 1436810541.2975824, + "isdir": false, + "ctime": 1436810541.2975824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7025824, + "inode": 527908, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4642", + "xusr": false, + "atime": 1436810541.7025824, + "isdir": false, + "ctime": 1436810541.7025824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1265824, + "inode": 527160, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3894", + "xusr": false, + "atime": 1436810541.1265824, + "isdir": false, + "ctime": 1436810541.1265824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1885824, + "inode": 527242, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3976", + "xusr": false, + "atime": 1436810541.1885824, + "isdir": false, + "ctime": 1436810541.1885824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2535822, + "inode": 523532, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/266", + "xusr": false, + "atime": 1436810538.2535822, + "isdir": false, + "ctime": 1436810538.2535822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1385822, + "inode": 524697, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1431", + "xusr": false, + "atime": 1436810539.1385822, + "isdir": false, + "ctime": 1436810539.1385822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8085823, + "inode": 526718, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3452", + "xusr": false, + "atime": 1436810540.8085823, + "isdir": false, + "ctime": 1436810540.8085823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5255823, + "inode": 523862, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/596", + "xusr": false, + "atime": 1436810538.5255823, + "isdir": false, + "ctime": 1436810538.5255823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8125823, + "inode": 524243, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/977", + "xusr": false, + "atime": 1436810538.8125823, + "isdir": false, + "ctime": 1436810538.8125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6515822, + "inode": 526496, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3230", + "xusr": false, + "atime": 1436810540.6515822, + "isdir": false, + "ctime": 1436810540.6515822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7785823, + "inode": 524199, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/933", + "xusr": false, + "atime": 1436810538.7785823, + "isdir": false, + "ctime": 1436810538.7785823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6575823, + "inode": 525294, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2028", + "xusr": false, + "atime": 1436810539.6575823, + "isdir": false, + "ctime": 1436810539.6575823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8965824, + "inode": 525587, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2321", + "xusr": false, + "atime": 1436810539.8965824, + "isdir": false, + "ctime": 1436810539.8965824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2225823, + "inode": 527289, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4023", + "xusr": false, + "atime": 1436810541.2225823, + "isdir": false, + "ctime": 1436810541.2225823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7245822, + "inode": 526600, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3334", + "xusr": false, + "atime": 1436810540.7245822, + "isdir": false, + "ctime": 1436810540.7245822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8575823, + "inode": 524304, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1038", + "xusr": false, + "atime": 1436810538.8575823, + "isdir": false, + "ctime": 1436810538.8575823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4365823, + "inode": 523738, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/472", + "xusr": false, + "atime": 1436810538.4365823, + "isdir": false, + "ctime": 1436810538.4365823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5815823, + "inode": 526400, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3134", + "xusr": false, + "atime": 1436810540.5815823, + "isdir": false, + "ctime": 1436810540.5815823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4525824, + "inode": 523761, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/495", + "xusr": false, + "atime": 1436810538.4525824, + "isdir": false, + "ctime": 1436810538.4525824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9595823, + "inode": 524443, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1177", + "xusr": false, + "atime": 1436810538.9595823, + "isdir": false, + "ctime": 1436810538.9595823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0175824, + "inode": 525752, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2486", + "xusr": false, + "atime": 1436810540.0175824, + "isdir": false, + "ctime": 1436810540.0175824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4335823, + "inode": 526238, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2972", + "xusr": false, + "atime": 1436810540.4335823, + "isdir": false, + "ctime": 1436810540.4335823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9665823, + "inode": 524453, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1187", + "xusr": false, + "atime": 1436810538.9665823, + "isdir": false, + "ctime": 1436810538.9665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6885824, + "inode": 524085, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/819", + "xusr": false, + "atime": 1436810538.6885824, + "isdir": false, + "ctime": 1436810538.6885824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0665822, + "inode": 523270, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4", + "xusr": false, + "atime": 1436810538.0665822, + "isdir": false, + "ctime": 1436810538.0665822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7015822, + "inode": 527906, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4640", + "xusr": false, + "atime": 1436810541.7015822, + "isdir": false, + "ctime": 1436810541.7015822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0745823, + "inode": 524605, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1339", + "xusr": false, + "atime": 1436810539.0745823, + "isdir": false, + "ctime": 1436810539.0745823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3305824, + "inode": 526094, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2828", + "xusr": false, + "atime": 1436810540.3305824, + "isdir": false, + "ctime": 1436810540.3305824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0545824, + "inode": 525798, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2532", + "xusr": false, + "atime": 1436810540.0545824, + "isdir": false, + "ctime": 1436810540.0545824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9095824, + "inode": 528193, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4927", + "xusr": false, + "atime": 1436810541.9095824, + "isdir": false, + "ctime": 1436810541.9095824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1405823, + "inode": 523372, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/106", + "xusr": false, + "atime": 1436810538.1405823, + "isdir": false, + "ctime": 1436810538.1405823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3435824, + "inode": 527441, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4175", + "xusr": false, + "atime": 1436810541.3435824, + "isdir": false, + "ctime": 1436810541.3435824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7605822, + "inode": 524177, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/911", + "xusr": false, + "atime": 1436810538.7605822, + "isdir": false, + "ctime": 1436810538.7605822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8265824, + "inode": 524263, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/997", + "xusr": false, + "atime": 1436810538.8265824, + "isdir": false, + "ctime": 1436810538.8265824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1905823, + "inode": 525929, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2663", + "xusr": false, + "atime": 1436810540.1905823, + "isdir": false, + "ctime": 1436810540.1905823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5805824, + "inode": 523937, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/671", + "xusr": false, + "atime": 1436810538.5805824, + "isdir": false, + "ctime": 1436810538.5805824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5925822, + "inode": 525216, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1950", + "xusr": false, + "atime": 1436810539.5925822, + "isdir": false, + "ctime": 1436810539.5925822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6335824, + "inode": 526471, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3205", + "xusr": false, + "atime": 1436810540.6335824, + "isdir": false, + "ctime": 1436810540.6335824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2545824, + "inode": 523533, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/267", + "xusr": false, + "atime": 1436810538.2545824, + "isdir": false, + "ctime": 1436810538.2545824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2795823, + "inode": 526031, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2765", + "xusr": false, + "atime": 1436810540.2795823, + "isdir": false, + "ctime": 1436810540.2795823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8035824, + "inode": 528047, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4781", + "xusr": false, + "atime": 1436810541.8035824, + "isdir": false, + "ctime": 1436810541.8035824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2105823, + "inode": 527273, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4007", + "xusr": false, + "atime": 1436810541.2105823, + "isdir": false, + "ctime": 1436810541.2105823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1785824, + "inode": 525917, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2651", + "xusr": false, + "atime": 1436810540.1785824, + "isdir": false, + "ctime": 1436810540.1785824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1835823, + "inode": 524761, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1495", + "xusr": false, + "atime": 1436810539.1835823, + "isdir": false, + "ctime": 1436810539.1835823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3075824, + "inode": 523608, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/342", + "xusr": false, + "atime": 1436810538.3075824, + "isdir": false, + "ctime": 1436810538.3075824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7165823, + "inode": 526588, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3322", + "xusr": false, + "atime": 1436810540.7165823, + "isdir": false, + "ctime": 1436810540.7165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7545824, + "inode": 525393, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2127", + "xusr": false, + "atime": 1436810539.7545824, + "isdir": false, + "ctime": 1436810539.7545824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3135824, + "inode": 526071, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2805", + "xusr": false, + "atime": 1436810540.3135824, + "isdir": false, + "ctime": 1436810540.3135824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2325823, + "inode": 527304, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4038", + "xusr": false, + "atime": 1436810541.2325823, + "isdir": false, + "ctime": 1436810541.2325823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8435824, + "inode": 524285, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1019", + "xusr": false, + "atime": 1436810538.8435824, + "isdir": false, + "ctime": 1436810538.8435824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3485823, + "inode": 523648, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/382", + "xusr": false, + "atime": 1436810538.3485823, + "isdir": false, + "ctime": 1436810538.3485823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1675823, + "inode": 523410, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/144", + "xusr": false, + "atime": 1436810538.1675823, + "isdir": false, + "ctime": 1436810538.1675823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0435822, + "inode": 524561, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1295", + "xusr": false, + "atime": 1436810539.0435822, + "isdir": false, + "ctime": 1436810539.0435822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5065823, + "inode": 523836, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/570", + "xusr": false, + "atime": 1436810538.5065823, + "isdir": false, + "ctime": 1436810538.5065823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0385823, + "inode": 527038, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3772", + "xusr": false, + "atime": 1436810541.0385823, + "isdir": false, + "ctime": 1436810541.0385823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7865822, + "inode": 525437, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2171", + "xusr": false, + "atime": 1436810539.7865822, + "isdir": false, + "ctime": 1436810539.7865822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4575822, + "inode": 527569, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4303", + "xusr": false, + "atime": 1436810541.4575822, + "isdir": false, + "ctime": 1436810541.4575822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8545823, + "inode": 525527, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2261", + "xusr": false, + "atime": 1436810539.8545823, + "isdir": false, + "ctime": 1436810539.8545823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7015824, + "inode": 525338, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2072", + "xusr": false, + "atime": 1436810539.7015824, + "isdir": false, + "ctime": 1436810539.7015824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7335823, + "inode": 527951, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4685", + "xusr": false, + "atime": 1436810541.7335823, + "isdir": false, + "ctime": 1436810541.7335823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4805822, + "inode": 527602, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4336", + "xusr": false, + "atime": 1436810541.4805822, + "isdir": false, + "ctime": 1436810541.4805822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6415823, + "inode": 526483, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3217", + "xusr": false, + "atime": 1436810540.6415823, + "isdir": false, + "ctime": 1436810540.6415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5765822, + "inode": 525203, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1937", + "xusr": false, + "atime": 1436810539.5765822, + "isdir": false, + "ctime": 1436810539.5765822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6345823, + "inode": 525269, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2003", + "xusr": false, + "atime": 1436810539.6345823, + "isdir": false, + "ctime": 1436810539.6345823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1415823, + "inode": 525882, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2616", + "xusr": false, + "atime": 1436810540.1415823, + "isdir": false, + "ctime": 1436810540.1415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6535823, + "inode": 527839, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4573", + "xusr": false, + "atime": 1436810541.6535823, + "isdir": false, + "ctime": 1436810541.6535823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9455824, + "inode": 524423, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1157", + "xusr": false, + "atime": 1436810538.9455824, + "isdir": false, + "ctime": 1436810538.9455824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9735823, + "inode": 526949, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3683", + "xusr": false, + "atime": 1436810540.9735823, + "isdir": false, + "ctime": 1436810540.9735823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6475823, + "inode": 526491, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3225", + "xusr": false, + "atime": 1436810540.6475823, + "isdir": false, + "ctime": 1436810540.6475823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1925824, + "inode": 527247, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3981", + "xusr": false, + "atime": 1436810541.1925824, + "isdir": false, + "ctime": 1436810541.1925824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4945824, + "inode": 523820, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/554", + "xusr": false, + "atime": 1436810538.4945824, + "isdir": false, + "ctime": 1436810538.4945824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3015823, + "inode": 527399, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4133", + "xusr": false, + "atime": 1436810541.3015823, + "isdir": false, + "ctime": 1436810541.3015823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6135824, + "inode": 525242, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1976", + "xusr": false, + "atime": 1436810539.6135824, + "isdir": false, + "ctime": 1436810539.6135824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0835824, + "inode": 523296, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/30", + "xusr": false, + "atime": 1436810538.0835824, + "isdir": false, + "ctime": 1436810538.0835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9435823, + "inode": 524421, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1155", + "xusr": false, + "atime": 1436810538.9435823, + "isdir": false, + "ctime": 1436810538.9435823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0915823, + "inode": 524630, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1364", + "xusr": false, + "atime": 1436810539.0915823, + "isdir": false, + "ctime": 1436810539.0915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9415822, + "inode": 526904, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3638", + "xusr": false, + "atime": 1436810540.9415822, + "isdir": false, + "ctime": 1436810540.9415822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4075823, + "inode": 527502, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4236", + "xusr": false, + "atime": 1436810541.4075823, + "isdir": false, + "ctime": 1436810541.4075823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3735824, + "inode": 527464, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4198", + "xusr": false, + "atime": 1436810541.3735824, + "isdir": false, + "ctime": 1436810541.3735824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2605822, + "inode": 527342, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4076", + "xusr": false, + "atime": 1436810541.2605822, + "isdir": false, + "ctime": 1436810541.2605822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8935823, + "inode": 525583, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2317", + "xusr": false, + "atime": 1436810539.8935823, + "isdir": false, + "ctime": 1436810539.8935823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7485824, + "inode": 525386, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2120", + "xusr": false, + "atime": 1436810539.7485824, + "isdir": false, + "ctime": 1436810539.7485824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1875823, + "inode": 523439, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/173", + "xusr": false, + "atime": 1436810538.1875823, + "isdir": false, + "ctime": 1436810538.1875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5405824, + "inode": 523882, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/616", + "xusr": false, + "atime": 1436810538.5405824, + "isdir": false, + "ctime": 1436810538.5405824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6585822, + "inode": 526506, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3240", + "xusr": false, + "atime": 1436810540.6585822, + "isdir": false, + "ctime": 1436810540.6585822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6935823, + "inode": 526556, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3290", + "xusr": false, + "atime": 1436810540.6935823, + "isdir": false, + "ctime": 1436810540.6935823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5455823, + "inode": 527692, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4426", + "xusr": false, + "atime": 1436810541.5455823, + "isdir": false, + "ctime": 1436810541.5455823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0195823, + "inode": 524526, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1260", + "xusr": false, + "atime": 1436810539.0195823, + "isdir": false, + "ctime": 1436810539.0195823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2235823, + "inode": 524819, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1553", + "xusr": false, + "atime": 1436810539.2235823, + "isdir": false, + "ctime": 1436810539.2235823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6475823, + "inode": 524028, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/762", + "xusr": false, + "atime": 1436810538.6475823, + "isdir": false, + "ctime": 1436810538.6475823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5555823, + "inode": 523903, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/637", + "xusr": false, + "atime": 1436810538.5555823, + "isdir": false, + "ctime": 1436810538.5555823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1615822, + "inode": 524731, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1465", + "xusr": false, + "atime": 1436810539.1615822, + "isdir": false, + "ctime": 1436810539.1615822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1125822, + "inode": 523332, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/66", + "xusr": false, + "atime": 1436810538.1125822, + "isdir": false, + "ctime": 1436810538.1125822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8035824, + "inode": 524231, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/965", + "xusr": false, + "atime": 1436810538.8035824, + "isdir": false, + "ctime": 1436810538.8035824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5005822, + "inode": 527629, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4363", + "xusr": false, + "atime": 1436810541.5005822, + "isdir": false, + "ctime": 1436810541.5005822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7435822, + "inode": 527965, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4699", + "xusr": false, + "atime": 1436810541.7435822, + "isdir": false, + "ctime": 1436810541.7435822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1665823, + "inode": 523408, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/142", + "xusr": false, + "atime": 1436810538.1665823, + "isdir": false, + "ctime": 1436810538.1665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2705822, + "inode": 524887, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1621", + "xusr": false, + "atime": 1436810539.2705822, + "isdir": false, + "ctime": 1436810539.2705822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0945823, + "inode": 523309, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/43", + "xusr": false, + "atime": 1436810538.0945823, + "isdir": false, + "ctime": 1436810538.0945823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5705824, + "inode": 525195, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1929", + "xusr": false, + "atime": 1436810539.5705824, + "isdir": false, + "ctime": 1436810539.5705824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9555824, + "inode": 524437, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1171", + "xusr": false, + "atime": 1436810538.9555824, + "isdir": false, + "ctime": 1436810538.9555824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4425824, + "inode": 523747, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/481", + "xusr": false, + "atime": 1436810538.4425824, + "isdir": false, + "ctime": 1436810538.4425824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2645824, + "inode": 523548, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/282", + "xusr": false, + "atime": 1436810538.2645824, + "isdir": false, + "ctime": 1436810538.2645824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0195823, + "inode": 527012, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3746", + "xusr": false, + "atime": 1436810541.0195823, + "isdir": false, + "ctime": 1436810541.0195823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5515823, + "inode": 527700, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4434", + "xusr": false, + "atime": 1436810541.5515823, + "isdir": false, + "ctime": 1436810541.5515823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7315824, + "inode": 526610, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3344", + "xusr": false, + "atime": 1436810540.7315824, + "isdir": false, + "ctime": 1436810540.7315824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6185822, + "inode": 525248, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1982", + "xusr": false, + "atime": 1436810539.6185822, + "isdir": false, + "ctime": 1436810539.6185822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3745823, + "inode": 523666, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/400", + "xusr": false, + "atime": 1436810538.3745823, + "isdir": false, + "ctime": 1436810538.3745823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9585824, + "inode": 524442, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1176", + "xusr": false, + "atime": 1436810538.9585824, + "isdir": false, + "ctime": 1436810538.9585824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6795824, + "inode": 527876, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4610", + "xusr": false, + "atime": 1436810541.6795824, + "isdir": false, + "ctime": 1436810541.6795824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1925824, + "inode": 523446, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/180", + "xusr": false, + "atime": 1436810538.1925824, + "isdir": false, + "ctime": 1436810538.1925824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1975822, + "inode": 525937, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2671", + "xusr": false, + "atime": 1436810540.1975822, + "isdir": false, + "ctime": 1436810540.1975822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2175822, + "inode": 527282, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4016", + "xusr": false, + "atime": 1436810541.2175822, + "isdir": false, + "ctime": 1436810541.2175822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1255822, + "inode": 524679, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1413", + "xusr": false, + "atime": 1436810539.1255822, + "isdir": false, + "ctime": 1436810539.1255822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8255823, + "inode": 524261, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/995", + "xusr": false, + "atime": 1436810538.8255823, + "isdir": false, + "ctime": 1436810538.8255823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7585824, + "inode": 526647, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3381", + "xusr": false, + "atime": 1436810540.7585824, + "isdir": false, + "ctime": 1436810540.7585824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8235824, + "inode": 526738, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3472", + "xusr": false, + "atime": 1436810540.8235824, + "isdir": false, + "ctime": 1436810540.8235824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2425823, + "inode": 524846, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1580", + "xusr": false, + "atime": 1436810539.2425823, + "isdir": false, + "ctime": 1436810539.2425823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9455824, + "inode": 526910, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3644", + "xusr": false, + "atime": 1436810540.9455824, + "isdir": false, + "ctime": 1436810540.9455824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3355823, + "inode": 527435, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4169", + "xusr": false, + "atime": 1436810541.3355823, + "isdir": false, + "ctime": 1436810541.3355823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4775822, + "inode": 525098, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1832", + "xusr": false, + "atime": 1436810539.4775822, + "isdir": false, + "ctime": 1436810539.4775822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5715823, + "inode": 525197, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1931", + "xusr": false, + "atime": 1436810539.5715823, + "isdir": false, + "ctime": 1436810539.5715823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3415823, + "inode": 527438, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4172", + "xusr": false, + "atime": 1436810541.3415823, + "isdir": false, + "ctime": 1436810541.3415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3775823, + "inode": 523669, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/403", + "xusr": false, + "atime": 1436810538.3775823, + "isdir": false, + "ctime": 1436810538.3775823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0105822, + "inode": 527000, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3734", + "xusr": false, + "atime": 1436810541.0105822, + "isdir": false, + "ctime": 1436810541.0105822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2325823, + "inode": 525980, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2714", + "xusr": false, + "atime": 1436810540.2325823, + "isdir": false, + "ctime": 1436810540.2325823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9365823, + "inode": 526897, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3631", + "xusr": false, + "atime": 1436810540.9365823, + "isdir": false, + "ctime": 1436810540.9365823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7215824, + "inode": 524126, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/860", + "xusr": false, + "atime": 1436810538.7215824, + "isdir": false, + "ctime": 1436810538.7215824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6535823, + "inode": 524037, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/771", + "xusr": false, + "atime": 1436810538.6535823, + "isdir": false, + "ctime": 1436810538.6535823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6125822, + "inode": 526443, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3177", + "xusr": false, + "atime": 1436810540.6125822, + "isdir": false, + "ctime": 1436810540.6125822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7655823, + "inode": 527994, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4728", + "xusr": false, + "atime": 1436810541.7655823, + "isdir": false, + "ctime": 1436810541.7655823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2415824, + "inode": 524845, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1579", + "xusr": false, + "atime": 1436810539.2415824, + "isdir": false, + "ctime": 1436810539.2415824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9435823, + "inode": 526907, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3641", + "xusr": false, + "atime": 1436810540.9435823, + "isdir": false, + "ctime": 1436810540.9435823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4355824, + "inode": 526240, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2974", + "xusr": false, + "atime": 1436810540.4355824, + "isdir": false, + "ctime": 1436810540.4355824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3915823, + "inode": 526180, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2914", + "xusr": false, + "atime": 1436810540.3915823, + "isdir": false, + "ctime": 1436810540.3915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9425824, + "inode": 524419, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1153", + "xusr": false, + "atime": 1436810538.9425824, + "isdir": false, + "ctime": 1436810538.9425824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6405823, + "inode": 525276, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2010", + "xusr": false, + "atime": 1436810539.6405823, + "isdir": false, + "ctime": 1436810539.6405823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5575824, + "inode": 523906, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/640", + "xusr": false, + "atime": 1436810538.5575824, + "isdir": false, + "ctime": 1436810538.5575824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7525823, + "inode": 524167, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/901", + "xusr": false, + "atime": 1436810538.7525823, + "isdir": false, + "ctime": 1436810538.7525823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7875824, + "inode": 526687, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3421", + "xusr": false, + "atime": 1436810540.7875824, + "isdir": false, + "ctime": 1436810540.7875824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7385824, + "inode": 527958, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4692", + "xusr": false, + "atime": 1436810541.7385824, + "isdir": false, + "ctime": 1436810541.7385824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9055824, + "inode": 524369, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1103", + "xusr": false, + "atime": 1436810538.9055824, + "isdir": false, + "ctime": 1436810538.9055824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8315823, + "inode": 528085, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4819", + "xusr": false, + "atime": 1436810541.8315823, + "isdir": false, + "ctime": 1436810541.8315823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9485824, + "inode": 528247, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4981", + "xusr": false, + "atime": 1436810541.9485824, + "isdir": false, + "ctime": 1436810541.9485824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1615822, + "inode": 523401, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/135", + "xusr": false, + "atime": 1436810538.1615822, + "isdir": false, + "ctime": 1436810538.1615822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8595824, + "inode": 525534, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2268", + "xusr": false, + "atime": 1436810539.8595824, + "isdir": false, + "ctime": 1436810539.8595824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9825823, + "inode": 526962, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3696", + "xusr": false, + "atime": 1436810540.9825823, + "isdir": false, + "ctime": 1436810540.9825823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1135824, + "inode": 524662, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1396", + "xusr": false, + "atime": 1436810539.1135824, + "isdir": false, + "ctime": 1436810539.1135824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8765824, + "inode": 525559, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2293", + "xusr": false, + "atime": 1436810539.8765824, + "isdir": false, + "ctime": 1436810539.8765824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2995822, + "inode": 524929, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1663", + "xusr": false, + "atime": 1436810539.2995822, + "isdir": false, + "ctime": 1436810539.2995822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2385824, + "inode": 524841, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1575", + "xusr": false, + "atime": 1436810539.2385824, + "isdir": false, + "ctime": 1436810539.2385824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5055823, + "inode": 527636, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4370", + "xusr": false, + "atime": 1436810541.5055823, + "isdir": false, + "ctime": 1436810541.5055823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5645823, + "inode": 526375, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3109", + "xusr": false, + "atime": 1436810540.5645823, + "isdir": false, + "ctime": 1436810540.5645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5585823, + "inode": 527709, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4443", + "xusr": false, + "atime": 1436810541.5585823, + "isdir": false, + "ctime": 1436810541.5585823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6605823, + "inode": 526509, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3243", + "xusr": false, + "atime": 1436810540.6605823, + "isdir": false, + "ctime": 1436810540.6605823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7605822, + "inode": 525401, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2135", + "xusr": false, + "atime": 1436810539.7605822, + "isdir": false, + "ctime": 1436810539.7605822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9775822, + "inode": 525696, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2430", + "xusr": false, + "atime": 1436810539.9775822, + "isdir": false, + "ctime": 1436810539.9775822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6335824, + "inode": 527813, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4547", + "xusr": false, + "atime": 1436810541.6335824, + "isdir": false, + "ctime": 1436810541.6335824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2515824, + "inode": 525999, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2733", + "xusr": false, + "atime": 1436810540.2515824, + "isdir": false, + "ctime": 1436810540.2515824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1355822, + "inode": 527172, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3906", + "xusr": false, + "atime": 1436810541.1355822, + "isdir": false, + "ctime": 1436810541.1355822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4615824, + "inode": 523774, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/508", + "xusr": false, + "atime": 1436810538.4615824, + "isdir": false, + "ctime": 1436810538.4615824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8385823, + "inode": 528094, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4828", + "xusr": false, + "atime": 1436810541.8385823, + "isdir": false, + "ctime": 1436810541.8385823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6115823, + "inode": 525239, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1973", + "xusr": false, + "atime": 1436810539.6115823, + "isdir": false, + "ctime": 1436810539.6115823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3835824, + "inode": 523678, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/412", + "xusr": false, + "atime": 1436810538.3835824, + "isdir": false, + "ctime": 1436810538.3835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9835823, + "inode": 526963, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3697", + "xusr": false, + "atime": 1436810540.9835823, + "isdir": false, + "ctime": 1436810540.9835823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5325823, + "inode": 523872, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/606", + "xusr": false, + "atime": 1436810538.5325823, + "isdir": false, + "ctime": 1436810538.5325823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9955823, + "inode": 526979, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3713", + "xusr": false, + "atime": 1436810540.9955823, + "isdir": false, + "ctime": 1436810540.9955823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4955823, + "inode": 523821, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/555", + "xusr": false, + "atime": 1436810538.4955823, + "isdir": false, + "ctime": 1436810538.4955823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0715823, + "inode": 523278, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/12", + "xusr": false, + "atime": 1436810538.0715823, + "isdir": false, + "ctime": 1436810538.0715823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9475822, + "inode": 526913, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3647", + "xusr": false, + "atime": 1436810540.9475822, + "isdir": false, + "ctime": 1436810540.9475822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9205823, + "inode": 524391, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1125", + "xusr": false, + "atime": 1436810538.9205823, + "isdir": false, + "ctime": 1436810538.9205823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9115822, + "inode": 526862, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3596", + "xusr": false, + "atime": 1436810540.9115822, + "isdir": false, + "ctime": 1436810540.9115822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6565824, + "inode": 524041, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/775", + "xusr": false, + "atime": 1436810538.6565824, + "isdir": false, + "ctime": 1436810538.6565824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5795822, + "inode": 523935, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/669", + "xusr": false, + "atime": 1436810538.5795822, + "isdir": false, + "ctime": 1436810538.5795822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9285824, + "inode": 526887, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3621", + "xusr": false, + "atime": 1436810540.9285824, + "isdir": false, + "ctime": 1436810540.9285824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3555822, + "inode": 524989, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1723", + "xusr": false, + "atime": 1436810539.3555822, + "isdir": false, + "ctime": 1436810539.3555822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0425823, + "inode": 524560, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1294", + "xusr": false, + "atime": 1436810539.0425823, + "isdir": false, + "ctime": 1436810539.0425823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2175822, + "inode": 525960, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2694", + "xusr": false, + "atime": 1436810540.2175822, + "isdir": false, + "ctime": 1436810540.2175822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5685823, + "inode": 527723, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4457", + "xusr": false, + "atime": 1436810541.5685823, + "isdir": false, + "ctime": 1436810541.5685823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1135824, + "inode": 527143, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3877", + "xusr": false, + "atime": 1436810541.1135824, + "isdir": false, + "ctime": 1436810541.1135824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2065823, + "inode": 525947, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2681", + "xusr": false, + "atime": 1436810540.2065823, + "isdir": false, + "ctime": 1436810540.2065823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1525824, + "inode": 523389, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/123", + "xusr": false, + "atime": 1436810538.1525824, + "isdir": false, + "ctime": 1436810538.1525824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7875824, + "inode": 524210, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/944", + "xusr": false, + "atime": 1436810538.7875824, + "isdir": false, + "ctime": 1436810538.7875824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2055824, + "inode": 525946, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2680", + "xusr": false, + "atime": 1436810540.2055824, + "isdir": false, + "ctime": 1436810540.2055824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4025824, + "inode": 525027, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1761", + "xusr": false, + "atime": 1436810539.4025824, + "isdir": false, + "ctime": 1436810539.4025824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4915824, + "inode": 523816, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/550", + "xusr": false, + "atime": 1436810538.4915824, + "isdir": false, + "ctime": 1436810538.4915824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6615822, + "inode": 524048, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/782", + "xusr": false, + "atime": 1436810538.6615822, + "isdir": false, + "ctime": 1436810538.6615822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2775824, + "inode": 526028, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2762", + "xusr": false, + "atime": 1436810540.2775824, + "isdir": false, + "ctime": 1436810540.2775824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7285824, + "inode": 526605, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3339", + "xusr": false, + "atime": 1436810540.7285824, + "isdir": false, + "ctime": 1436810540.7285824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3195822, + "inode": 523619, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/353", + "xusr": false, + "atime": 1436810538.3195822, + "isdir": false, + "ctime": 1436810538.3195822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4635823, + "inode": 527578, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4312", + "xusr": false, + "atime": 1436810541.4635823, + "isdir": false, + "ctime": 1436810541.4635823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7365823, + "inode": 527955, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4689", + "xusr": false, + "atime": 1436810541.7365823, + "isdir": false, + "ctime": 1436810541.7365823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1255822, + "inode": 525866, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2600", + "xusr": false, + "atime": 1436810540.1255822, + "isdir": false, + "ctime": 1436810540.1255822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0135822, + "inode": 524519, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1253", + "xusr": false, + "atime": 1436810539.0135822, + "isdir": false, + "ctime": 1436810539.0135822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3865824, + "inode": 525012, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1746", + "xusr": false, + "atime": 1436810539.3865824, + "isdir": false, + "ctime": 1436810539.3865824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8465824, + "inode": 524289, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1023", + "xusr": false, + "atime": 1436810538.8465824, + "isdir": false, + "ctime": 1436810538.8465824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5955822, + "inode": 523957, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/691", + "xusr": false, + "atime": 1436810538.5955822, + "isdir": false, + "ctime": 1436810538.5955822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8815823, + "inode": 526819, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3553", + "xusr": false, + "atime": 1436810540.8815823, + "isdir": false, + "ctime": 1436810540.8815823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3495822, + "inode": 524981, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1715", + "xusr": false, + "atime": 1436810539.3495822, + "isdir": false, + "ctime": 1436810539.3495822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5155823, + "inode": 523849, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/583", + "xusr": false, + "atime": 1436810538.5155823, + "isdir": false, + "ctime": 1436810538.5155823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6095824, + "inode": 523978, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/712", + "xusr": false, + "atime": 1436810538.6095824, + "isdir": false, + "ctime": 1436810538.6095824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9745822, + "inode": 526951, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3685", + "xusr": false, + "atime": 1436810540.9745822, + "isdir": false, + "ctime": 1436810540.9745822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6215823, + "inode": 523993, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/727", + "xusr": false, + "atime": 1436810538.6215823, + "isdir": false, + "ctime": 1436810538.6215823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2765822, + "inode": 526027, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2761", + "xusr": false, + "atime": 1436810540.2765822, + "isdir": false, + "ctime": 1436810540.2765822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6315823, + "inode": 527811, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4545", + "xusr": false, + "atime": 1436810541.6315823, + "isdir": false, + "ctime": 1436810541.6315823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9705822, + "inode": 526945, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3679", + "xusr": false, + "atime": 1436810540.9705822, + "isdir": false, + "ctime": 1436810540.9705822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6915822, + "inode": 524089, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/823", + "xusr": false, + "atime": 1436810538.6915822, + "isdir": false, + "ctime": 1436810538.6915822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4305823, + "inode": 523730, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/464", + "xusr": false, + "atime": 1436810538.4305823, + "isdir": false, + "ctime": 1436810538.4305823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0015824, + "inode": 524501, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1235", + "xusr": false, + "atime": 1436810539.0015824, + "isdir": false, + "ctime": 1436810539.0015824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8955822, + "inode": 526839, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3573", + "xusr": false, + "atime": 1436810540.8955822, + "isdir": false, + "ctime": 1436810540.8955822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6775823, + "inode": 526533, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3267", + "xusr": false, + "atime": 1436810540.6775823, + "isdir": false, + "ctime": 1436810540.6775823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8325822, + "inode": 526751, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3485", + "xusr": false, + "atime": 1436810540.8325822, + "isdir": false, + "ctime": 1436810540.8325822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0265822, + "inode": 527020, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3754", + "xusr": false, + "atime": 1436810541.0265822, + "isdir": false, + "ctime": 1436810541.0265822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6215823, + "inode": 526455, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3189", + "xusr": false, + "atime": 1436810540.6215823, + "isdir": false, + "ctime": 1436810540.6215823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0565822, + "inode": 524579, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1313", + "xusr": false, + "atime": 1436810539.0565822, + "isdir": false, + "ctime": 1436810539.0565822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1985824, + "inode": 527256, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3990", + "xusr": false, + "atime": 1436810541.1985824, + "isdir": false, + "ctime": 1436810541.1985824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4155824, + "inode": 523717, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/451", + "xusr": false, + "atime": 1436810538.4155824, + "isdir": false, + "ctime": 1436810538.4155824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3035824, + "inode": 527401, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4135", + "xusr": false, + "atime": 1436810541.3035824, + "isdir": false, + "ctime": 1436810541.3035824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0105822, + "inode": 526999, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3733", + "xusr": false, + "atime": 1436810541.0105822, + "isdir": false, + "ctime": 1436810541.0105822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9045823, + "inode": 526852, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3586", + "xusr": false, + "atime": 1436810540.9045823, + "isdir": false, + "ctime": 1436810540.9045823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5575824, + "inode": 525177, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1911", + "xusr": false, + "atime": 1436810539.5575824, + "isdir": false, + "ctime": 1436810539.5575824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8755822, + "inode": 524329, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1063", + "xusr": false, + "atime": 1436810538.8755822, + "isdir": false, + "ctime": 1436810538.8755822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8905823, + "inode": 526832, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3566", + "xusr": false, + "atime": 1436810540.8905823, + "isdir": false, + "ctime": 1436810540.8905823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8305824, + "inode": 525493, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2227", + "xusr": false, + "atime": 1436810539.8305824, + "isdir": false, + "ctime": 1436810539.8305824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8645823, + "inode": 524313, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1047", + "xusr": false, + "atime": 1436810538.8645823, + "isdir": false, + "ctime": 1436810538.8645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0175824, + "inode": 527009, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3743", + "xusr": false, + "atime": 1436810541.0175824, + "isdir": false, + "ctime": 1436810541.0175824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8655822, + "inode": 528131, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4865", + "xusr": false, + "atime": 1436810541.8655822, + "isdir": false, + "ctime": 1436810541.8655822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2775824, + "inode": 526029, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2763", + "xusr": false, + "atime": 1436810540.2775824, + "isdir": false, + "ctime": 1436810540.2775824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7195823, + "inode": 526593, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3327", + "xusr": false, + "atime": 1436810540.7195823, + "isdir": false, + "ctime": 1436810540.7195823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4915824, + "inode": 527617, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4351", + "xusr": false, + "atime": 1436810541.4915824, + "isdir": false, + "ctime": 1436810541.4915824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4475822, + "inode": 527556, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4290", + "xusr": false, + "atime": 1436810541.4475822, + "isdir": false, + "ctime": 1436810541.4475822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4065824, + "inode": 527501, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4235", + "xusr": false, + "atime": 1436810541.4065824, + "isdir": false, + "ctime": 1436810541.4065824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5145824, + "inode": 526312, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3046", + "xusr": false, + "atime": 1436810540.5145824, + "isdir": false, + "ctime": 1436810540.5145824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0035822, + "inode": 526989, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3723", + "xusr": false, + "atime": 1436810541.0035822, + "isdir": false, + "ctime": 1436810541.0035822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0685823, + "inode": 524597, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1331", + "xusr": false, + "atime": 1436810539.0685823, + "isdir": false, + "ctime": 1436810539.0685823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6635823, + "inode": 527853, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4587", + "xusr": false, + "atime": 1436810541.6635823, + "isdir": false, + "ctime": 1436810541.6635823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6275823, + "inode": 524001, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/735", + "xusr": false, + "atime": 1436810538.6275823, + "isdir": false, + "ctime": 1436810538.6275823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2385824, + "inode": 527312, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4046", + "xusr": false, + "atime": 1436810541.2385824, + "isdir": false, + "ctime": 1436810541.2385824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8885822, + "inode": 525575, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2309", + "xusr": false, + "atime": 1436810539.8885822, + "isdir": false, + "ctime": 1436810539.8885822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3525822, + "inode": 526125, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2859", + "xusr": false, + "atime": 1436810540.3525822, + "isdir": false, + "ctime": 1436810540.3525822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2485824, + "inode": 525995, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2729", + "xusr": false, + "atime": 1436810540.2485824, + "isdir": false, + "ctime": 1436810540.2485824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4275823, + "inode": 527528, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4262", + "xusr": false, + "atime": 1436810541.4275823, + "isdir": false, + "ctime": 1436810541.4275823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4705822, + "inode": 526276, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3010", + "xusr": false, + "atime": 1436810540.4705822, + "isdir": false, + "ctime": 1436810540.4705822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8225822, + "inode": 526737, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3471", + "xusr": false, + "atime": 1436810540.8225822, + "isdir": false, + "ctime": 1436810540.8225822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5135822, + "inode": 523846, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/580", + "xusr": false, + "atime": 1436810538.5135822, + "isdir": false, + "ctime": 1436810538.5135822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9175823, + "inode": 524387, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1121", + "xusr": false, + "atime": 1436810538.9175823, + "isdir": false, + "ctime": 1436810538.9175823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9965823, + "inode": 524494, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1228", + "xusr": false, + "atime": 1436810538.9965823, + "isdir": false, + "ctime": 1436810538.9965823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2165823, + "inode": 524809, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1543", + "xusr": false, + "atime": 1436810539.2165823, + "isdir": false, + "ctime": 1436810539.2165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8345823, + "inode": 524273, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1007", + "xusr": false, + "atime": 1436810538.8345823, + "isdir": false, + "ctime": 1436810538.8345823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8735824, + "inode": 528142, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4876", + "xusr": false, + "atime": 1436810541.8735824, + "isdir": false, + "ctime": 1436810541.8735824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5495822, + "inode": 523895, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/629", + "xusr": false, + "atime": 1436810538.5495822, + "isdir": false, + "ctime": 1436810538.5495822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2925823, + "inode": 527388, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4122", + "xusr": false, + "atime": 1436810541.2925823, + "isdir": false, + "ctime": 1436810541.2925823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0015824, + "inode": 526987, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3721", + "xusr": false, + "atime": 1436810541.0015824, + "isdir": false, + "ctime": 1436810541.0015824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4815824, + "inode": 526286, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3020", + "xusr": false, + "atime": 1436810540.4815824, + "isdir": false, + "ctime": 1436810540.4815824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3135824, + "inode": 523613, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/347", + "xusr": false, + "atime": 1436810538.3135824, + "isdir": false, + "ctime": 1436810538.3135824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2355824, + "inode": 527308, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4042", + "xusr": false, + "atime": 1436810541.2355824, + "isdir": false, + "ctime": 1436810541.2355824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1075823, + "inode": 525849, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2583", + "xusr": false, + "atime": 1436810540.1075823, + "isdir": false, + "ctime": 1436810540.1075823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7825823, + "inode": 525431, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2165", + "xusr": false, + "atime": 1436810539.7825823, + "isdir": false, + "ctime": 1436810539.7825823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0865824, + "inode": 527105, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3839", + "xusr": false, + "atime": 1436810541.0865824, + "isdir": false, + "ctime": 1436810541.0865824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0725822, + "inode": 524603, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1337", + "xusr": false, + "atime": 1436810539.0725822, + "isdir": false, + "ctime": 1436810539.0725822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2815824, + "inode": 527372, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4106", + "xusr": false, + "atime": 1436810541.2815824, + "isdir": false, + "ctime": 1436810541.2815824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3665824, + "inode": 526144, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2878", + "xusr": false, + "atime": 1436810540.3665824, + "isdir": false, + "ctime": 1436810540.3665824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9535823, + "inode": 524434, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1168", + "xusr": false, + "atime": 1436810538.9535823, + "isdir": false, + "ctime": 1436810538.9535823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9745822, + "inode": 524465, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1199", + "xusr": false, + "atime": 1436810538.9745822, + "isdir": false, + "ctime": 1436810538.9745822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1885824, + "inode": 525927, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2661", + "xusr": false, + "atime": 1436810540.1885824, + "isdir": false, + "ctime": 1436810540.1885824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7555823, + "inode": 527981, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4715", + "xusr": false, + "atime": 1436810541.7555823, + "isdir": false, + "ctime": 1436810541.7555823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0715823, + "inode": 524601, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1335", + "xusr": false, + "atime": 1436810539.0715823, + "isdir": false, + "ctime": 1436810539.0715823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3795824, + "inode": 523672, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/406", + "xusr": false, + "atime": 1436810538.3795824, + "isdir": false, + "ctime": 1436810538.3795824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5725822, + "inode": 526387, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3121", + "xusr": false, + "atime": 1436810540.5725822, + "isdir": false, + "ctime": 1436810540.5725822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9025824, + "inode": 525595, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2329", + "xusr": false, + "atime": 1436810539.9025824, + "isdir": false, + "ctime": 1436810539.9025824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8575823, + "inode": 528120, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4854", + "xusr": false, + "atime": 1436810541.8575823, + "isdir": false, + "ctime": 1436810541.8575823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8475823, + "inode": 524290, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1024", + "xusr": false, + "atime": 1436810538.8475823, + "isdir": false, + "ctime": 1436810538.8475823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2975824, + "inode": 526049, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2783", + "xusr": false, + "atime": 1436810540.2975824, + "isdir": false, + "ctime": 1436810540.2975824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5025823, + "inode": 523831, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/565", + "xusr": false, + "atime": 1436810538.5025823, + "isdir": false, + "ctime": 1436810538.5025823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0065823, + "inode": 524508, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1242", + "xusr": false, + "atime": 1436810539.0065823, + "isdir": false, + "ctime": 1436810539.0065823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0725822, + "inode": 527085, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3819", + "xusr": false, + "atime": 1436810541.0725822, + "isdir": false, + "ctime": 1436810541.0725822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5665822, + "inode": 525190, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1924", + "xusr": false, + "atime": 1436810539.5665822, + "isdir": false, + "ctime": 1436810539.5665822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2395823, + "inode": 525985, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2719", + "xusr": false, + "atime": 1436810540.2395823, + "isdir": false, + "ctime": 1436810540.2395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0755823, + "inode": 523284, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/18", + "xusr": false, + "atime": 1436810538.0755823, + "isdir": false, + "ctime": 1436810538.0755823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2915823, + "inode": 527386, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4120", + "xusr": false, + "atime": 1436810541.2915823, + "isdir": false, + "ctime": 1436810541.2915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3895824, + "inode": 526177, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2911", + "xusr": false, + "atime": 1436810540.3895824, + "isdir": false, + "ctime": 1436810540.3895824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0055823, + "inode": 525736, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2470", + "xusr": false, + "atime": 1436810540.0055823, + "isdir": false, + "ctime": 1436810540.0055823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1875823, + "inode": 524767, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1501", + "xusr": false, + "atime": 1436810539.1875823, + "isdir": false, + "ctime": 1436810539.1875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8075824, + "inode": 524237, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/971", + "xusr": false, + "atime": 1436810538.8075824, + "isdir": false, + "ctime": 1436810538.8075824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1435823, + "inode": 524705, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1439", + "xusr": false, + "atime": 1436810539.1435823, + "isdir": false, + "ctime": 1436810539.1435823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4205823, + "inode": 527520, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4254", + "xusr": false, + "atime": 1436810541.4205823, + "isdir": false, + "ctime": 1436810541.4205823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6175823, + "inode": 527792, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4526", + "xusr": false, + "atime": 1436810541.6175823, + "isdir": false, + "ctime": 1436810541.6175823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7315824, + "inode": 527948, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4682", + "xusr": false, + "atime": 1436810541.7315824, + "isdir": false, + "ctime": 1436810541.7315824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5215824, + "inode": 527659, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4393", + "xusr": false, + "atime": 1436810541.5215824, + "isdir": false, + "ctime": 1436810541.5215824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5345824, + "inode": 526335, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3069", + "xusr": false, + "atime": 1436810540.5345824, + "isdir": false, + "ctime": 1436810540.5345824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1965823, + "inode": 525936, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2670", + "xusr": false, + "atime": 1436810540.1965823, + "isdir": false, + "ctime": 1436810540.1965823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7465823, + "inode": 526631, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3365", + "xusr": false, + "atime": 1436810540.7465823, + "isdir": false, + "ctime": 1436810540.7465823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5935824, + "inode": 523955, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/689", + "xusr": false, + "atime": 1436810538.5935824, + "isdir": false, + "ctime": 1436810538.5935824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1765823, + "inode": 524751, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1485", + "xusr": false, + "atime": 1436810539.1765823, + "isdir": false, + "ctime": 1436810539.1765823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2695823, + "inode": 526018, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2752", + "xusr": false, + "atime": 1436810540.2695823, + "isdir": false, + "ctime": 1436810540.2695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3625822, + "inode": 523656, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/390", + "xusr": false, + "atime": 1436810538.3625822, + "isdir": false, + "ctime": 1436810538.3625822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6315823, + "inode": 527810, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4544", + "xusr": false, + "atime": 1436810541.6315823, + "isdir": false, + "ctime": 1436810541.6315823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3175824, + "inode": 524949, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1683", + "xusr": false, + "atime": 1436810539.3175824, + "isdir": false, + "ctime": 1436810539.3175824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8085823, + "inode": 528054, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4788", + "xusr": false, + "atime": 1436810541.8085823, + "isdir": false, + "ctime": 1436810541.8085823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5745823, + "inode": 526390, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3124", + "xusr": false, + "atime": 1436810540.5745823, + "isdir": false, + "ctime": 1436810540.5745823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7875824, + "inode": 528025, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4759", + "xusr": false, + "atime": 1436810541.7875824, + "isdir": false, + "ctime": 1436810541.7875824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9265823, + "inode": 526884, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3618", + "xusr": false, + "atime": 1436810540.9265823, + "isdir": false, + "ctime": 1436810540.9265823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9055824, + "inode": 525600, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2334", + "xusr": false, + "atime": 1436810539.9055824, + "isdir": false, + "ctime": 1436810539.9055824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5245824, + "inode": 527662, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4396", + "xusr": false, + "atime": 1436810541.5245824, + "isdir": false, + "ctime": 1436810541.5245824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1935823, + "inode": 523448, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/182", + "xusr": false, + "atime": 1436810538.1935823, + "isdir": false, + "ctime": 1436810538.1935823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5695822, + "inode": 526382, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3116", + "xusr": false, + "atime": 1436810540.5695822, + "isdir": false, + "ctime": 1436810540.5695822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0065823, + "inode": 526994, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3728", + "xusr": false, + "atime": 1436810541.0065823, + "isdir": false, + "ctime": 1436810541.0065823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0865824, + "inode": 524623, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1357", + "xusr": false, + "atime": 1436810539.0865824, + "isdir": false, + "ctime": 1436810539.0865824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9535823, + "inode": 528254, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4988", + "xusr": false, + "atime": 1436810541.9535823, + "isdir": false, + "ctime": 1436810541.9535823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3355823, + "inode": 526102, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2836", + "xusr": false, + "atime": 1436810540.3355823, + "isdir": false, + "ctime": 1436810540.3355823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5125823, + "inode": 526310, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3044", + "xusr": false, + "atime": 1436810540.5125823, + "isdir": false, + "ctime": 1436810540.5125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5355823, + "inode": 525155, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1889", + "xusr": false, + "atime": 1436810539.5355823, + "isdir": false, + "ctime": 1436810539.5355823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7635822, + "inode": 526654, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3388", + "xusr": false, + "atime": 1436810540.7635822, + "isdir": false, + "ctime": 1436810540.7635822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4895823, + "inode": 523813, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/547", + "xusr": false, + "atime": 1436810538.4895823, + "isdir": false, + "ctime": 1436810538.4895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4675822, + "inode": 526272, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3006", + "xusr": false, + "atime": 1436810540.4675822, + "isdir": false, + "ctime": 1436810540.4675822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7205822, + "inode": 526594, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3328", + "xusr": false, + "atime": 1436810540.7205822, + "isdir": false, + "ctime": 1436810540.7205822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0055823, + "inode": 526992, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3726", + "xusr": false, + "atime": 1436810541.0055823, + "isdir": false, + "ctime": 1436810541.0055823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7835822, + "inode": 528019, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4753", + "xusr": false, + "atime": 1436810541.7835822, + "isdir": false, + "ctime": 1436810541.7835822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0895822, + "inode": 527109, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3843", + "xusr": false, + "atime": 1436810541.0895822, + "isdir": false, + "ctime": 1436810541.0895822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9215822, + "inode": 526876, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3610", + "xusr": false, + "atime": 1436810540.9215822, + "isdir": false, + "ctime": 1436810540.9215822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5875823, + "inode": 526407, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3141", + "xusr": false, + "atime": 1436810540.5875823, + "isdir": false, + "ctime": 1436810540.5875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7845824, + "inode": 524206, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/940", + "xusr": false, + "atime": 1436810538.7845824, + "isdir": false, + "ctime": 1436810538.7845824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3085823, + "inode": 523609, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/343", + "xusr": false, + "atime": 1436810538.3085823, + "isdir": false, + "ctime": 1436810538.3085823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1355822, + "inode": 523365, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/99", + "xusr": false, + "atime": 1436810538.1355822, + "isdir": false, + "ctime": 1436810538.1355822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6885824, + "inode": 526549, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3283", + "xusr": false, + "atime": 1436810540.6885824, + "isdir": false, + "ctime": 1436810540.6885824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5085824, + "inode": 527640, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4374", + "xusr": false, + "atime": 1436810541.5085824, + "isdir": false, + "ctime": 1436810541.5085824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3125823, + "inode": 526070, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2804", + "xusr": false, + "atime": 1436810540.3125823, + "isdir": false, + "ctime": 1436810540.3125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5005822, + "inode": 527630, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4364", + "xusr": false, + "atime": 1436810541.5005822, + "isdir": false, + "ctime": 1436810541.5005822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4695823, + "inode": 526274, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3008", + "xusr": false, + "atime": 1436810540.4695823, + "isdir": false, + "ctime": 1436810540.4695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2675824, + "inode": 526015, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2749", + "xusr": false, + "atime": 1436810540.2675824, + "isdir": false, + "ctime": 1436810540.2675824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7125823, + "inode": 525348, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2082", + "xusr": false, + "atime": 1436810539.7125823, + "isdir": false, + "ctime": 1436810539.7125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4405823, + "inode": 527546, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4280", + "xusr": false, + "atime": 1436810541.4405823, + "isdir": false, + "ctime": 1436810541.4405823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5965824, + "inode": 527763, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4497", + "xusr": false, + "atime": 1436810541.5965824, + "isdir": false, + "ctime": 1436810541.5965824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6005824, + "inode": 523965, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/699", + "xusr": false, + "atime": 1436810538.6005824, + "isdir": false, + "ctime": 1436810538.6005824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1575823, + "inode": 524725, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1459", + "xusr": false, + "atime": 1436810539.1575823, + "isdir": false, + "ctime": 1436810539.1575823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1265824, + "inode": 525867, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2601", + "xusr": false, + "atime": 1436810540.1265824, + "isdir": false, + "ctime": 1436810540.1265824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1665823, + "inode": 523409, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/143", + "xusr": false, + "atime": 1436810538.1665823, + "isdir": false, + "ctime": 1436810538.1665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3055823, + "inode": 527404, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4138", + "xusr": false, + "atime": 1436810541.3055823, + "isdir": false, + "ctime": 1436810541.3055823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8785822, + "inode": 524332, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1066", + "xusr": false, + "atime": 1436810538.8785822, + "isdir": false, + "ctime": 1436810538.8785822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2655823, + "inode": 526013, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2747", + "xusr": false, + "atime": 1436810540.2655823, + "isdir": false, + "ctime": 1436810540.2655823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5265822, + "inode": 526324, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3058", + "xusr": false, + "atime": 1436810540.5265822, + "isdir": false, + "ctime": 1436810540.5265822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2855823, + "inode": 527378, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4112", + "xusr": false, + "atime": 1436810541.2855823, + "isdir": false, + "ctime": 1436810541.2855823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1775823, + "inode": 523425, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/159", + "xusr": false, + "atime": 1436810538.1775823, + "isdir": false, + "ctime": 1436810538.1775823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9185822, + "inode": 526872, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3606", + "xusr": false, + "atime": 1436810540.9185822, + "isdir": false, + "ctime": 1436810540.9185822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8495822, + "inode": 525520, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2254", + "xusr": false, + "atime": 1436810539.8495822, + "isdir": false, + "ctime": 1436810539.8495822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6285822, + "inode": 524002, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/736", + "xusr": false, + "atime": 1436810538.6285822, + "isdir": false, + "ctime": 1436810538.6285822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0005822, + "inode": 525729, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2463", + "xusr": false, + "atime": 1436810540.0005822, + "isdir": false, + "ctime": 1436810540.0005822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2145822, + "inode": 527278, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4012", + "xusr": false, + "atime": 1436810541.2145822, + "isdir": false, + "ctime": 1436810541.2145822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5565822, + "inode": 527707, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4441", + "xusr": false, + "atime": 1436810541.5565822, + "isdir": false, + "ctime": 1436810541.5565822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1395824, + "inode": 524699, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1433", + "xusr": false, + "atime": 1436810539.1395824, + "isdir": false, + "ctime": 1436810539.1395824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6895823, + "inode": 526550, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3284", + "xusr": false, + "atime": 1436810540.6895823, + "isdir": false, + "ctime": 1436810540.6895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5355823, + "inode": 526336, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3070", + "xusr": false, + "atime": 1436810540.5355823, + "isdir": false, + "ctime": 1436810540.5355823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0115824, + "inode": 524516, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1250", + "xusr": false, + "atime": 1436810539.0115824, + "isdir": false, + "ctime": 1436810539.0115824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4935822, + "inode": 525114, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1848", + "xusr": false, + "atime": 1436810539.4935822, + "isdir": false, + "ctime": 1436810539.4935822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8165822, + "inode": 525474, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2208", + "xusr": false, + "atime": 1436810539.8165822, + "isdir": false, + "ctime": 1436810539.8165822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5505824, + "inode": 523896, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/630", + "xusr": false, + "atime": 1436810538.5505824, + "isdir": false, + "ctime": 1436810538.5505824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5675824, + "inode": 526380, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3114", + "xusr": false, + "atime": 1436810540.5675824, + "isdir": false, + "ctime": 1436810540.5675824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6765823, + "inode": 524068, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/802", + "xusr": false, + "atime": 1436810538.6765823, + "isdir": false, + "ctime": 1436810538.6765823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4175823, + "inode": 526216, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2950", + "xusr": false, + "atime": 1436810540.4175823, + "isdir": false, + "ctime": 1436810540.4175823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7785823, + "inode": 526675, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3409", + "xusr": false, + "atime": 1436810540.7785823, + "isdir": false, + "ctime": 1436810540.7785823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2445824, + "inode": 525990, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2724", + "xusr": false, + "atime": 1436810540.2445824, + "isdir": false, + "ctime": 1436810540.2445824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2275822, + "inode": 524825, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1559", + "xusr": false, + "atime": 1436810539.2275822, + "isdir": false, + "ctime": 1436810539.2275822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6615822, + "inode": 527850, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4584", + "xusr": false, + "atime": 1436810541.6615822, + "isdir": false, + "ctime": 1436810541.6615822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3175824, + "inode": 526076, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2810", + "xusr": false, + "atime": 1436810540.3175824, + "isdir": false, + "ctime": 1436810540.3175824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1725824, + "inode": 527221, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3955", + "xusr": false, + "atime": 1436810541.1725824, + "isdir": false, + "ctime": 1436810541.1725824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1275823, + "inode": 523353, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/87", + "xusr": false, + "atime": 1436810538.1275823, + "isdir": false, + "ctime": 1436810538.1275823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2375822, + "inode": 523509, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/243", + "xusr": false, + "atime": 1436810538.2375822, + "isdir": false, + "ctime": 1436810538.2375822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8465824, + "inode": 526770, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3504", + "xusr": false, + "atime": 1436810540.8465824, + "isdir": false, + "ctime": 1436810540.8465824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1895823, + "inode": 527244, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3978", + "xusr": false, + "atime": 1436810541.1895823, + "isdir": false, + "ctime": 1436810541.1895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8765824, + "inode": 524330, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1064", + "xusr": false, + "atime": 1436810538.8765824, + "isdir": false, + "ctime": 1436810538.8765824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9115822, + "inode": 524377, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1111", + "xusr": false, + "atime": 1436810538.9115822, + "isdir": false, + "ctime": 1436810538.9115822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1365824, + "inode": 527174, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3908", + "xusr": false, + "atime": 1436810541.1365824, + "isdir": false, + "ctime": 1436810541.1365824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2865822, + "inode": 527380, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4114", + "xusr": false, + "atime": 1436810541.2865822, + "isdir": false, + "ctime": 1436810541.2865822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4655824, + "inode": 527581, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4315", + "xusr": false, + "atime": 1436810541.4655824, + "isdir": false, + "ctime": 1436810541.4655824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6385822, + "inode": 526479, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3213", + "xusr": false, + "atime": 1436810540.6385822, + "isdir": false, + "ctime": 1436810540.6385822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0555823, + "inode": 527061, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3795", + "xusr": false, + "atime": 1436810541.0555823, + "isdir": false, + "ctime": 1436810541.0555823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4585824, + "inode": 523769, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/503", + "xusr": false, + "atime": 1436810538.4585824, + "isdir": false, + "ctime": 1436810538.4585824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9235823, + "inode": 526879, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3613", + "xusr": false, + "atime": 1436810540.9235823, + "isdir": false, + "ctime": 1436810540.9235823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1495824, + "inode": 523385, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/119", + "xusr": false, + "atime": 1436810538.1495824, + "isdir": false, + "ctime": 1436810538.1495824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6235824, + "inode": 523995, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/729", + "xusr": false, + "atime": 1436810538.6235824, + "isdir": false, + "ctime": 1436810538.6235824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4285824, + "inode": 526232, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2966", + "xusr": false, + "atime": 1436810540.4285824, + "isdir": false, + "ctime": 1436810540.4285824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0515823, + "inode": 524573, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1307", + "xusr": false, + "atime": 1436810539.0515823, + "isdir": false, + "ctime": 1436810539.0515823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3335824, + "inode": 527432, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4166", + "xusr": false, + "atime": 1436810541.3335824, + "isdir": false, + "ctime": 1436810541.3335824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7175822, + "inode": 527929, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4663", + "xusr": false, + "atime": 1436810541.7175822, + "isdir": false, + "ctime": 1436810541.7175822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6995823, + "inode": 526564, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3298", + "xusr": false, + "atime": 1436810540.6995823, + "isdir": false, + "ctime": 1436810540.6995823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9745822, + "inode": 526950, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3684", + "xusr": false, + "atime": 1436810540.9745822, + "isdir": false, + "ctime": 1436810540.9745822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9205823, + "inode": 525619, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2353", + "xusr": false, + "atime": 1436810539.9205823, + "isdir": false, + "ctime": 1436810539.9205823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8925824, + "inode": 526835, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3569", + "xusr": false, + "atime": 1436810540.8925824, + "isdir": false, + "ctime": 1436810540.8925824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8905823, + "inode": 525578, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2312", + "xusr": false, + "atime": 1436810539.8905823, + "isdir": false, + "ctime": 1436810539.8905823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6615822, + "inode": 524047, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/781", + "xusr": false, + "atime": 1436810538.6615822, + "isdir": false, + "ctime": 1436810538.6615822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4185822, + "inode": 523721, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/455", + "xusr": false, + "atime": 1436810538.4185822, + "isdir": false, + "ctime": 1436810538.4185822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8405824, + "inode": 528097, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4831", + "xusr": false, + "atime": 1436810541.8405824, + "isdir": false, + "ctime": 1436810541.8405824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7825823, + "inode": 526680, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3414", + "xusr": false, + "atime": 1436810540.7825823, + "isdir": false, + "ctime": 1436810540.7825823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8245823, + "inode": 524259, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/993", + "xusr": false, + "atime": 1436810538.8245823, + "isdir": false, + "ctime": 1436810538.8245823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6245823, + "inode": 525256, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1990", + "xusr": false, + "atime": 1436810539.6245823, + "isdir": false, + "ctime": 1436810539.6245823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4095824, + "inode": 523709, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/443", + "xusr": false, + "atime": 1436810538.4095824, + "isdir": false, + "ctime": 1436810538.4095824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3645823, + "inode": 523659, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/393", + "xusr": false, + "atime": 1436810538.3645823, + "isdir": false, + "ctime": 1436810538.3645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2145822, + "inode": 524806, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1540", + "xusr": false, + "atime": 1436810539.2145822, + "isdir": false, + "ctime": 1436810539.2145822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8525822, + "inode": 525525, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2259", + "xusr": false, + "atime": 1436810539.8525822, + "isdir": false, + "ctime": 1436810539.8525822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1925824, + "inode": 525932, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2666", + "xusr": false, + "atime": 1436810540.1925824, + "isdir": false, + "ctime": 1436810540.1925824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7055824, + "inode": 525341, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2075", + "xusr": false, + "atime": 1436810539.7055824, + "isdir": false, + "ctime": 1436810539.7055824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6855824, + "inode": 526544, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3278", + "xusr": false, + "atime": 1436810540.6855824, + "isdir": false, + "ctime": 1436810540.6855824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9795823, + "inode": 526958, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3692", + "xusr": false, + "atime": 1436810540.9795823, + "isdir": false, + "ctime": 1436810540.9795823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6965823, + "inode": 524096, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/830", + "xusr": false, + "atime": 1436810538.6965823, + "isdir": false, + "ctime": 1436810538.6965823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7675824, + "inode": 527997, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4731", + "xusr": false, + "atime": 1436810541.7675824, + "isdir": false, + "ctime": 1436810541.7675824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0005822, + "inode": 526985, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3719", + "xusr": false, + "atime": 1436810541.0005822, + "isdir": false, + "ctime": 1436810541.0005822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2525823, + "inode": 527331, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4065", + "xusr": false, + "atime": 1436810541.2525823, + "isdir": false, + "ctime": 1436810541.2525823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0465822, + "inode": 525791, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2525", + "xusr": false, + "atime": 1436810540.0465822, + "isdir": false, + "ctime": 1436810540.0465822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8545823, + "inode": 525528, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2262", + "xusr": false, + "atime": 1436810539.8545823, + "isdir": false, + "ctime": 1436810539.8545823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0425823, + "inode": 525786, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2520", + "xusr": false, + "atime": 1436810540.0425823, + "isdir": false, + "ctime": 1436810540.0425823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8595824, + "inode": 528123, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4857", + "xusr": false, + "atime": 1436810541.8595824, + "isdir": false, + "ctime": 1436810541.8595824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5805824, + "inode": 526398, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3132", + "xusr": false, + "atime": 1436810540.5805824, + "isdir": false, + "ctime": 1436810540.5805824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0875823, + "inode": 527106, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3840", + "xusr": false, + "atime": 1436810541.0875823, + "isdir": false, + "ctime": 1436810541.0875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4145823, + "inode": 525041, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1775", + "xusr": false, + "atime": 1436810539.4145823, + "isdir": false, + "ctime": 1436810539.4145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5525823, + "inode": 525172, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1906", + "xusr": false, + "atime": 1436810539.5525823, + "isdir": false, + "ctime": 1436810539.5525823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5045824, + "inode": 523833, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/567", + "xusr": false, + "atime": 1436810538.5045824, + "isdir": false, + "ctime": 1436810538.5045824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3085823, + "inode": 527408, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4142", + "xusr": false, + "atime": 1436810541.3085823, + "isdir": false, + "ctime": 1436810541.3085823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3855822, + "inode": 523680, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/414", + "xusr": false, + "atime": 1436810538.3855822, + "isdir": false, + "ctime": 1436810538.3855822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5485823, + "inode": 527696, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4430", + "xusr": false, + "atime": 1436810541.5485823, + "isdir": false, + "ctime": 1436810541.5485823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9165823, + "inode": 524385, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1119", + "xusr": false, + "atime": 1436810538.9165823, + "isdir": false, + "ctime": 1436810538.9165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8555822, + "inode": 528117, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4851", + "xusr": false, + "atime": 1436810541.8555822, + "isdir": false, + "ctime": 1436810541.8555822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6855824, + "inode": 524081, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/815", + "xusr": false, + "atime": 1436810538.6855824, + "isdir": false, + "ctime": 1436810538.6855824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9365823, + "inode": 528230, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4964", + "xusr": false, + "atime": 1436810541.9365823, + "isdir": false, + "ctime": 1436810541.9365823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8415823, + "inode": 524283, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1017", + "xusr": false, + "atime": 1436810538.8415823, + "isdir": false, + "ctime": 1436810538.8415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7815824, + "inode": 528016, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4750", + "xusr": false, + "atime": 1436810541.7815824, + "isdir": false, + "ctime": 1436810541.7815824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0935824, + "inode": 524633, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1367", + "xusr": false, + "atime": 1436810539.0935824, + "isdir": false, + "ctime": 1436810539.0935824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2885823, + "inode": 527382, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4116", + "xusr": false, + "atime": 1436810541.2885823, + "isdir": false, + "ctime": 1436810541.2885823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8265822, + "inode": 528078, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4812", + "xusr": false, + "atime": 1436810541.8265822, + "isdir": false, + "ctime": 1436810541.8265822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1125822, + "inode": 524660, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1394", + "xusr": false, + "atime": 1436810539.1125822, + "isdir": false, + "ctime": 1436810539.1125822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9165823, + "inode": 525614, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2348", + "xusr": false, + "atime": 1436810539.9165823, + "isdir": false, + "ctime": 1436810539.9165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5135822, + "inode": 526311, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3045", + "xusr": false, + "atime": 1436810540.5135822, + "isdir": false, + "ctime": 1436810540.5135822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9175823, + "inode": 528204, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4938", + "xusr": false, + "atime": 1436810541.9175823, + "isdir": false, + "ctime": 1436810541.9175823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9225824, + "inode": 528211, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4945", + "xusr": false, + "atime": 1436810541.9225824, + "isdir": false, + "ctime": 1436810541.9225824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0155823, + "inode": 524521, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1255", + "xusr": false, + "atime": 1436810539.0155823, + "isdir": false, + "ctime": 1436810539.0155823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1495824, + "inode": 524714, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1448", + "xusr": false, + "atime": 1436810539.1495824, + "isdir": false, + "ctime": 1436810539.1495824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0715823, + "inode": 525815, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2549", + "xusr": false, + "atime": 1436810540.0715823, + "isdir": false, + "ctime": 1436810540.0715823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3475823, + "inode": 523647, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/381", + "xusr": false, + "atime": 1436810538.3475823, + "isdir": false, + "ctime": 1436810538.3475823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1945822, + "inode": 525935, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2669", + "xusr": false, + "atime": 1436810540.1945822, + "isdir": false, + "ctime": 1436810540.1945822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4915824, + "inode": 525112, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1846", + "xusr": false, + "atime": 1436810539.4915824, + "isdir": false, + "ctime": 1436810539.4915824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1085823, + "inode": 525850, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2584", + "xusr": false, + "atime": 1436810540.1085823, + "isdir": false, + "ctime": 1436810540.1085823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2835822, + "inode": 526034, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2768", + "xusr": false, + "atime": 1436810540.2835822, + "isdir": false, + "ctime": 1436810540.2835822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8205824, + "inode": 524254, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/988", + "xusr": false, + "atime": 1436810538.8205824, + "isdir": false, + "ctime": 1436810538.8205824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9475822, + "inode": 525656, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2390", + "xusr": false, + "atime": 1436810539.9475822, + "isdir": false, + "ctime": 1436810539.9475822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7465823, + "inode": 524159, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/893", + "xusr": false, + "atime": 1436810538.7465823, + "isdir": false, + "ctime": 1436810538.7465823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5575824, + "inode": 526366, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3100", + "xusr": false, + "atime": 1436810540.5575824, + "isdir": false, + "ctime": 1436810540.5575824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8105824, + "inode": 526720, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3454", + "xusr": false, + "atime": 1436810540.8105824, + "isdir": false, + "ctime": 1436810540.8105824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9325824, + "inode": 525636, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2370", + "xusr": false, + "atime": 1436810539.9325824, + "isdir": false, + "ctime": 1436810539.9325824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5185823, + "inode": 525137, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1871", + "xusr": false, + "atime": 1436810539.5185823, + "isdir": false, + "ctime": 1436810539.5185823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7035823, + "inode": 525340, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2074", + "xusr": false, + "atime": 1436810539.7035823, + "isdir": false, + "ctime": 1436810539.7035823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7125823, + "inode": 526583, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3317", + "xusr": false, + "atime": 1436810540.7125823, + "isdir": false, + "ctime": 1436810540.7125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7415824, + "inode": 524153, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/887", + "xusr": false, + "atime": 1436810538.7415824, + "isdir": false, + "ctime": 1436810538.7415824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9135823, + "inode": 526865, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3599", + "xusr": false, + "atime": 1436810540.9135823, + "isdir": false, + "ctime": 1436810540.9135823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5695822, + "inode": 525194, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1928", + "xusr": false, + "atime": 1436810539.5695822, + "isdir": false, + "ctime": 1436810539.5695822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0925822, + "inode": 527113, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3847", + "xusr": false, + "atime": 1436810541.0925822, + "isdir": false, + "ctime": 1436810541.0925822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6795824, + "inode": 524072, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/806", + "xusr": false, + "atime": 1436810538.6795824, + "isdir": false, + "ctime": 1436810538.6795824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9355824, + "inode": 528229, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4963", + "xusr": false, + "atime": 1436810541.9355824, + "isdir": false, + "ctime": 1436810541.9355824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8625822, + "inode": 526792, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3526", + "xusr": false, + "atime": 1436810540.8625822, + "isdir": false, + "ctime": 1436810540.8625822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5385823, + "inode": 526340, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3074", + "xusr": false, + "atime": 1436810540.5385823, + "isdir": false, + "ctime": 1436810540.5385823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8665824, + "inode": 525544, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2278", + "xusr": false, + "atime": 1436810539.8665824, + "isdir": false, + "ctime": 1436810539.8665824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1615822, + "inode": 524730, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1464", + "xusr": false, + "atime": 1436810539.1615822, + "isdir": false, + "ctime": 1436810539.1615822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1805823, + "inode": 527231, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3965", + "xusr": false, + "atime": 1436810541.1805823, + "isdir": false, + "ctime": 1436810541.1805823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4635823, + "inode": 526267, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3001", + "xusr": false, + "atime": 1436810540.4635823, + "isdir": false, + "ctime": 1436810540.4635823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8345823, + "inode": 528089, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4823", + "xusr": false, + "atime": 1436810541.8345823, + "isdir": false, + "ctime": 1436810541.8345823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9245822, + "inode": 526881, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3615", + "xusr": false, + "atime": 1436810540.9245822, + "isdir": false, + "ctime": 1436810540.9245822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7975824, + "inode": 526702, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3436", + "xusr": false, + "atime": 1436810540.7975824, + "isdir": false, + "ctime": 1436810540.7975824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1055822, + "inode": 527131, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3865", + "xusr": false, + "atime": 1436810541.1055822, + "isdir": false, + "ctime": 1436810541.1055822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7235823, + "inode": 525359, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2093", + "xusr": false, + "atime": 1436810539.7235823, + "isdir": false, + "ctime": 1436810539.7235823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6905823, + "inode": 526551, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3285", + "xusr": false, + "atime": 1436810540.6905823, + "isdir": false, + "ctime": 1436810540.6905823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4665823, + "inode": 527582, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4316", + "xusr": false, + "atime": 1436810541.4665823, + "isdir": false, + "ctime": 1436810541.4665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7585824, + "inode": 527984, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4718", + "xusr": false, + "atime": 1436810541.7585824, + "isdir": false, + "ctime": 1436810541.7585824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9375823, + "inode": 526899, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3633", + "xusr": false, + "atime": 1436810540.9375823, + "isdir": false, + "ctime": 1436810540.9375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7555823, + "inode": 526643, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3377", + "xusr": false, + "atime": 1436810540.7555823, + "isdir": false, + "ctime": 1436810540.7555823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4775822, + "inode": 527598, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4332", + "xusr": false, + "atime": 1436810541.4775822, + "isdir": false, + "ctime": 1436810541.4775822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2115824, + "inode": 525954, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2688", + "xusr": false, + "atime": 1436810540.2115824, + "isdir": false, + "ctime": 1436810540.2115824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3285823, + "inode": 523625, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/359", + "xusr": false, + "atime": 1436810538.3285823, + "isdir": false, + "ctime": 1436810538.3285823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4375823, + "inode": 527542, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4276", + "xusr": false, + "atime": 1436810541.4375823, + "isdir": false, + "ctime": 1436810541.4375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2755823, + "inode": 526025, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2759", + "xusr": false, + "atime": 1436810540.2755823, + "isdir": false, + "ctime": 1436810540.2755823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5675824, + "inode": 526379, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3113", + "xusr": false, + "atime": 1436810540.5675824, + "isdir": false, + "ctime": 1436810540.5675824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8035824, + "inode": 526711, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3445", + "xusr": false, + "atime": 1436810540.8035824, + "isdir": false, + "ctime": 1436810540.8035824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1595824, + "inode": 525899, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2633", + "xusr": false, + "atime": 1436810540.1595824, + "isdir": false, + "ctime": 1436810540.1595824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7935822, + "inode": 528034, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4768", + "xusr": false, + "atime": 1436810541.7935822, + "isdir": false, + "ctime": 1436810541.7935822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6545823, + "inode": 526500, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3234", + "xusr": false, + "atime": 1436810540.6545823, + "isdir": false, + "ctime": 1436810540.6545823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2935822, + "inode": 526044, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2778", + "xusr": false, + "atime": 1436810540.2935822, + "isdir": false, + "ctime": 1436810540.2935822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5315824, + "inode": 526331, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3065", + "xusr": false, + "atime": 1436810540.5315824, + "isdir": false, + "ctime": 1436810540.5315824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0925822, + "inode": 525837, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2571", + "xusr": false, + "atime": 1436810540.0925822, + "isdir": false, + "ctime": 1436810540.0925822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8725822, + "inode": 528141, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4875", + "xusr": false, + "atime": 1436810541.8725822, + "isdir": false, + "ctime": 1436810541.8725822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7745824, + "inode": 524194, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/928", + "xusr": false, + "atime": 1436810538.7745824, + "isdir": false, + "ctime": 1436810538.7745824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4725823, + "inode": 526277, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3011", + "xusr": false, + "atime": 1436810540.4725823, + "isdir": false, + "ctime": 1436810540.4725823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5515823, + "inode": 525171, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1905", + "xusr": false, + "atime": 1436810539.5515823, + "isdir": false, + "ctime": 1436810539.5515823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3475823, + "inode": 526118, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2852", + "xusr": false, + "atime": 1436810540.3475823, + "isdir": false, + "ctime": 1436810540.3475823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7745824, + "inode": 525420, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2154", + "xusr": false, + "atime": 1436810539.7745824, + "isdir": false, + "ctime": 1436810539.7745824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8135824, + "inode": 525469, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2203", + "xusr": false, + "atime": 1436810539.8135824, + "isdir": false, + "ctime": 1436810539.8135824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1415823, + "inode": 527181, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3915", + "xusr": false, + "atime": 1436810541.1415823, + "isdir": false, + "ctime": 1436810541.1415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7375822, + "inode": 526619, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3353", + "xusr": false, + "atime": 1436810540.7375822, + "isdir": false, + "ctime": 1436810540.7375822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5735824, + "inode": 525200, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1934", + "xusr": false, + "atime": 1436810539.5735824, + "isdir": false, + "ctime": 1436810539.5735824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5105822, + "inode": 527644, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4378", + "xusr": false, + "atime": 1436810541.5105822, + "isdir": false, + "ctime": 1436810541.5105822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2805824, + "inode": 523571, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/305", + "xusr": false, + "atime": 1436810538.2805824, + "isdir": false, + "ctime": 1436810538.2805824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2855823, + "inode": 523578, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/312", + "xusr": false, + "atime": 1436810538.2855823, + "isdir": false, + "ctime": 1436810538.2855823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0925822, + "inode": 524632, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1366", + "xusr": false, + "atime": 1436810539.0925822, + "isdir": false, + "ctime": 1436810539.0925822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6325824, + "inode": 527812, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4546", + "xusr": false, + "atime": 1436810541.6325824, + "isdir": false, + "ctime": 1436810541.6325824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1425824, + "inode": 525883, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2617", + "xusr": false, + "atime": 1436810540.1425824, + "isdir": false, + "ctime": 1436810540.1425824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3325822, + "inode": 524963, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1697", + "xusr": false, + "atime": 1436810539.3325822, + "isdir": false, + "ctime": 1436810539.3325822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2315824, + "inode": 527302, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4036", + "xusr": false, + "atime": 1436810541.2315824, + "isdir": false, + "ctime": 1436810541.2315824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4575822, + "inode": 523768, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/502", + "xusr": false, + "atime": 1436810538.4575822, + "isdir": false, + "ctime": 1436810538.4575822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5785823, + "inode": 527738, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4472", + "xusr": false, + "atime": 1436810541.5785823, + "isdir": false, + "ctime": 1436810541.5785823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0315824, + "inode": 525770, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2504", + "xusr": false, + "atime": 1436810540.0315824, + "isdir": false, + "ctime": 1436810540.0315824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7505822, + "inode": 527973, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4707", + "xusr": false, + "atime": 1436810541.7505822, + "isdir": false, + "ctime": 1436810541.7505822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8685822, + "inode": 528135, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4869", + "xusr": false, + "atime": 1436810541.8685822, + "isdir": false, + "ctime": 1436810541.8685822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5385823, + "inode": 527682, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4416", + "xusr": false, + "atime": 1436810541.5385823, + "isdir": false, + "ctime": 1436810541.5385823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3775823, + "inode": 526160, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2894", + "xusr": false, + "atime": 1436810540.3775823, + "isdir": false, + "ctime": 1436810540.3775823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5045824, + "inode": 526302, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3036", + "xusr": false, + "atime": 1436810540.5045824, + "isdir": false, + "ctime": 1436810540.5045824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2095823, + "inode": 523471, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/205", + "xusr": false, + "atime": 1436810538.2095823, + "isdir": false, + "ctime": 1436810538.2095823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6285822, + "inode": 525261, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1995", + "xusr": false, + "atime": 1436810539.6285822, + "isdir": false, + "ctime": 1436810539.6285822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1635823, + "inode": 524734, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1468", + "xusr": false, + "atime": 1436810539.1635823, + "isdir": false, + "ctime": 1436810539.1635823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3655822, + "inode": 526143, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2877", + "xusr": false, + "atime": 1436810540.3655822, + "isdir": false, + "ctime": 1436810540.3655822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4795823, + "inode": 527600, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4334", + "xusr": false, + "atime": 1436810541.4795823, + "isdir": false, + "ctime": 1436810541.4795823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4155824, + "inode": 525043, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1777", + "xusr": false, + "atime": 1436810539.4155824, + "isdir": false, + "ctime": 1436810539.4155824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0115824, + "inode": 524515, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1249", + "xusr": false, + "atime": 1436810539.0115824, + "isdir": false, + "ctime": 1436810539.0115824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6865823, + "inode": 526546, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3280", + "xusr": false, + "atime": 1436810540.6865823, + "isdir": false, + "ctime": 1436810540.6865823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3985822, + "inode": 523693, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/427", + "xusr": false, + "atime": 1436810538.3985822, + "isdir": false, + "ctime": 1436810538.3985822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6455822, + "inode": 526489, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3223", + "xusr": false, + "atime": 1436810540.6455822, + "isdir": false, + "ctime": 1436810540.6455822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7325823, + "inode": 526611, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3345", + "xusr": false, + "atime": 1436810540.7325823, + "isdir": false, + "ctime": 1436810540.7325823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8195822, + "inode": 524253, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/987", + "xusr": false, + "atime": 1436810538.8195822, + "isdir": false, + "ctime": 1436810538.8195822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6015823, + "inode": 523966, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/700", + "xusr": false, + "atime": 1436810538.6015823, + "isdir": false, + "ctime": 1436810538.6015823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2745824, + "inode": 526024, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2758", + "xusr": false, + "atime": 1436810540.2745824, + "isdir": false, + "ctime": 1436810540.2745824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7995822, + "inode": 526704, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3438", + "xusr": false, + "atime": 1436810540.7995822, + "isdir": false, + "ctime": 1436810540.7995822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4245822, + "inode": 526226, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2960", + "xusr": false, + "atime": 1436810540.4245822, + "isdir": false, + "ctime": 1436810540.4245822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8345823, + "inode": 525499, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2233", + "xusr": false, + "atime": 1436810539.8345823, + "isdir": false, + "ctime": 1436810539.8345823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1185822, + "inode": 525858, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2592", + "xusr": false, + "atime": 1436810540.1185822, + "isdir": false, + "ctime": 1436810540.1185822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7445824, + "inode": 524157, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/891", + "xusr": false, + "atime": 1436810538.7445824, + "isdir": false, + "ctime": 1436810538.7445824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7175822, + "inode": 527928, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4662", + "xusr": false, + "atime": 1436810541.7175822, + "isdir": false, + "ctime": 1436810541.7175822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4495823, + "inode": 527559, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4293", + "xusr": false, + "atime": 1436810541.4495823, + "isdir": false, + "ctime": 1436810541.4495823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9595823, + "inode": 528262, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4996", + "xusr": false, + "atime": 1436810541.9595823, + "isdir": false, + "ctime": 1436810541.9595823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7505822, + "inode": 527974, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4708", + "xusr": false, + "atime": 1436810541.7505822, + "isdir": false, + "ctime": 1436810541.7505822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0715823, + "inode": 527083, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3817", + "xusr": false, + "atime": 1436810541.0715823, + "isdir": false, + "ctime": 1436810541.0715823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2415824, + "inode": 527316, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4050", + "xusr": false, + "atime": 1436810541.2415824, + "isdir": false, + "ctime": 1436810541.2415824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9385824, + "inode": 525644, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2378", + "xusr": false, + "atime": 1436810539.9385824, + "isdir": false, + "ctime": 1436810539.9385824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9345822, + "inode": 528227, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4961", + "xusr": false, + "atime": 1436810541.9345822, + "isdir": false, + "ctime": 1436810541.9345822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3815823, + "inode": 527474, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4208", + "xusr": false, + "atime": 1436810541.3815823, + "isdir": false, + "ctime": 1436810541.3815823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8605824, + "inode": 524308, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1042", + "xusr": false, + "atime": 1436810538.8605824, + "isdir": false, + "ctime": 1436810538.8605824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9435823, + "inode": 528240, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4974", + "xusr": false, + "atime": 1436810541.9435823, + "isdir": false, + "ctime": 1436810541.9435823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1945822, + "inode": 523450, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/184", + "xusr": false, + "atime": 1436810538.1945822, + "isdir": false, + "ctime": 1436810538.1945822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2945824, + "inode": 524922, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1656", + "xusr": false, + "atime": 1436810539.2945824, + "isdir": false, + "ctime": 1436810539.2945824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6825824, + "inode": 526540, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3274", + "xusr": false, + "atime": 1436810540.6825824, + "isdir": false, + "ctime": 1436810540.6825824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5945823, + "inode": 527760, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4494", + "xusr": false, + "atime": 1436810541.5945823, + "isdir": false, + "ctime": 1436810541.5945823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3435824, + "inode": 523640, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/374", + "xusr": false, + "atime": 1436810538.3435824, + "isdir": false, + "ctime": 1436810538.3435824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5545824, + "inode": 526361, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3095", + "xusr": false, + "atime": 1436810540.5545824, + "isdir": false, + "ctime": 1436810540.5545824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3985822, + "inode": 523694, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/428", + "xusr": false, + "atime": 1436810538.3985822, + "isdir": false, + "ctime": 1436810538.3985822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2515824, + "inode": 523529, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/263", + "xusr": false, + "atime": 1436810538.2515824, + "isdir": false, + "ctime": 1436810538.2515824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2935822, + "inode": 527389, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4123", + "xusr": false, + "atime": 1436810541.2935822, + "isdir": false, + "ctime": 1436810541.2935822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9795823, + "inode": 526957, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3691", + "xusr": false, + "atime": 1436810540.9795823, + "isdir": false, + "ctime": 1436810540.9795823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7805824, + "inode": 528015, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4749", + "xusr": false, + "atime": 1436810541.7805824, + "isdir": false, + "ctime": 1436810541.7805824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8475823, + "inode": 528106, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4840", + "xusr": false, + "atime": 1436810541.8475823, + "isdir": false, + "ctime": 1436810541.8475823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2195823, + "inode": 524814, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1548", + "xusr": false, + "atime": 1436810539.2195823, + "isdir": false, + "ctime": 1436810539.2195823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6205823, + "inode": 525250, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1984", + "xusr": false, + "atime": 1436810539.6205823, + "isdir": false, + "ctime": 1436810539.6205823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7705822, + "inode": 524189, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/923", + "xusr": false, + "atime": 1436810538.7705822, + "isdir": false, + "ctime": 1436810538.7705822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8135824, + "inode": 526725, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3459", + "xusr": false, + "atime": 1436810540.8135824, + "isdir": false, + "ctime": 1436810540.8135824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4895823, + "inode": 527615, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4349", + "xusr": false, + "atime": 1436810541.4895823, + "isdir": false, + "ctime": 1436810541.4895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8345823, + "inode": 525500, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2234", + "xusr": false, + "atime": 1436810539.8345823, + "isdir": false, + "ctime": 1436810539.8345823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3495822, + "inode": 526121, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2855", + "xusr": false, + "atime": 1436810540.3495822, + "isdir": false, + "ctime": 1436810540.3495822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6885824, + "inode": 527888, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4622", + "xusr": false, + "atime": 1436810541.6885824, + "isdir": false, + "ctime": 1436810541.6885824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0925822, + "inode": 523307, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/41", + "xusr": false, + "atime": 1436810538.0925822, + "isdir": false, + "ctime": 1436810538.0925822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9265823, + "inode": 525628, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2362", + "xusr": false, + "atime": 1436810539.9265823, + "isdir": false, + "ctime": 1436810539.9265823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6005824, + "inode": 527768, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4502", + "xusr": false, + "atime": 1436810541.6005824, + "isdir": false, + "ctime": 1436810541.6005824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0215824, + "inode": 524530, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1264", + "xusr": false, + "atime": 1436810539.0215824, + "isdir": false, + "ctime": 1436810539.0215824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4835823, + "inode": 527607, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4341", + "xusr": false, + "atime": 1436810541.4835823, + "isdir": false, + "ctime": 1436810541.4835823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5835824, + "inode": 525209, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1943", + "xusr": false, + "atime": 1436810539.5835824, + "isdir": false, + "ctime": 1436810539.5835824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4195824, + "inode": 526219, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2953", + "xusr": false, + "atime": 1436810540.4195824, + "isdir": false, + "ctime": 1436810540.4195824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5585823, + "inode": 523907, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/641", + "xusr": false, + "atime": 1436810538.5585823, + "isdir": false, + "ctime": 1436810538.5585823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9655824, + "inode": 525680, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2414", + "xusr": false, + "atime": 1436810539.9655824, + "isdir": false, + "ctime": 1436810539.9655824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5075824, + "inode": 527639, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4373", + "xusr": false, + "atime": 1436810541.5075824, + "isdir": false, + "ctime": 1436810541.5075824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1745822, + "inode": 524749, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1483", + "xusr": false, + "atime": 1436810539.1745822, + "isdir": false, + "ctime": 1436810539.1745822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5845823, + "inode": 527746, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4480", + "xusr": false, + "atime": 1436810541.5845823, + "isdir": false, + "ctime": 1436810541.5845823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9465823, + "inode": 525655, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2389", + "xusr": false, + "atime": 1436810539.9465823, + "isdir": false, + "ctime": 1436810539.9465823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8945823, + "inode": 524353, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1087", + "xusr": false, + "atime": 1436810538.8945823, + "isdir": false, + "ctime": 1436810538.8945823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7085824, + "inode": 526577, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3311", + "xusr": false, + "atime": 1436810540.7085824, + "isdir": false, + "ctime": 1436810540.7085824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7385824, + "inode": 527957, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4691", + "xusr": false, + "atime": 1436810541.7385824, + "isdir": false, + "ctime": 1436810541.7385824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5635824, + "inode": 523914, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/648", + "xusr": false, + "atime": 1436810538.5635824, + "isdir": false, + "ctime": 1436810538.5635824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7855823, + "inode": 524207, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/941", + "xusr": false, + "atime": 1436810538.7855823, + "isdir": false, + "ctime": 1436810538.7855823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7805824, + "inode": 525429, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2163", + "xusr": false, + "atime": 1436810539.7805824, + "isdir": false, + "ctime": 1436810539.7805824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6045823, + "inode": 526432, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3166", + "xusr": false, + "atime": 1436810540.6045823, + "isdir": false, + "ctime": 1436810540.6045823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1895823, + "inode": 527243, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3977", + "xusr": false, + "atime": 1436810541.1895823, + "isdir": false, + "ctime": 1436810541.1895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6135824, + "inode": 523983, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/717", + "xusr": false, + "atime": 1436810538.6135824, + "isdir": false, + "ctime": 1436810538.6135824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5935824, + "inode": 527758, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4492", + "xusr": false, + "atime": 1436810541.5935824, + "isdir": false, + "ctime": 1436810541.5935824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5175824, + "inode": 527653, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4387", + "xusr": false, + "atime": 1436810541.5175824, + "isdir": false, + "ctime": 1436810541.5175824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6605823, + "inode": 527849, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4583", + "xusr": false, + "atime": 1436810541.6605823, + "isdir": false, + "ctime": 1436810541.6605823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6115823, + "inode": 526442, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3176", + "xusr": false, + "atime": 1436810540.6115823, + "isdir": false, + "ctime": 1436810540.6115823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7565823, + "inode": 524173, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/907", + "xusr": false, + "atime": 1436810538.7565823, + "isdir": false, + "ctime": 1436810538.7565823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0705824, + "inode": 523277, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/11", + "xusr": false, + "atime": 1436810538.0705824, + "isdir": false, + "ctime": 1436810538.0705824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2255824, + "inode": 527294, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4028", + "xusr": false, + "atime": 1436810541.2255824, + "isdir": false, + "ctime": 1436810541.2255824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2145822, + "inode": 527279, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4013", + "xusr": false, + "atime": 1436810541.2145822, + "isdir": false, + "ctime": 1436810541.2145822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5595822, + "inode": 525180, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1914", + "xusr": false, + "atime": 1436810539.5595822, + "isdir": false, + "ctime": 1436810539.5595822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2085824, + "inode": 524798, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1532", + "xusr": false, + "atime": 1436810539.2085824, + "isdir": false, + "ctime": 1436810539.2085824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1915822, + "inode": 524773, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1507", + "xusr": false, + "atime": 1436810539.1915822, + "isdir": false, + "ctime": 1436810539.1915822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6425824, + "inode": 526485, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3219", + "xusr": false, + "atime": 1436810540.6425824, + "isdir": false, + "ctime": 1436810540.6425824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3925824, + "inode": 523685, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/419", + "xusr": false, + "atime": 1436810538.3925824, + "isdir": false, + "ctime": 1436810538.3925824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2505822, + "inode": 524858, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1592", + "xusr": false, + "atime": 1436810539.2505822, + "isdir": false, + "ctime": 1436810539.2505822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7375822, + "inode": 526618, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3352", + "xusr": false, + "atime": 1436810540.7375822, + "isdir": false, + "ctime": 1436810540.7375822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6955824, + "inode": 525329, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2063", + "xusr": false, + "atime": 1436810539.6955824, + "isdir": false, + "ctime": 1436810539.6955824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3785822, + "inode": 525003, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1737", + "xusr": false, + "atime": 1436810539.3785822, + "isdir": false, + "ctime": 1436810539.3785822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8205824, + "inode": 525480, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2214", + "xusr": false, + "atime": 1436810539.8205824, + "isdir": false, + "ctime": 1436810539.8205824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5125823, + "inode": 523845, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/579", + "xusr": false, + "atime": 1436810538.5125823, + "isdir": false, + "ctime": 1436810538.5125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5545824, + "inode": 527704, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4438", + "xusr": false, + "atime": 1436810541.5545824, + "isdir": false, + "ctime": 1436810541.5545824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9485824, + "inode": 524427, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1161", + "xusr": false, + "atime": 1436810538.9485824, + "isdir": false, + "ctime": 1436810538.9485824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5305824, + "inode": 527670, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4404", + "xusr": false, + "atime": 1436810541.5305824, + "isdir": false, + "ctime": 1436810541.5305824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7035823, + "inode": 527910, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4644", + "xusr": false, + "atime": 1436810541.7035823, + "isdir": false, + "ctime": 1436810541.7035823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0965824, + "inode": 527119, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3853", + "xusr": false, + "atime": 1436810541.0965824, + "isdir": false, + "ctime": 1436810541.0965824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3925824, + "inode": 523686, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/420", + "xusr": false, + "atime": 1436810538.3925824, + "isdir": false, + "ctime": 1436810538.3925824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4675822, + "inode": 525084, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1818", + "xusr": false, + "atime": 1436810539.4675822, + "isdir": false, + "ctime": 1436810539.4675822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2225823, + "inode": 524818, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1552", + "xusr": false, + "atime": 1436810539.2225823, + "isdir": false, + "ctime": 1436810539.2225823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6645823, + "inode": 526514, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3248", + "xusr": false, + "atime": 1436810540.6645823, + "isdir": false, + "ctime": 1436810540.6645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5775824, + "inode": 523933, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/667", + "xusr": false, + "atime": 1436810538.5775824, + "isdir": false, + "ctime": 1436810538.5775824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8895824, + "inode": 526831, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3565", + "xusr": false, + "atime": 1436810540.8895824, + "isdir": false, + "ctime": 1436810540.8895824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8405824, + "inode": 524282, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1016", + "xusr": false, + "atime": 1436810538.8405824, + "isdir": false, + "ctime": 1436810538.8405824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5435822, + "inode": 523886, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/620", + "xusr": false, + "atime": 1436810538.5435822, + "isdir": false, + "ctime": 1436810538.5435822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0675824, + "inode": 524596, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1330", + "xusr": false, + "atime": 1436810539.0675824, + "isdir": false, + "ctime": 1436810539.0675824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5715823, + "inode": 527728, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4462", + "xusr": false, + "atime": 1436810541.5715823, + "isdir": false, + "ctime": 1436810541.5715823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3695824, + "inode": 524998, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1732", + "xusr": false, + "atime": 1436810539.3695824, + "isdir": false, + "ctime": 1436810539.3695824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3775823, + "inode": 527468, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4202", + "xusr": false, + "atime": 1436810541.3775823, + "isdir": false, + "ctime": 1436810541.3775823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2515824, + "inode": 524859, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1593", + "xusr": false, + "atime": 1436810539.2515824, + "isdir": false, + "ctime": 1436810539.2515824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5535824, + "inode": 527702, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4436", + "xusr": false, + "atime": 1436810541.5535824, + "isdir": false, + "ctime": 1436810541.5535824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1435823, + "inode": 524704, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1438", + "xusr": false, + "atime": 1436810539.1435823, + "isdir": false, + "ctime": 1436810539.1435823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3455822, + "inode": 524976, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1710", + "xusr": false, + "atime": 1436810539.3455822, + "isdir": false, + "ctime": 1436810539.3455822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5085824, + "inode": 526305, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3039", + "xusr": false, + "atime": 1436810540.5085824, + "isdir": false, + "ctime": 1436810540.5085824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2585824, + "inode": 527339, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4073", + "xusr": false, + "atime": 1436810541.2585824, + "isdir": false, + "ctime": 1436810541.2585824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0885823, + "inode": 523302, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/36", + "xusr": false, + "atime": 1436810538.0885823, + "isdir": false, + "ctime": 1436810538.0885823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6995823, + "inode": 524100, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/834", + "xusr": false, + "atime": 1436810538.6995823, + "isdir": false, + "ctime": 1436810538.6995823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4725823, + "inode": 527591, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4325", + "xusr": false, + "atime": 1436810541.4725823, + "isdir": false, + "ctime": 1436810541.4725823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0535824, + "inode": 525797, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2531", + "xusr": false, + "atime": 1436810540.0535824, + "isdir": false, + "ctime": 1436810540.0535824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8885822, + "inode": 524346, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1080", + "xusr": false, + "atime": 1436810538.8885822, + "isdir": false, + "ctime": 1436810538.8885822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8975823, + "inode": 525589, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2323", + "xusr": false, + "atime": 1436810539.8975823, + "isdir": false, + "ctime": 1436810539.8975823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1005824, + "inode": 524642, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1376", + "xusr": false, + "atime": 1436810539.1005824, + "isdir": false, + "ctime": 1436810539.1005824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2775824, + "inode": 523567, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/301", + "xusr": false, + "atime": 1436810538.2775824, + "isdir": false, + "ctime": 1436810538.2775824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3115823, + "inode": 523611, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/345", + "xusr": false, + "atime": 1436810538.3115823, + "isdir": false, + "ctime": 1436810538.3115823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6505823, + "inode": 527835, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4569", + "xusr": false, + "atime": 1436810541.6505823, + "isdir": false, + "ctime": 1436810541.6505823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6745822, + "inode": 524065, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/799", + "xusr": false, + "atime": 1436810538.6745822, + "isdir": false, + "ctime": 1436810538.6745822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9735823, + "inode": 525691, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2425", + "xusr": false, + "atime": 1436810539.9735823, + "isdir": false, + "ctime": 1436810539.9735823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7315824, + "inode": 524139, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/873", + "xusr": false, + "atime": 1436810538.7315824, + "isdir": false, + "ctime": 1436810538.7315824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8065822, + "inode": 524235, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/969", + "xusr": false, + "atime": 1436810538.8065822, + "isdir": false, + "ctime": 1436810538.8065822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4405823, + "inode": 527547, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4281", + "xusr": false, + "atime": 1436810541.4405823, + "isdir": false, + "ctime": 1436810541.4405823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3185823, + "inode": 526078, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2812", + "xusr": false, + "atime": 1436810540.3185823, + "isdir": false, + "ctime": 1436810540.3185823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2865822, + "inode": 524909, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1643", + "xusr": false, + "atime": 1436810539.2865822, + "isdir": false, + "ctime": 1436810539.2865822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3185823, + "inode": 523617, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/351", + "xusr": false, + "atime": 1436810538.3185823, + "isdir": false, + "ctime": 1436810538.3185823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7765822, + "inode": 526671, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3405", + "xusr": false, + "atime": 1436810540.7765822, + "isdir": false, + "ctime": 1436810540.7765822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0455823, + "inode": 527047, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3781", + "xusr": false, + "atime": 1436810541.0455823, + "isdir": false, + "ctime": 1436810541.0455823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0415823, + "inode": 525784, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2518", + "xusr": false, + "atime": 1436810540.0415823, + "isdir": false, + "ctime": 1436810540.0415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7025824, + "inode": 526568, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3302", + "xusr": false, + "atime": 1436810540.7025824, + "isdir": false, + "ctime": 1436810540.7025824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6375823, + "inode": 526477, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3211", + "xusr": false, + "atime": 1436810540.6375823, + "isdir": false, + "ctime": 1436810540.6375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7895823, + "inode": 524212, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/946", + "xusr": false, + "atime": 1436810538.7895823, + "isdir": false, + "ctime": 1436810538.7895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6845822, + "inode": 527883, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4617", + "xusr": false, + "atime": 1436810541.6845822, + "isdir": false, + "ctime": 1436810541.6845822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7795823, + "inode": 528013, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4747", + "xusr": false, + "atime": 1436810541.7795823, + "isdir": false, + "ctime": 1436810541.7795823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5975823, + "inode": 525220, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1954", + "xusr": false, + "atime": 1436810539.5975823, + "isdir": false, + "ctime": 1436810539.5975823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9925823, + "inode": 526975, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3709", + "xusr": false, + "atime": 1436810540.9925823, + "isdir": false, + "ctime": 1436810540.9925823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8025823, + "inode": 526709, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3443", + "xusr": false, + "atime": 1436810540.8025823, + "isdir": false, + "ctime": 1436810540.8025823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6855824, + "inode": 525319, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2053", + "xusr": false, + "atime": 1436810539.6855824, + "isdir": false, + "ctime": 1436810539.6855824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2055824, + "inode": 527266, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4000", + "xusr": false, + "atime": 1436810541.2055824, + "isdir": false, + "ctime": 1436810541.2055824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1975822, + "inode": 527255, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3989", + "xusr": false, + "atime": 1436810541.1975822, + "isdir": false, + "ctime": 1436810541.1975822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1165824, + "inode": 527147, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3881", + "xusr": false, + "atime": 1436810541.1165824, + "isdir": false, + "ctime": 1436810541.1165824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8685822, + "inode": 525548, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2282", + "xusr": false, + "atime": 1436810539.8685822, + "isdir": false, + "ctime": 1436810539.8685822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6575823, + "inode": 524042, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/776", + "xusr": false, + "atime": 1436810538.6575823, + "isdir": false, + "ctime": 1436810538.6575823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2405822, + "inode": 527315, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4049", + "xusr": false, + "atime": 1436810541.2405822, + "isdir": false, + "ctime": 1436810541.2405822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5015824, + "inode": 527631, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4365", + "xusr": false, + "atime": 1436810541.5015824, + "isdir": false, + "ctime": 1436810541.5015824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8275824, + "inode": 524264, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/998", + "xusr": false, + "atime": 1436810538.8275824, + "isdir": false, + "ctime": 1436810538.8275824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6995823, + "inode": 524099, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/833", + "xusr": false, + "atime": 1436810538.6995823, + "isdir": false, + "ctime": 1436810538.6995823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9345822, + "inode": 524409, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1143", + "xusr": false, + "atime": 1436810538.9345822, + "isdir": false, + "ctime": 1436810538.9345822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8125823, + "inode": 526723, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3457", + "xusr": false, + "atime": 1436810540.8125823, + "isdir": false, + "ctime": 1436810540.8125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6705823, + "inode": 527863, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4597", + "xusr": false, + "atime": 1436810541.6705823, + "isdir": false, + "ctime": 1436810541.6705823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5025823, + "inode": 527632, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4366", + "xusr": false, + "atime": 1436810541.5025823, + "isdir": false, + "ctime": 1436810541.5025823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8755822, + "inode": 525557, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2291", + "xusr": false, + "atime": 1436810539.8755822, + "isdir": false, + "ctime": 1436810539.8755822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7765822, + "inode": 528010, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4744", + "xusr": false, + "atime": 1436810541.7765822, + "isdir": false, + "ctime": 1436810541.7765822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2445824, + "inode": 523520, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/254", + "xusr": false, + "atime": 1436810538.2445824, + "isdir": false, + "ctime": 1436810538.2445824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3195822, + "inode": 527420, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4154", + "xusr": false, + "atime": 1436810541.3195822, + "isdir": false, + "ctime": 1436810541.3195822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9895823, + "inode": 526972, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3706", + "xusr": false, + "atime": 1436810540.9895823, + "isdir": false, + "ctime": 1436810540.9895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2485824, + "inode": 523526, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/260", + "xusr": false, + "atime": 1436810538.2485824, + "isdir": false, + "ctime": 1436810538.2485824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7965822, + "inode": 528037, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4771", + "xusr": false, + "atime": 1436810541.7965822, + "isdir": false, + "ctime": 1436810541.7965822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4485824, + "inode": 525068, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1802", + "xusr": false, + "atime": 1436810539.4485824, + "isdir": false, + "ctime": 1436810539.4485824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9805822, + "inode": 524473, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1207", + "xusr": false, + "atime": 1436810538.9805822, + "isdir": false, + "ctime": 1436810538.9805822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7915823, + "inode": 525443, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2177", + "xusr": false, + "atime": 1436810539.7915823, + "isdir": false, + "ctime": 1436810539.7915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5045824, + "inode": 523834, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/568", + "xusr": false, + "atime": 1436810538.5045824, + "isdir": false, + "ctime": 1436810538.5045824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3995824, + "inode": 523695, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/429", + "xusr": false, + "atime": 1436810538.3995824, + "isdir": false, + "ctime": 1436810538.3995824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0905824, + "inode": 524628, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1362", + "xusr": false, + "atime": 1436810539.0905824, + "isdir": false, + "ctime": 1436810539.0905824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5225823, + "inode": 525141, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1875", + "xusr": false, + "atime": 1436810539.5225823, + "isdir": false, + "ctime": 1436810539.5225823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1175823, + "inode": 523340, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/74", + "xusr": false, + "atime": 1436810538.1175823, + "isdir": false, + "ctime": 1436810538.1175823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1975822, + "inode": 523454, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/188", + "xusr": false, + "atime": 1436810538.1975822, + "isdir": false, + "ctime": 1436810538.1975822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5665822, + "inode": 527721, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4455", + "xusr": false, + "atime": 1436810541.5665822, + "isdir": false, + "ctime": 1436810541.5665822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6255822, + "inode": 526460, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3194", + "xusr": false, + "atime": 1436810540.6255822, + "isdir": false, + "ctime": 1436810540.6255822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2295823, + "inode": 527300, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4034", + "xusr": false, + "atime": 1436810541.2295823, + "isdir": false, + "ctime": 1436810541.2295823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8255823, + "inode": 525487, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2221", + "xusr": false, + "atime": 1436810539.8255823, + "isdir": false, + "ctime": 1436810539.8255823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3325822, + "inode": 527431, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4165", + "xusr": false, + "atime": 1436810541.3325822, + "isdir": false, + "ctime": 1436810541.3325822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4975822, + "inode": 525118, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1852", + "xusr": false, + "atime": 1436810539.4975822, + "isdir": false, + "ctime": 1436810539.4975822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8995824, + "inode": 526845, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3579", + "xusr": false, + "atime": 1436810540.8995824, + "isdir": false, + "ctime": 1436810540.8995824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3745823, + "inode": 527465, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4199", + "xusr": false, + "atime": 1436810541.3745823, + "isdir": false, + "ctime": 1436810541.3745823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1415823, + "inode": 524702, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1436", + "xusr": false, + "atime": 1436810539.1415823, + "isdir": false, + "ctime": 1436810539.1415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4705822, + "inode": 525088, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1822", + "xusr": false, + "atime": 1436810539.4705822, + "isdir": false, + "ctime": 1436810539.4705822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9445822, + "inode": 528242, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4976", + "xusr": false, + "atime": 1436810541.9445822, + "isdir": false, + "ctime": 1436810541.9445822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1005824, + "inode": 523317, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/51", + "xusr": false, + "atime": 1436810538.1005824, + "isdir": false, + "ctime": 1436810538.1005824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6265824, + "inode": 526461, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3195", + "xusr": false, + "atime": 1436810540.6265824, + "isdir": false, + "ctime": 1436810540.6265824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8065822, + "inode": 528051, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4785", + "xusr": false, + "atime": 1436810541.8065822, + "isdir": false, + "ctime": 1436810541.8065822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2935822, + "inode": 527390, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4124", + "xusr": false, + "atime": 1436810541.2935822, + "isdir": false, + "ctime": 1436810541.2935822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4715824, + "inode": 525090, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1824", + "xusr": false, + "atime": 1436810539.4715824, + "isdir": false, + "ctime": 1436810539.4715824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0395823, + "inode": 525782, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2516", + "xusr": false, + "atime": 1436810540.0395823, + "isdir": false, + "ctime": 1436810540.0395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0435822, + "inode": 525787, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2521", + "xusr": false, + "atime": 1436810540.0435822, + "isdir": false, + "ctime": 1436810540.0435822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2775824, + "inode": 527367, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4101", + "xusr": false, + "atime": 1436810541.2775824, + "isdir": false, + "ctime": 1436810541.2775824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1985824, + "inode": 524783, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1517", + "xusr": false, + "atime": 1436810539.1985824, + "isdir": false, + "ctime": 1436810539.1985824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2115824, + "inode": 527274, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4008", + "xusr": false, + "atime": 1436810541.2115824, + "isdir": false, + "ctime": 1436810541.2115824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2665823, + "inode": 523550, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/284", + "xusr": false, + "atime": 1436810538.2665823, + "isdir": false, + "ctime": 1436810538.2665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3325822, + "inode": 523630, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/364", + "xusr": false, + "atime": 1436810538.3325822, + "isdir": false, + "ctime": 1436810538.3325822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2395823, + "inode": 523513, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/247", + "xusr": false, + "atime": 1436810538.2395823, + "isdir": false, + "ctime": 1436810538.2395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1565824, + "inode": 524723, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1457", + "xusr": false, + "atime": 1436810539.1565824, + "isdir": false, + "ctime": 1436810539.1565824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0795822, + "inode": 524613, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1347", + "xusr": false, + "atime": 1436810539.0795822, + "isdir": false, + "ctime": 1436810539.0795822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6465824, + "inode": 526490, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3224", + "xusr": false, + "atime": 1436810540.6465824, + "isdir": false, + "ctime": 1436810540.6465824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9195824, + "inode": 528207, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4941", + "xusr": false, + "atime": 1436810541.9195824, + "isdir": false, + "ctime": 1436810541.9195824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9505823, + "inode": 528250, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4984", + "xusr": false, + "atime": 1436810541.9505823, + "isdir": false, + "ctime": 1436810541.9505823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4775822, + "inode": 526281, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3015", + "xusr": false, + "atime": 1436810540.4775822, + "isdir": false, + "ctime": 1436810540.4775822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7545824, + "inode": 524169, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/903", + "xusr": false, + "atime": 1436810538.7545824, + "isdir": false, + "ctime": 1436810538.7545824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7905824, + "inode": 528029, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4763", + "xusr": false, + "atime": 1436810541.7905824, + "isdir": false, + "ctime": 1436810541.7905824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7005823, + "inode": 525336, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2070", + "xusr": false, + "atime": 1436810539.7005823, + "isdir": false, + "ctime": 1436810539.7005823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3275824, + "inode": 524956, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1690", + "xusr": false, + "atime": 1436810539.3275824, + "isdir": false, + "ctime": 1436810539.3275824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9815824, + "inode": 525702, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2436", + "xusr": false, + "atime": 1436810539.9815824, + "isdir": false, + "ctime": 1436810539.9815824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0295823, + "inode": 525768, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2502", + "xusr": false, + "atime": 1436810540.0295823, + "isdir": false, + "ctime": 1436810540.0295823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9705822, + "inode": 524459, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1193", + "xusr": false, + "atime": 1436810538.9705822, + "isdir": false, + "ctime": 1436810538.9705822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6925824, + "inode": 525326, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2060", + "xusr": false, + "atime": 1436810539.6925824, + "isdir": false, + "ctime": 1436810539.6925824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8395822, + "inode": 526760, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3494", + "xusr": false, + "atime": 1436810540.8395822, + "isdir": false, + "ctime": 1436810540.8395822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9605823, + "inode": 525674, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2408", + "xusr": false, + "atime": 1436810539.9605823, + "isdir": false, + "ctime": 1436810539.9605823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7775824, + "inode": 524197, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/931", + "xusr": false, + "atime": 1436810538.7775824, + "isdir": false, + "ctime": 1436810538.7775824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7395823, + "inode": 524150, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/884", + "xusr": false, + "atime": 1436810538.7395823, + "isdir": false, + "ctime": 1436810538.7395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6875823, + "inode": 524083, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/817", + "xusr": false, + "atime": 1436810538.6875823, + "isdir": false, + "ctime": 1436810538.6875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6245823, + "inode": 527801, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4535", + "xusr": false, + "atime": 1436810541.6245823, + "isdir": false, + "ctime": 1436810541.6245823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9865823, + "inode": 524482, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1216", + "xusr": false, + "atime": 1436810538.9865823, + "isdir": false, + "ctime": 1436810538.9865823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5295823, + "inode": 527669, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4403", + "xusr": false, + "atime": 1436810541.5295823, + "isdir": false, + "ctime": 1436810541.5295823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5405824, + "inode": 526343, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3077", + "xusr": false, + "atime": 1436810540.5405824, + "isdir": false, + "ctime": 1436810540.5405824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6365824, + "inode": 527817, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4551", + "xusr": false, + "atime": 1436810541.6365824, + "isdir": false, + "ctime": 1436810541.6365824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8155823, + "inode": 528064, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4798", + "xusr": false, + "atime": 1436810541.8155823, + "isdir": false, + "ctime": 1436810541.8155823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0385823, + "inode": 525781, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2515", + "xusr": false, + "atime": 1436810540.0385823, + "isdir": false, + "ctime": 1436810540.0385823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8425822, + "inode": 524284, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1018", + "xusr": false, + "atime": 1436810538.8425822, + "isdir": false, + "ctime": 1436810538.8425822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6695824, + "inode": 524059, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/793", + "xusr": false, + "atime": 1436810538.6695824, + "isdir": false, + "ctime": 1436810538.6695824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7885823, + "inode": 528026, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4760", + "xusr": false, + "atime": 1436810541.7885823, + "isdir": false, + "ctime": 1436810541.7885823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0975823, + "inode": 524638, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1372", + "xusr": false, + "atime": 1436810539.0975823, + "isdir": false, + "ctime": 1436810539.0975823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7405822, + "inode": 525378, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2112", + "xusr": false, + "atime": 1436810539.7405822, + "isdir": false, + "ctime": 1436810539.7405822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1495824, + "inode": 525888, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2622", + "xusr": false, + "atime": 1436810540.1495824, + "isdir": false, + "ctime": 1436810540.1495824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0445824, + "inode": 525789, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2523", + "xusr": false, + "atime": 1436810540.0445824, + "isdir": false, + "ctime": 1436810540.0445824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6265824, + "inode": 526462, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3196", + "xusr": false, + "atime": 1436810540.6265824, + "isdir": false, + "ctime": 1436810540.6265824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3415823, + "inode": 527439, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4173", + "xusr": false, + "atime": 1436810541.3415823, + "isdir": false, + "ctime": 1436810541.3415823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9895823, + "inode": 525714, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2448", + "xusr": false, + "atime": 1436810539.9895823, + "isdir": false, + "ctime": 1436810539.9895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9125824, + "inode": 525609, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2343", + "xusr": false, + "atime": 1436810539.9125824, + "isdir": false, + "ctime": 1436810539.9125824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8325822, + "inode": 524271, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1005", + "xusr": false, + "atime": 1436810538.8325822, + "isdir": false, + "ctime": 1436810538.8325822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5895822, + "inode": 526410, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3144", + "xusr": false, + "atime": 1436810540.5895822, + "isdir": false, + "ctime": 1436810540.5895822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4245822, + "inode": 523729, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/463", + "xusr": false, + "atime": 1436810538.4245822, + "isdir": false, + "ctime": 1436810538.4245822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6625824, + "inode": 526511, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3245", + "xusr": false, + "atime": 1436810540.6625824, + "isdir": false, + "ctime": 1436810540.6625824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3655822, + "inode": 524993, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1727", + "xusr": false, + "atime": 1436810539.3655822, + "isdir": false, + "ctime": 1436810539.3655822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7735822, + "inode": 526667, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3401", + "xusr": false, + "atime": 1436810540.7735822, + "isdir": false, + "ctime": 1436810540.7735822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1745822, + "inode": 527223, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3957", + "xusr": false, + "atime": 1436810541.1745822, + "isdir": false, + "ctime": 1436810541.1745822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9325824, + "inode": 525635, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2369", + "xusr": false, + "atime": 1436810539.9325824, + "isdir": false, + "ctime": 1436810539.9325824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1965823, + "inode": 524780, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1514", + "xusr": false, + "atime": 1436810539.1965823, + "isdir": false, + "ctime": 1436810539.1965823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7595823, + "inode": 526648, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3382", + "xusr": false, + "atime": 1436810540.7595823, + "isdir": false, + "ctime": 1436810540.7595823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8615823, + "inode": 525537, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2271", + "xusr": false, + "atime": 1436810539.8615823, + "isdir": false, + "ctime": 1436810539.8615823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7725823, + "inode": 524191, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/925", + "xusr": false, + "atime": 1436810538.7725823, + "isdir": false, + "ctime": 1436810538.7725823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3795824, + "inode": 523673, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/407", + "xusr": false, + "atime": 1436810538.3795824, + "isdir": false, + "ctime": 1436810538.3795824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9085822, + "inode": 524374, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1108", + "xusr": false, + "atime": 1436810538.9085822, + "isdir": false, + "ctime": 1436810538.9085822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9645822, + "inode": 526936, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3670", + "xusr": false, + "atime": 1436810540.9645822, + "isdir": false, + "ctime": 1436810540.9645822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9495823, + "inode": 528248, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4982", + "xusr": false, + "atime": 1436810541.9495823, + "isdir": false, + "ctime": 1436810541.9495823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4225824, + "inode": 526223, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2957", + "xusr": false, + "atime": 1436810540.4225824, + "isdir": false, + "ctime": 1436810540.4225824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6015823, + "inode": 527770, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4504", + "xusr": false, + "atime": 1436810541.6015823, + "isdir": false, + "ctime": 1436810541.6015823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3675823, + "inode": 526146, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2880", + "xusr": false, + "atime": 1436810540.3675823, + "isdir": false, + "ctime": 1436810540.3675823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2785823, + "inode": 524899, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1633", + "xusr": false, + "atime": 1436810539.2785823, + "isdir": false, + "ctime": 1436810539.2785823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3095822, + "inode": 524940, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1674", + "xusr": false, + "atime": 1436810539.3095822, + "isdir": false, + "ctime": 1436810539.3095822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8275824, + "inode": 525490, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2224", + "xusr": false, + "atime": 1436810539.8275824, + "isdir": false, + "ctime": 1436810539.8275824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8315823, + "inode": 526749, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3483", + "xusr": false, + "atime": 1436810540.8315823, + "isdir": false, + "ctime": 1436810540.8315823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5275824, + "inode": 525148, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1882", + "xusr": false, + "atime": 1436810539.5275824, + "isdir": false, + "ctime": 1436810539.5275824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0985823, + "inode": 523314, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/48", + "xusr": false, + "atime": 1436810538.0985823, + "isdir": false, + "ctime": 1436810538.0985823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1925824, + "inode": 524774, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1508", + "xusr": false, + "atime": 1436810539.1925824, + "isdir": false, + "ctime": 1436810539.1925824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5265822, + "inode": 527665, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4399", + "xusr": false, + "atime": 1436810541.5265822, + "isdir": false, + "ctime": 1436810541.5265822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8275824, + "inode": 528079, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4813", + "xusr": false, + "atime": 1436810541.8275824, + "isdir": false, + "ctime": 1436810541.8275824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4715824, + "inode": 527589, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4323", + "xusr": false, + "atime": 1436810541.4715824, + "isdir": false, + "ctime": 1436810541.4715824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9145823, + "inode": 525612, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2346", + "xusr": false, + "atime": 1436810539.9145823, + "isdir": false, + "ctime": 1436810539.9145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8695824, + "inode": 526802, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3536", + "xusr": false, + "atime": 1436810540.8695824, + "isdir": false, + "ctime": 1436810540.8695824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3995824, + "inode": 526192, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2926", + "xusr": false, + "atime": 1436810540.3995824, + "isdir": false, + "ctime": 1436810540.3995824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3585823, + "inode": 527452, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4186", + "xusr": false, + "atime": 1436810541.3585823, + "isdir": false, + "ctime": 1436810541.3585823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8525822, + "inode": 526778, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3512", + "xusr": false, + "atime": 1436810540.8525822, + "isdir": false, + "ctime": 1436810540.8525822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3025823, + "inode": 526056, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2790", + "xusr": false, + "atime": 1436810540.3025823, + "isdir": false, + "ctime": 1436810540.3025823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1375823, + "inode": 523368, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/102", + "xusr": false, + "atime": 1436810538.1375823, + "isdir": false, + "ctime": 1436810538.1375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6455822, + "inode": 527829, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4563", + "xusr": false, + "atime": 1436810541.6455822, + "isdir": false, + "ctime": 1436810541.6455822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9725823, + "inode": 524461, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1195", + "xusr": false, + "atime": 1436810538.9725823, + "isdir": false, + "ctime": 1436810538.9725823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0845823, + "inode": 525827, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2561", + "xusr": false, + "atime": 1436810540.0845823, + "isdir": false, + "ctime": 1436810540.0845823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6435823, + "inode": 527826, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4560", + "xusr": false, + "atime": 1436810541.6435823, + "isdir": false, + "ctime": 1436810541.6435823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4695823, + "inode": 523785, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/519", + "xusr": false, + "atime": 1436810538.4695823, + "isdir": false, + "ctime": 1436810538.4695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2785823, + "inode": 527369, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4103", + "xusr": false, + "atime": 1436810541.2785823, + "isdir": false, + "ctime": 1436810541.2785823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6085823, + "inode": 525235, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1969", + "xusr": false, + "atime": 1436810539.6085823, + "isdir": false, + "ctime": 1436810539.6085823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5355823, + "inode": 523875, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/609", + "xusr": false, + "atime": 1436810538.5355823, + "isdir": false, + "ctime": 1436810538.5355823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3735824, + "inode": 526155, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2889", + "xusr": false, + "atime": 1436810540.3735824, + "isdir": false, + "ctime": 1436810540.3735824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7565823, + "inode": 527982, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4716", + "xusr": false, + "atime": 1436810541.7565823, + "isdir": false, + "ctime": 1436810541.7565823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2135823, + "inode": 523477, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/211", + "xusr": false, + "atime": 1436810538.2135823, + "isdir": false, + "ctime": 1436810538.2135823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2715824, + "inode": 527358, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4092", + "xusr": false, + "atime": 1436810541.2715824, + "isdir": false, + "ctime": 1436810541.2715824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9025824, + "inode": 524365, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1099", + "xusr": false, + "atime": 1436810538.9025824, + "isdir": false, + "ctime": 1436810538.9025824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8895824, + "inode": 525577, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2311", + "xusr": false, + "atime": 1436810539.8895824, + "isdir": false, + "ctime": 1436810539.8895824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6495824, + "inode": 527834, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4568", + "xusr": false, + "atime": 1436810541.6495824, + "isdir": false, + "ctime": 1436810541.6495824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6425824, + "inode": 524022, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/756", + "xusr": false, + "atime": 1436810538.6425824, + "isdir": false, + "ctime": 1436810538.6425824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8815823, + "inode": 528154, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4888", + "xusr": false, + "atime": 1436810541.8815823, + "isdir": false, + "ctime": 1436810541.8815823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8155823, + "inode": 525473, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2207", + "xusr": false, + "atime": 1436810539.8155823, + "isdir": false, + "ctime": 1436810539.8155823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9295824, + "inode": 524402, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1136", + "xusr": false, + "atime": 1436810538.9295824, + "isdir": false, + "ctime": 1436810538.9295824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8745823, + "inode": 524327, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1061", + "xusr": false, + "atime": 1436810538.8745823, + "isdir": false, + "ctime": 1436810538.8745823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6325824, + "inode": 525266, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2000", + "xusr": false, + "atime": 1436810539.6325824, + "isdir": false, + "ctime": 1436810539.6325824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5525823, + "inode": 523899, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/633", + "xusr": false, + "atime": 1436810538.5525823, + "isdir": false, + "ctime": 1436810538.5525823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1325824, + "inode": 523361, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/95", + "xusr": false, + "atime": 1436810538.1325824, + "isdir": false, + "ctime": 1436810538.1325824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6675823, + "inode": 525304, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2038", + "xusr": false, + "atime": 1436810539.6675823, + "isdir": false, + "ctime": 1436810539.6675823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2125823, + "inode": 527276, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4010", + "xusr": false, + "atime": 1436810541.2125823, + "isdir": false, + "ctime": 1436810541.2125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4835823, + "inode": 525105, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1839", + "xusr": false, + "atime": 1436810539.4835823, + "isdir": false, + "ctime": 1436810539.4835823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9505823, + "inode": 524430, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1164", + "xusr": false, + "atime": 1436810538.9505823, + "isdir": false, + "ctime": 1436810538.9505823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8625822, + "inode": 526793, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3527", + "xusr": false, + "atime": 1436810540.8625822, + "isdir": false, + "ctime": 1436810540.8625822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2845824, + "inode": 526035, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2769", + "xusr": false, + "atime": 1436810540.2845824, + "isdir": false, + "ctime": 1436810540.2845824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9965823, + "inode": 525723, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2457", + "xusr": false, + "atime": 1436810539.9965823, + "isdir": false, + "ctime": 1436810539.9965823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0385823, + "inode": 525780, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2514", + "xusr": false, + "atime": 1436810540.0385823, + "isdir": false, + "ctime": 1436810540.0385823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4615824, + "inode": 523773, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/507", + "xusr": false, + "atime": 1436810538.4615824, + "isdir": false, + "ctime": 1436810538.4615824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8255823, + "inode": 528076, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4810", + "xusr": false, + "atime": 1436810541.8255823, + "isdir": false, + "ctime": 1436810541.8255823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3205824, + "inode": 526081, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2815", + "xusr": false, + "atime": 1436810540.3205824, + "isdir": false, + "ctime": 1436810540.3205824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6075823, + "inode": 523974, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/708", + "xusr": false, + "atime": 1436810538.6075823, + "isdir": false, + "ctime": 1436810538.6075823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3475823, + "inode": 523646, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/380", + "xusr": false, + "atime": 1436810538.3475823, + "isdir": false, + "ctime": 1436810538.3475823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9515824, + "inode": 525661, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2395", + "xusr": false, + "atime": 1436810539.9515824, + "isdir": false, + "ctime": 1436810539.9515824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7865822, + "inode": 528024, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4758", + "xusr": false, + "atime": 1436810541.7865822, + "isdir": false, + "ctime": 1436810541.7865822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3635824, + "inode": 523657, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/391", + "xusr": false, + "atime": 1436810538.3635824, + "isdir": false, + "ctime": 1436810538.3635824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3905823, + "inode": 526179, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2913", + "xusr": false, + "atime": 1436810540.3905823, + "isdir": false, + "ctime": 1436810540.3905823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5505824, + "inode": 525170, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1904", + "xusr": false, + "atime": 1436810539.5505824, + "isdir": false, + "ctime": 1436810539.5505824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9985824, + "inode": 524498, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1232", + "xusr": false, + "atime": 1436810538.9985824, + "isdir": false, + "ctime": 1436810538.9985824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3175824, + "inode": 523616, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/350", + "xusr": false, + "atime": 1436810538.3175824, + "isdir": false, + "ctime": 1436810538.3175824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0955822, + "inode": 527118, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3852", + "xusr": false, + "atime": 1436810541.0955822, + "isdir": false, + "ctime": 1436810541.0955822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1515822, + "inode": 525890, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2624", + "xusr": false, + "atime": 1436810540.1515822, + "isdir": false, + "ctime": 1436810540.1515822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0345824, + "inode": 527032, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3766", + "xusr": false, + "atime": 1436810541.0345824, + "isdir": false, + "ctime": 1436810541.0345824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9075823, + "inode": 526856, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3590", + "xusr": false, + "atime": 1436810540.9075823, + "isdir": false, + "ctime": 1436810540.9075823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6245823, + "inode": 523997, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/731", + "xusr": false, + "atime": 1436810538.6245823, + "isdir": false, + "ctime": 1436810538.6245823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8215823, + "inode": 526735, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3469", + "xusr": false, + "atime": 1436810540.8215823, + "isdir": false, + "ctime": 1436810540.8215823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8495822, + "inode": 524293, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1027", + "xusr": false, + "atime": 1436810538.8495822, + "isdir": false, + "ctime": 1436810538.8495822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9025824, + "inode": 525596, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2330", + "xusr": false, + "atime": 1436810539.9025824, + "isdir": false, + "ctime": 1436810539.9025824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3765824, + "inode": 526158, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2892", + "xusr": false, + "atime": 1436810540.3765824, + "isdir": false, + "ctime": 1436810540.3765824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7055824, + "inode": 526573, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3307", + "xusr": false, + "atime": 1436810540.7055824, + "isdir": false, + "ctime": 1436810540.7055824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6385822, + "inode": 525274, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2008", + "xusr": false, + "atime": 1436810539.6385822, + "isdir": false, + "ctime": 1436810539.6385822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7215824, + "inode": 524127, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/861", + "xusr": false, + "atime": 1436810538.7215824, + "isdir": false, + "ctime": 1436810538.7215824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6735823, + "inode": 527867, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4601", + "xusr": false, + "atime": 1436810541.6735823, + "isdir": false, + "ctime": 1436810541.6735823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8635824, + "inode": 528128, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4862", + "xusr": false, + "atime": 1436810541.8635824, + "isdir": false, + "ctime": 1436810541.8635824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4695823, + "inode": 527587, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4321", + "xusr": false, + "atime": 1436810541.4695823, + "isdir": false, + "ctime": 1436810541.4695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4235823, + "inode": 527523, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4257", + "xusr": false, + "atime": 1436810541.4235823, + "isdir": false, + "ctime": 1436810541.4235823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5935824, + "inode": 527759, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4493", + "xusr": false, + "atime": 1436810541.5935824, + "isdir": false, + "ctime": 1436810541.5935824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3195822, + "inode": 526079, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2813", + "xusr": false, + "atime": 1436810540.3195822, + "isdir": false, + "ctime": 1436810540.3195822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4005823, + "inode": 523696, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/430", + "xusr": false, + "atime": 1436810538.4005823, + "isdir": false, + "ctime": 1436810538.4005823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6975822, + "inode": 527901, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4635", + "xusr": false, + "atime": 1436810541.6975822, + "isdir": false, + "ctime": 1436810541.6975822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8905823, + "inode": 525579, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2313", + "xusr": false, + "atime": 1436810539.8905823, + "isdir": false, + "ctime": 1436810539.8905823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1915822, + "inode": 527246, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3980", + "xusr": false, + "atime": 1436810541.1915822, + "isdir": false, + "ctime": 1436810541.1915822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5395823, + "inode": 526342, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3076", + "xusr": false, + "atime": 1436810540.5395823, + "isdir": false, + "ctime": 1436810540.5395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1105824, + "inode": 525852, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2586", + "xusr": false, + "atime": 1436810540.1105824, + "isdir": false, + "ctime": 1436810540.1105824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9375823, + "inode": 524412, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1146", + "xusr": false, + "atime": 1436810538.9375823, + "isdir": false, + "ctime": 1436810538.9375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2905824, + "inode": 524916, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1650", + "xusr": false, + "atime": 1436810539.2905824, + "isdir": false, + "ctime": 1436810539.2905824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2135823, + "inode": 525957, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2691", + "xusr": false, + "atime": 1436810540.2135823, + "isdir": false, + "ctime": 1436810540.2135823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2615824, + "inode": 523543, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/277", + "xusr": false, + "atime": 1436810538.2615824, + "isdir": false, + "ctime": 1436810538.2615824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6035824, + "inode": 527773, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4507", + "xusr": false, + "atime": 1436810541.6035824, + "isdir": false, + "ctime": 1436810541.6035824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3305824, + "inode": 527428, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4162", + "xusr": false, + "atime": 1436810541.3305824, + "isdir": false, + "ctime": 1436810541.3305824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0375824, + "inode": 527036, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3770", + "xusr": false, + "atime": 1436810541.0375824, + "isdir": false, + "ctime": 1436810541.0375824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2155824, + "inode": 523480, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/214", + "xusr": false, + "atime": 1436810538.2155824, + "isdir": false, + "ctime": 1436810538.2155824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5595822, + "inode": 526368, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3102", + "xusr": false, + "atime": 1436810540.5595822, + "isdir": false, + "ctime": 1436810540.5595822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3995824, + "inode": 525025, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1759", + "xusr": false, + "atime": 1436810539.3995824, + "isdir": false, + "ctime": 1436810539.3995824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5245824, + "inode": 525144, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1878", + "xusr": false, + "atime": 1436810539.5245824, + "isdir": false, + "ctime": 1436810539.5245824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6295824, + "inode": 524004, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/738", + "xusr": false, + "atime": 1436810538.6295824, + "isdir": false, + "ctime": 1436810538.6295824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3925824, + "inode": 527484, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4218", + "xusr": false, + "atime": 1436810541.3925824, + "isdir": false, + "ctime": 1436810541.3925824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1975822, + "inode": 527254, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3988", + "xusr": false, + "atime": 1436810541.1975822, + "isdir": false, + "ctime": 1436810541.1975822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2395823, + "inode": 527313, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4047", + "xusr": false, + "atime": 1436810541.2395823, + "isdir": false, + "ctime": 1436810541.2395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5015824, + "inode": 523830, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/564", + "xusr": false, + "atime": 1436810538.5015824, + "isdir": false, + "ctime": 1436810538.5015824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5855823, + "inode": 526405, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3139", + "xusr": false, + "atime": 1436810540.5855823, + "isdir": false, + "ctime": 1436810540.5855823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3065822, + "inode": 523606, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/340", + "xusr": false, + "atime": 1436810538.3065822, + "isdir": false, + "ctime": 1436810538.3065822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4355824, + "inode": 525062, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1796", + "xusr": false, + "atime": 1436810539.4355824, + "isdir": false, + "ctime": 1436810539.4355824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7165823, + "inode": 525353, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2087", + "xusr": false, + "atime": 1436810539.7165823, + "isdir": false, + "ctime": 1436810539.7165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1545823, + "inode": 527199, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3933", + "xusr": false, + "atime": 1436810541.1545823, + "isdir": false, + "ctime": 1436810541.1545823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3965824, + "inode": 523691, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/425", + "xusr": false, + "atime": 1436810538.3965824, + "isdir": false, + "ctime": 1436810538.3965824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2885823, + "inode": 524912, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1646", + "xusr": false, + "atime": 1436810539.2885823, + "isdir": false, + "ctime": 1436810539.2885823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8395822, + "inode": 524280, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1014", + "xusr": false, + "atime": 1436810538.8395822, + "isdir": false, + "ctime": 1436810538.8395822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5845823, + "inode": 526404, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3138", + "xusr": false, + "atime": 1436810540.5845823, + "isdir": false, + "ctime": 1436810540.5845823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0985823, + "inode": 527121, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3855", + "xusr": false, + "atime": 1436810541.0985823, + "isdir": false, + "ctime": 1436810541.0985823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7415824, + "inode": 526624, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3358", + "xusr": false, + "atime": 1436810540.7415824, + "isdir": false, + "ctime": 1436810540.7415824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4645822, + "inode": 527580, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4314", + "xusr": false, + "atime": 1436810541.4645822, + "isdir": false, + "ctime": 1436810541.4645822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6435823, + "inode": 525280, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2014", + "xusr": false, + "atime": 1436810539.6435823, + "isdir": false, + "ctime": 1436810539.6435823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6935823, + "inode": 524092, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/826", + "xusr": false, + "atime": 1436810538.6935823, + "isdir": false, + "ctime": 1436810538.6935823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4785824, + "inode": 523797, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/531", + "xusr": false, + "atime": 1436810538.4785824, + "isdir": false, + "ctime": 1436810538.4785824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3735824, + "inode": 523664, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/398", + "xusr": false, + "atime": 1436810538.3735824, + "isdir": false, + "ctime": 1436810538.3735824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5395823, + "inode": 525160, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1894", + "xusr": false, + "atime": 1436810539.5395823, + "isdir": false, + "ctime": 1436810539.5395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9265823, + "inode": 526883, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3617", + "xusr": false, + "atime": 1436810540.9265823, + "isdir": false, + "ctime": 1436810540.9265823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7465823, + "inode": 527968, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4702", + "xusr": false, + "atime": 1436810541.7465823, + "isdir": false, + "ctime": 1436810541.7465823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9145823, + "inode": 525611, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2345", + "xusr": false, + "atime": 1436810539.9145823, + "isdir": false, + "ctime": 1436810539.9145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0025823, + "inode": 525732, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2466", + "xusr": false, + "atime": 1436810540.0025823, + "isdir": false, + "ctime": 1436810540.0025823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1275823, + "inode": 524681, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1415", + "xusr": false, + "atime": 1436810539.1275823, + "isdir": false, + "ctime": 1436810539.1275823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3745823, + "inode": 523665, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/399", + "xusr": false, + "atime": 1436810538.3745823, + "isdir": false, + "ctime": 1436810538.3745823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5565822, + "inode": 525176, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1910", + "xusr": false, + "atime": 1436810539.5565822, + "isdir": false, + "ctime": 1436810539.5565822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9845824, + "inode": 525707, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2441", + "xusr": false, + "atime": 1436810539.9845824, + "isdir": false, + "ctime": 1436810539.9845824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4805822, + "inode": 525101, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1835", + "xusr": false, + "atime": 1436810539.4805822, + "isdir": false, + "ctime": 1436810539.4805822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3665824, + "inode": 524994, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1728", + "xusr": false, + "atime": 1436810539.3665824, + "isdir": false, + "ctime": 1436810539.3665824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6555824, + "inode": 527842, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4576", + "xusr": false, + "atime": 1436810541.6555824, + "isdir": false, + "ctime": 1436810541.6555824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9725823, + "inode": 524462, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1196", + "xusr": false, + "atime": 1436810538.9725823, + "isdir": false, + "ctime": 1436810538.9725823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5285823, + "inode": 526326, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3060", + "xusr": false, + "atime": 1436810540.5285823, + "isdir": false, + "ctime": 1436810540.5285823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1135824, + "inode": 525854, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2588", + "xusr": false, + "atime": 1436810540.1135824, + "isdir": false, + "ctime": 1436810540.1135824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6985824, + "inode": 524098, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/832", + "xusr": false, + "atime": 1436810538.6985824, + "isdir": false, + "ctime": 1436810538.6985824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5345824, + "inode": 527676, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4410", + "xusr": false, + "atime": 1436810541.5345824, + "isdir": false, + "ctime": 1436810541.5345824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0225823, + "inode": 525757, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2491", + "xusr": false, + "atime": 1436810540.0225823, + "isdir": false, + "ctime": 1436810540.0225823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1055822, + "inode": 525848, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2582", + "xusr": false, + "atime": 1436810540.1055822, + "isdir": false, + "ctime": 1436810540.1055822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7565823, + "inode": 524172, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/906", + "xusr": false, + "atime": 1436810538.7565823, + "isdir": false, + "ctime": 1436810538.7565823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4275823, + "inode": 526231, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2965", + "xusr": false, + "atime": 1436810540.4275823, + "isdir": false, + "ctime": 1436810540.4275823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0285823, + "inode": 525766, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2500", + "xusr": false, + "atime": 1436810540.0285823, + "isdir": false, + "ctime": 1436810540.0285823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6235824, + "inode": 525254, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1988", + "xusr": false, + "atime": 1436810539.6235824, + "isdir": false, + "ctime": 1436810539.6235824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8655822, + "inode": 526797, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3531", + "xusr": false, + "atime": 1436810540.8655822, + "isdir": false, + "ctime": 1436810540.8655822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5825822, + "inode": 527743, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4477", + "xusr": false, + "atime": 1436810541.5825822, + "isdir": false, + "ctime": 1436810541.5825822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5765822, + "inode": 527735, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4469", + "xusr": false, + "atime": 1436810541.5765822, + "isdir": false, + "ctime": 1436810541.5765822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4355824, + "inode": 527539, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4273", + "xusr": false, + "atime": 1436810541.4355824, + "isdir": false, + "ctime": 1436810541.4355824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9235823, + "inode": 525623, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2357", + "xusr": false, + "atime": 1436810539.9235823, + "isdir": false, + "ctime": 1436810539.9235823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0195823, + "inode": 527011, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3745", + "xusr": false, + "atime": 1436810541.0195823, + "isdir": false, + "ctime": 1436810541.0195823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8185823, + "inode": 525477, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2211", + "xusr": false, + "atime": 1436810539.8185823, + "isdir": false, + "ctime": 1436810539.8185823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1815822, + "inode": 524759, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1493", + "xusr": false, + "atime": 1436810539.1815822, + "isdir": false, + "ctime": 1436810539.1815822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6125822, + "inode": 523982, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/716", + "xusr": false, + "atime": 1436810538.6125822, + "isdir": false, + "ctime": 1436810538.6125822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1935823, + "inode": 524776, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1510", + "xusr": false, + "atime": 1436810539.1935823, + "isdir": false, + "ctime": 1436810539.1935823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7505822, + "inode": 524164, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/898", + "xusr": false, + "atime": 1436810538.7505822, + "isdir": false, + "ctime": 1436810538.7505822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7985823, + "inode": 528041, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4775", + "xusr": false, + "atime": 1436810541.7985823, + "isdir": false, + "ctime": 1436810541.7985823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3055823, + "inode": 526060, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2794", + "xusr": false, + "atime": 1436810540.3055823, + "isdir": false, + "ctime": 1436810540.3055823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0275824, + "inode": 525765, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2499", + "xusr": false, + "atime": 1436810540.0275824, + "isdir": false, + "ctime": 1436810540.0275824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7475822, + "inode": 526632, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3366", + "xusr": false, + "atime": 1436810540.7475822, + "isdir": false, + "ctime": 1436810540.7475822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1395824, + "inode": 527178, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3912", + "xusr": false, + "atime": 1436810541.1395824, + "isdir": false, + "ctime": 1436810541.1395824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3965824, + "inode": 525021, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1755", + "xusr": false, + "atime": 1436810539.3965824, + "isdir": false, + "ctime": 1436810539.3965824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5785823, + "inode": 525204, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1938", + "xusr": false, + "atime": 1436810539.5785823, + "isdir": false, + "ctime": 1436810539.5785823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1585822, + "inode": 527204, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3938", + "xusr": false, + "atime": 1436810541.1585822, + "isdir": false, + "ctime": 1436810541.1585822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5695822, + "inode": 527725, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4459", + "xusr": false, + "atime": 1436810541.5695822, + "isdir": false, + "ctime": 1436810541.5695822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3445823, + "inode": 526114, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2848", + "xusr": false, + "atime": 1436810540.3445823, + "isdir": false, + "ctime": 1436810540.3445823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1645823, + "inode": 525903, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2637", + "xusr": false, + "atime": 1436810540.1645823, + "isdir": false, + "ctime": 1436810540.1645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2445824, + "inode": 527320, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4054", + "xusr": false, + "atime": 1436810541.2445824, + "isdir": false, + "ctime": 1436810541.2445824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9515822, + "inode": 528252, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4986", + "xusr": false, + "atime": 1436810541.9515822, + "isdir": false, + "ctime": 1436810541.9515822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0855823, + "inode": 525828, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2562", + "xusr": false, + "atime": 1436810540.0855823, + "isdir": false, + "ctime": 1436810540.0855823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3545823, + "inode": 524988, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1722", + "xusr": false, + "atime": 1436810539.3545823, + "isdir": false, + "ctime": 1436810539.3545823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0365822, + "inode": 527035, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3769", + "xusr": false, + "atime": 1436810541.0365822, + "isdir": false, + "ctime": 1436810541.0365822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7045822, + "inode": 526572, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3306", + "xusr": false, + "atime": 1436810540.7045822, + "isdir": false, + "ctime": 1436810540.7045822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9905822, + "inode": 526973, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3707", + "xusr": false, + "atime": 1436810540.9905822, + "isdir": false, + "ctime": 1436810540.9905822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1925824, + "inode": 523447, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/181", + "xusr": false, + "atime": 1436810538.1925824, + "isdir": false, + "ctime": 1436810538.1925824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4475822, + "inode": 525067, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1801", + "xusr": false, + "atime": 1436810539.4475822, + "isdir": false, + "ctime": 1436810539.4475822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2405822, + "inode": 524844, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1578", + "xusr": false, + "atime": 1436810539.2405822, + "isdir": false, + "ctime": 1436810539.2405822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6305823, + "inode": 525264, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1998", + "xusr": false, + "atime": 1436810539.6305823, + "isdir": false, + "ctime": 1436810539.6305823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0475824, + "inode": 524567, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1301", + "xusr": false, + "atime": 1436810539.0475824, + "isdir": false, + "ctime": 1436810539.0475824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2605822, + "inode": 524873, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1607", + "xusr": false, + "atime": 1436810539.2605822, + "isdir": false, + "ctime": 1436810539.2605822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2445824, + "inode": 524850, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1584", + "xusr": false, + "atime": 1436810539.2445824, + "isdir": false, + "ctime": 1436810539.2445824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4205823, + "inode": 523723, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/457", + "xusr": false, + "atime": 1436810538.4205823, + "isdir": false, + "ctime": 1436810538.4205823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4075823, + "inode": 523706, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/440", + "xusr": false, + "atime": 1436810538.4075823, + "isdir": false, + "ctime": 1436810538.4075823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2465823, + "inode": 523522, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/256", + "xusr": false, + "atime": 1436810538.2465823, + "isdir": false, + "ctime": 1436810538.2465823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6805823, + "inode": 524074, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/808", + "xusr": false, + "atime": 1436810538.6805823, + "isdir": false, + "ctime": 1436810538.6805823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0525823, + "inode": 525796, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2530", + "xusr": false, + "atime": 1436810540.0525823, + "isdir": false, + "ctime": 1436810540.0525823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3935823, + "inode": 526183, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2917", + "xusr": false, + "atime": 1436810540.3935823, + "isdir": false, + "ctime": 1436810540.3935823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8335824, + "inode": 528087, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4821", + "xusr": false, + "atime": 1436810541.8335824, + "isdir": false, + "ctime": 1436810541.8335824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3455822, + "inode": 527444, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4178", + "xusr": false, + "atime": 1436810541.3455822, + "isdir": false, + "ctime": 1436810541.3455822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2335823, + "inode": 524833, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1567", + "xusr": false, + "atime": 1436810539.2335823, + "isdir": false, + "ctime": 1436810539.2335823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1355822, + "inode": 524693, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1427", + "xusr": false, + "atime": 1436810539.1355822, + "isdir": false, + "ctime": 1436810539.1355822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8095822, + "inode": 528056, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4790", + "xusr": false, + "atime": 1436810541.8095822, + "isdir": false, + "ctime": 1436810541.8095822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4985824, + "inode": 523825, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/559", + "xusr": false, + "atime": 1436810538.4985824, + "isdir": false, + "ctime": 1436810538.4985824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0375824, + "inode": 524553, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1287", + "xusr": false, + "atime": 1436810539.0375824, + "isdir": false, + "ctime": 1436810539.0375824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7535822, + "inode": 524168, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/902", + "xusr": false, + "atime": 1436810538.7535822, + "isdir": false, + "ctime": 1436810538.7535822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1275823, + "inode": 525868, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2602", + "xusr": false, + "atime": 1436810540.1275823, + "isdir": false, + "ctime": 1436810540.1275823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2495823, + "inode": 524857, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1591", + "xusr": false, + "atime": 1436810539.2495823, + "isdir": false, + "ctime": 1436810539.2495823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7605822, + "inode": 525400, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2134", + "xusr": false, + "atime": 1436810539.7605822, + "isdir": false, + "ctime": 1436810539.7605822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6805823, + "inode": 525315, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2049", + "xusr": false, + "atime": 1436810539.6805823, + "isdir": false, + "ctime": 1436810539.6805823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2785823, + "inode": 523568, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/302", + "xusr": false, + "atime": 1436810538.2785823, + "isdir": false, + "ctime": 1436810538.2785823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8965824, + "inode": 526841, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3575", + "xusr": false, + "atime": 1436810540.8965824, + "isdir": false, + "ctime": 1436810540.8965824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7815824, + "inode": 526679, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3413", + "xusr": false, + "atime": 1436810540.7815824, + "isdir": false, + "ctime": 1436810540.7815824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3875823, + "inode": 526175, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2909", + "xusr": false, + "atime": 1436810540.3875823, + "isdir": false, + "ctime": 1436810540.3875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8305824, + "inode": 525494, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2228", + "xusr": false, + "atime": 1436810539.8305824, + "isdir": false, + "ctime": 1436810539.8305824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3045824, + "inode": 523604, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/338", + "xusr": false, + "atime": 1436810538.3045824, + "isdir": false, + "ctime": 1436810538.3045824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4175823, + "inode": 523720, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/454", + "xusr": false, + "atime": 1436810538.4175823, + "isdir": false, + "ctime": 1436810538.4175823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5085824, + "inode": 525129, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1863", + "xusr": false, + "atime": 1436810539.5085824, + "isdir": false, + "ctime": 1436810539.5085824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1945822, + "inode": 523449, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/183", + "xusr": false, + "atime": 1436810538.1945822, + "isdir": false, + "ctime": 1436810538.1945822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7115824, + "inode": 527920, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4654", + "xusr": false, + "atime": 1436810541.7115824, + "isdir": false, + "ctime": 1436810541.7115824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2175822, + "inode": 523482, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/216", + "xusr": false, + "atime": 1436810538.2175822, + "isdir": false, + "ctime": 1436810538.2175822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1715822, + "inode": 523416, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/150", + "xusr": false, + "atime": 1436810538.1715822, + "isdir": false, + "ctime": 1436810538.1715822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5205822, + "inode": 523855, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/589", + "xusr": false, + "atime": 1436810538.5205822, + "isdir": false, + "ctime": 1436810538.5205822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5295823, + "inode": 523868, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/602", + "xusr": false, + "atime": 1436810538.5295823, + "isdir": false, + "ctime": 1436810538.5295823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9865823, + "inode": 526968, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3702", + "xusr": false, + "atime": 1436810540.9865823, + "isdir": false, + "ctime": 1436810540.9865823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9805822, + "inode": 525701, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2435", + "xusr": false, + "atime": 1436810539.9805822, + "isdir": false, + "ctime": 1436810539.9805822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9835823, + "inode": 526964, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3698", + "xusr": false, + "atime": 1436810540.9835823, + "isdir": false, + "ctime": 1436810540.9835823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4975822, + "inode": 527626, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4360", + "xusr": false, + "atime": 1436810541.4975822, + "isdir": false, + "ctime": 1436810541.4975822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1325824, + "inode": 524688, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1422", + "xusr": false, + "atime": 1436810539.1325824, + "isdir": false, + "ctime": 1436810539.1325824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8405824, + "inode": 528098, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4832", + "xusr": false, + "atime": 1436810541.8405824, + "isdir": false, + "ctime": 1436810541.8405824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6205823, + "inode": 523992, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/726", + "xusr": false, + "atime": 1436810538.6205823, + "isdir": false, + "ctime": 1436810538.6205823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0915823, + "inode": 523305, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/39", + "xusr": false, + "atime": 1436810538.0915823, + "isdir": false, + "ctime": 1436810538.0915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9305823, + "inode": 524404, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1138", + "xusr": false, + "atime": 1436810538.9305823, + "isdir": false, + "ctime": 1436810538.9305823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1465824, + "inode": 527187, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3921", + "xusr": false, + "atime": 1436810541.1465824, + "isdir": false, + "ctime": 1436810541.1465824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0355823, + "inode": 524549, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1283", + "xusr": false, + "atime": 1436810539.0355823, + "isdir": false, + "ctime": 1436810539.0355823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7005823, + "inode": 524101, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/835", + "xusr": false, + "atime": 1436810538.7005823, + "isdir": false, + "ctime": 1436810538.7005823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8245823, + "inode": 524260, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/994", + "xusr": false, + "atime": 1436810538.8245823, + "isdir": false, + "ctime": 1436810538.8245823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2015822, + "inode": 527260, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3994", + "xusr": false, + "atime": 1436810541.2015822, + "isdir": false, + "ctime": 1436810541.2015822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3555822, + "inode": 526129, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2863", + "xusr": false, + "atime": 1436810540.3555822, + "isdir": false, + "ctime": 1436810540.3555822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3095822, + "inode": 526065, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2799", + "xusr": false, + "atime": 1436810540.3095822, + "isdir": false, + "ctime": 1436810540.3095822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6305823, + "inode": 524005, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/739", + "xusr": false, + "atime": 1436810538.6305823, + "isdir": false, + "ctime": 1436810538.6305823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6975822, + "inode": 524097, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/831", + "xusr": false, + "atime": 1436810538.6975822, + "isdir": false, + "ctime": 1436810538.6975822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4865823, + "inode": 525108, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1842", + "xusr": false, + "atime": 1436810539.4865823, + "isdir": false, + "ctime": 1436810539.4865823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9225824, + "inode": 524393, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1127", + "xusr": false, + "atime": 1436810538.9225824, + "isdir": false, + "ctime": 1436810538.9225824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2045822, + "inode": 524792, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1526", + "xusr": false, + "atime": 1436810539.2045822, + "isdir": false, + "ctime": 1436810539.2045822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8615823, + "inode": 526791, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3525", + "xusr": false, + "atime": 1436810540.8615823, + "isdir": false, + "ctime": 1436810540.8615823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5525823, + "inode": 526359, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3093", + "xusr": false, + "atime": 1436810540.5525823, + "isdir": false, + "ctime": 1436810540.5525823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0435822, + "inode": 525788, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2522", + "xusr": false, + "atime": 1436810540.0435822, + "isdir": false, + "ctime": 1436810540.0435822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9265823, + "inode": 524399, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1133", + "xusr": false, + "atime": 1436810538.9265823, + "isdir": false, + "ctime": 1436810538.9265823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5275824, + "inode": 527666, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4400", + "xusr": false, + "atime": 1436810541.5275824, + "isdir": false, + "ctime": 1436810541.5275824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5435822, + "inode": 527689, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4423", + "xusr": false, + "atime": 1436810541.5435822, + "isdir": false, + "ctime": 1436810541.5435822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6975822, + "inode": 525332, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2066", + "xusr": false, + "atime": 1436810539.6975822, + "isdir": false, + "ctime": 1436810539.6975822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0285823, + "inode": 527023, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3757", + "xusr": false, + "atime": 1436810541.0285823, + "isdir": false, + "ctime": 1436810541.0285823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3915823, + "inode": 527482, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4216", + "xusr": false, + "atime": 1436810541.3915823, + "isdir": false, + "ctime": 1436810541.3915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1905823, + "inode": 523444, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/178", + "xusr": false, + "atime": 1436810538.1905823, + "isdir": false, + "ctime": 1436810538.1905823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7915823, + "inode": 524215, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/949", + "xusr": false, + "atime": 1436810538.7915823, + "isdir": false, + "ctime": 1436810538.7915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2525823, + "inode": 524861, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1595", + "xusr": false, + "atime": 1436810539.2525823, + "isdir": false, + "ctime": 1436810539.2525823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1635823, + "inode": 527210, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3944", + "xusr": false, + "atime": 1436810541.1635823, + "isdir": false, + "ctime": 1436810541.1635823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9555824, + "inode": 528256, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4990", + "xusr": false, + "atime": 1436810541.9555824, + "isdir": false, + "ctime": 1436810541.9555824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9425824, + "inode": 526905, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3639", + "xusr": false, + "atime": 1436810540.9425824, + "isdir": false, + "ctime": 1436810540.9425824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2975824, + "inode": 524926, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1660", + "xusr": false, + "atime": 1436810539.2975824, + "isdir": false, + "ctime": 1436810539.2975824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8855822, + "inode": 526825, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3559", + "xusr": false, + "atime": 1436810540.8855822, + "isdir": false, + "ctime": 1436810540.8855822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5465822, + "inode": 527693, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4427", + "xusr": false, + "atime": 1436810541.5465822, + "isdir": false, + "ctime": 1436810541.5465822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4235823, + "inode": 525053, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1787", + "xusr": false, + "atime": 1436810539.4235823, + "isdir": false, + "ctime": 1436810539.4235823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9095824, + "inode": 525605, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2339", + "xusr": false, + "atime": 1436810539.9095824, + "isdir": false, + "ctime": 1436810539.9095824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2735822, + "inode": 527361, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4095", + "xusr": false, + "atime": 1436810541.2735822, + "isdir": false, + "ctime": 1436810541.2735822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8375823, + "inode": 525503, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2237", + "xusr": false, + "atime": 1436810539.8375823, + "isdir": false, + "ctime": 1436810539.8375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9445822, + "inode": 525652, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2386", + "xusr": false, + "atime": 1436810539.9445822, + "isdir": false, + "ctime": 1436810539.9445822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8365824, + "inode": 525502, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2236", + "xusr": false, + "atime": 1436810539.8365824, + "isdir": false, + "ctime": 1436810539.8365824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0125823, + "inode": 527002, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3736", + "xusr": false, + "atime": 1436810541.0125823, + "isdir": false, + "ctime": 1436810541.0125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7815824, + "inode": 524202, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/936", + "xusr": false, + "atime": 1436810538.7815824, + "isdir": false, + "ctime": 1436810538.7815824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3275824, + "inode": 527424, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4158", + "xusr": false, + "atime": 1436810541.3275824, + "isdir": false, + "ctime": 1436810541.3275824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6845822, + "inode": 524079, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/813", + "xusr": false, + "atime": 1436810538.6845822, + "isdir": false, + "ctime": 1436810538.6845822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7745824, + "inode": 526669, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3403", + "xusr": false, + "atime": 1436810540.7745824, + "isdir": false, + "ctime": 1436810540.7745824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9495823, + "inode": 528249, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4983", + "xusr": false, + "atime": 1436810541.9495823, + "isdir": false, + "ctime": 1436810541.9495823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4115822, + "inode": 527508, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4242", + "xusr": false, + "atime": 1436810541.4115822, + "isdir": false, + "ctime": 1436810541.4115822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9125824, + "inode": 524379, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1113", + "xusr": false, + "atime": 1436810538.9125824, + "isdir": false, + "ctime": 1436810538.9125824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3205824, + "inode": 526080, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2814", + "xusr": false, + "atime": 1436810540.3205824, + "isdir": false, + "ctime": 1436810540.3205824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7395823, + "inode": 527959, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4693", + "xusr": false, + "atime": 1436810541.7395823, + "isdir": false, + "ctime": 1436810541.7395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8545823, + "inode": 528115, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4849", + "xusr": false, + "atime": 1436810541.8545823, + "isdir": false, + "ctime": 1436810541.8545823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2725823, + "inode": 526021, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2755", + "xusr": false, + "atime": 1436810540.2725823, + "isdir": false, + "ctime": 1436810540.2725823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7885823, + "inode": 528027, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4761", + "xusr": false, + "atime": 1436810541.7885823, + "isdir": false, + "ctime": 1436810541.7885823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3375823, + "inode": 526105, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2839", + "xusr": false, + "atime": 1436810540.3375823, + "isdir": false, + "ctime": 1436810540.3375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7705822, + "inode": 525414, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2148", + "xusr": false, + "atime": 1436810539.7705822, + "isdir": false, + "ctime": 1436810539.7705822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1295824, + "inode": 524684, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1418", + "xusr": false, + "atime": 1436810539.1295824, + "isdir": false, + "ctime": 1436810539.1295824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7225823, + "inode": 526597, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3331", + "xusr": false, + "atime": 1436810540.7225823, + "isdir": false, + "ctime": 1436810540.7225823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8775823, + "inode": 525560, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2294", + "xusr": false, + "atime": 1436810539.8775823, + "isdir": false, + "ctime": 1436810539.8775823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8995824, + "inode": 525591, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2325", + "xusr": false, + "atime": 1436810539.8995824, + "isdir": false, + "ctime": 1436810539.8995824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7215824, + "inode": 526596, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3330", + "xusr": false, + "atime": 1436810540.7215824, + "isdir": false, + "ctime": 1436810540.7215824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5655823, + "inode": 526377, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3111", + "xusr": false, + "atime": 1436810540.5655823, + "isdir": false, + "ctime": 1436810540.5655823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2915823, + "inode": 526042, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2776", + "xusr": false, + "atime": 1436810540.2915823, + "isdir": false, + "ctime": 1436810540.2915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4295824, + "inode": 527531, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4265", + "xusr": false, + "atime": 1436810541.4295824, + "isdir": false, + "ctime": 1436810541.4295824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4835823, + "inode": 523804, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/538", + "xusr": false, + "atime": 1436810538.4835823, + "isdir": false, + "ctime": 1436810538.4835823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0585823, + "inode": 527065, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3799", + "xusr": false, + "atime": 1436810541.0585823, + "isdir": false, + "ctime": 1436810541.0585823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2415824, + "inode": 523516, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/250", + "xusr": false, + "atime": 1436810538.2415824, + "isdir": false, + "ctime": 1436810538.2415824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6525824, + "inode": 526498, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3232", + "xusr": false, + "atime": 1436810540.6525824, + "isdir": false, + "ctime": 1436810540.6525824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8635824, + "inode": 524312, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1046", + "xusr": false, + "atime": 1436810538.8635824, + "isdir": false, + "ctime": 1436810538.8635824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6195824, + "inode": 527795, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4529", + "xusr": false, + "atime": 1436810541.6195824, + "isdir": false, + "ctime": 1436810541.6195824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3325822, + "inode": 524962, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1696", + "xusr": false, + "atime": 1436810539.3325822, + "isdir": false, + "ctime": 1436810539.3325822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8135824, + "inode": 525470, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2204", + "xusr": false, + "atime": 1436810539.8135824, + "isdir": false, + "ctime": 1436810539.8135824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4745822, + "inode": 523792, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/526", + "xusr": false, + "atime": 1436810538.4745822, + "isdir": false, + "ctime": 1436810538.4745822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2355824, + "inode": 523507, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/241", + "xusr": false, + "atime": 1436810538.2355824, + "isdir": false, + "ctime": 1436810538.2355824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2505822, + "inode": 525998, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2732", + "xusr": false, + "atime": 1436810540.2505822, + "isdir": false, + "ctime": 1436810540.2505822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2685823, + "inode": 524884, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1618", + "xusr": false, + "atime": 1436810539.2685823, + "isdir": false, + "ctime": 1436810539.2685823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1785824, + "inode": 527229, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3963", + "xusr": false, + "atime": 1436810541.1785824, + "isdir": false, + "ctime": 1436810541.1785824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6065824, + "inode": 525232, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1966", + "xusr": false, + "atime": 1436810539.6065824, + "isdir": false, + "ctime": 1436810539.6065824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4265823, + "inode": 526229, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2963", + "xusr": false, + "atime": 1436810540.4265823, + "isdir": false, + "ctime": 1436810540.4265823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9555824, + "inode": 525667, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2401", + "xusr": false, + "atime": 1436810539.9555824, + "isdir": false, + "ctime": 1436810539.9555824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4545822, + "inode": 525073, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1807", + "xusr": false, + "atime": 1436810539.4545822, + "isdir": false, + "ctime": 1436810539.4545822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4795823, + "inode": 525100, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1834", + "xusr": false, + "atime": 1436810539.4795823, + "isdir": false, + "ctime": 1436810539.4795823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2425823, + "inode": 527317, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4051", + "xusr": false, + "atime": 1436810541.2425823, + "isdir": false, + "ctime": 1436810541.2425823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0805824, + "inode": 527096, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3830", + "xusr": false, + "atime": 1436810541.0805824, + "isdir": false, + "ctime": 1436810541.0805824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8735824, + "inode": 526808, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3542", + "xusr": false, + "atime": 1436810540.8735824, + "isdir": false, + "ctime": 1436810540.8735824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1635823, + "inode": 524733, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1467", + "xusr": false, + "atime": 1436810539.1635823, + "isdir": false, + "ctime": 1436810539.1635823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0775824, + "inode": 527092, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3826", + "xusr": false, + "atime": 1436810541.0775824, + "isdir": false, + "ctime": 1436810541.0775824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3455822, + "inode": 526115, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2849", + "xusr": false, + "atime": 1436810540.3455822, + "isdir": false, + "ctime": 1436810540.3455822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6025822, + "inode": 525227, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1961", + "xusr": false, + "atime": 1436810539.6025822, + "isdir": false, + "ctime": 1436810539.6025822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4185822, + "inode": 527517, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4251", + "xusr": false, + "atime": 1436810541.4185822, + "isdir": false, + "ctime": 1436810541.4185822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1825824, + "inode": 527234, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3968", + "xusr": false, + "atime": 1436810541.1825824, + "isdir": false, + "ctime": 1436810541.1825824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5315824, + "inode": 525152, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1886", + "xusr": false, + "atime": 1436810539.5315824, + "isdir": false, + "ctime": 1436810539.5315824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4565823, + "inode": 525074, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1808", + "xusr": false, + "atime": 1436810539.4565823, + "isdir": false, + "ctime": 1436810539.4565823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8965824, + "inode": 524356, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1090", + "xusr": false, + "atime": 1436810538.8965824, + "isdir": false, + "ctime": 1436810538.8965824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1215823, + "inode": 527153, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3887", + "xusr": false, + "atime": 1436810541.1215823, + "isdir": false, + "ctime": 1436810541.1215823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8875823, + "inode": 526828, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3562", + "xusr": false, + "atime": 1436810540.8875823, + "isdir": false, + "ctime": 1436810540.8875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1005824, + "inode": 527124, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3858", + "xusr": false, + "atime": 1436810541.1005824, + "isdir": false, + "ctime": 1436810541.1005824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9315822, + "inode": 526890, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3624", + "xusr": false, + "atime": 1436810540.9315822, + "isdir": false, + "ctime": 1436810540.9315822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9135823, + "inode": 524381, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1115", + "xusr": false, + "atime": 1436810538.9135823, + "isdir": false, + "ctime": 1436810538.9135823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8405824, + "inode": 526761, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3495", + "xusr": false, + "atime": 1436810540.8405824, + "isdir": false, + "ctime": 1436810540.8405824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7255824, + "inode": 526601, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3335", + "xusr": false, + "atime": 1436810540.7255824, + "isdir": false, + "ctime": 1436810540.7255824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8695824, + "inode": 525549, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2283", + "xusr": false, + "atime": 1436810539.8695824, + "isdir": false, + "ctime": 1436810539.8695824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1335824, + "inode": 524690, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1424", + "xusr": false, + "atime": 1436810539.1335824, + "isdir": false, + "ctime": 1436810539.1335824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0655823, + "inode": 524593, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1327", + "xusr": false, + "atime": 1436810539.0655823, + "isdir": false, + "ctime": 1436810539.0655823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6025822, + "inode": 526428, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3162", + "xusr": false, + "atime": 1436810540.6025822, + "isdir": false, + "ctime": 1436810540.6025822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1995823, + "inode": 523457, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/191", + "xusr": false, + "atime": 1436810538.1995823, + "isdir": false, + "ctime": 1436810538.1995823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8765824, + "inode": 526812, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3546", + "xusr": false, + "atime": 1436810540.8765824, + "isdir": false, + "ctime": 1436810540.8765824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7085824, + "inode": 525345, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2079", + "xusr": false, + "atime": 1436810539.7085824, + "isdir": false, + "ctime": 1436810539.7085824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1115823, + "inode": 527140, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3874", + "xusr": false, + "atime": 1436810541.1115823, + "isdir": false, + "ctime": 1436810541.1115823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9575822, + "inode": 528260, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4994", + "xusr": false, + "atime": 1436810541.9575822, + "isdir": false, + "ctime": 1436810541.9575822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5815823, + "inode": 527741, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4475", + "xusr": false, + "atime": 1436810541.5815823, + "isdir": false, + "ctime": 1436810541.5815823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3085823, + "inode": 526064, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2798", + "xusr": false, + "atime": 1436810540.3085823, + "isdir": false, + "ctime": 1436810540.3085823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0175824, + "inode": 524525, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1259", + "xusr": false, + "atime": 1436810539.0175824, + "isdir": false, + "ctime": 1436810539.0175824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7325823, + "inode": 527949, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4683", + "xusr": false, + "atime": 1436810541.7325823, + "isdir": false, + "ctime": 1436810541.7325823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2965822, + "inode": 524924, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1658", + "xusr": false, + "atime": 1436810539.2965822, + "isdir": false, + "ctime": 1436810539.2965822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0655823, + "inode": 527075, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3809", + "xusr": false, + "atime": 1436810541.0655823, + "isdir": false, + "ctime": 1436810541.0655823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9745822, + "inode": 524464, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1198", + "xusr": false, + "atime": 1436810538.9745822, + "isdir": false, + "ctime": 1436810538.9745822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6325824, + "inode": 524008, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/742", + "xusr": false, + "atime": 1436810538.6325824, + "isdir": false, + "ctime": 1436810538.6325824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6525824, + "inode": 526497, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3231", + "xusr": false, + "atime": 1436810540.6525824, + "isdir": false, + "ctime": 1436810540.6525824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5235822, + "inode": 525142, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1876", + "xusr": false, + "atime": 1436810539.5235822, + "isdir": false, + "ctime": 1436810539.5235822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5595822, + "inode": 527710, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4444", + "xusr": false, + "atime": 1436810541.5595822, + "isdir": false, + "ctime": 1436810541.5595822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5485823, + "inode": 525168, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1902", + "xusr": false, + "atime": 1436810539.5485823, + "isdir": false, + "ctime": 1436810539.5485823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5915823, + "inode": 526413, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3147", + "xusr": false, + "atime": 1436810540.5915823, + "isdir": false, + "ctime": 1436810540.5915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4485824, + "inode": 523755, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/489", + "xusr": false, + "atime": 1436810538.4485824, + "isdir": false, + "ctime": 1436810538.4485824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8015823, + "inode": 528044, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4778", + "xusr": false, + "atime": 1436810541.8015823, + "isdir": false, + "ctime": 1436810541.8015823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7125823, + "inode": 527921, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4655", + "xusr": false, + "atime": 1436810541.7125823, + "isdir": false, + "ctime": 1436810541.7125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5625823, + "inode": 526372, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3106", + "xusr": false, + "atime": 1436810540.5625823, + "isdir": false, + "ctime": 1436810540.5625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9695823, + "inode": 524458, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1192", + "xusr": false, + "atime": 1436810538.9695823, + "isdir": false, + "ctime": 1436810538.9695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4525824, + "inode": 527563, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4297", + "xusr": false, + "atime": 1436810541.4525824, + "isdir": false, + "ctime": 1436810541.4525824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8285823, + "inode": 525491, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2225", + "xusr": false, + "atime": 1436810539.8285823, + "isdir": false, + "ctime": 1436810539.8285823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7955823, + "inode": 525447, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2181", + "xusr": false, + "atime": 1436810539.7955823, + "isdir": false, + "ctime": 1436810539.7955823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5825822, + "inode": 523939, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/673", + "xusr": false, + "atime": 1436810538.5825822, + "isdir": false, + "ctime": 1436810538.5825822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2085824, + "inode": 523470, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/204", + "xusr": false, + "atime": 1436810538.2085824, + "isdir": false, + "ctime": 1436810538.2085824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8195822, + "inode": 526733, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3467", + "xusr": false, + "atime": 1436810540.8195822, + "isdir": false, + "ctime": 1436810540.8195822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3445823, + "inode": 523642, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/376", + "xusr": false, + "atime": 1436810538.3445823, + "isdir": false, + "ctime": 1436810538.3445823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0585823, + "inode": 524583, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1317", + "xusr": false, + "atime": 1436810539.0585823, + "isdir": false, + "ctime": 1436810539.0585823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7065823, + "inode": 525343, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2077", + "xusr": false, + "atime": 1436810539.7065823, + "isdir": false, + "ctime": 1436810539.7065823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2935822, + "inode": 524920, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1654", + "xusr": false, + "atime": 1436810539.2935822, + "isdir": false, + "ctime": 1436810539.2935822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7365823, + "inode": 525373, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2107", + "xusr": false, + "atime": 1436810539.7365823, + "isdir": false, + "ctime": 1436810539.7365823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3165822, + "inode": 524948, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1682", + "xusr": false, + "atime": 1436810539.3165822, + "isdir": false, + "ctime": 1436810539.3165822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1285822, + "inode": 524683, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1417", + "xusr": false, + "atime": 1436810539.1285822, + "isdir": false, + "ctime": 1436810539.1285822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6765823, + "inode": 527871, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4605", + "xusr": false, + "atime": 1436810541.6765823, + "isdir": false, + "ctime": 1436810541.6765823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2235823, + "inode": 525967, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2701", + "xusr": false, + "atime": 1436810540.2235823, + "isdir": false, + "ctime": 1436810540.2235823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7725823, + "inode": 524192, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/926", + "xusr": false, + "atime": 1436810538.7725823, + "isdir": false, + "ctime": 1436810538.7725823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5605824, + "inode": 525182, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1916", + "xusr": false, + "atime": 1436810539.5605824, + "isdir": false, + "ctime": 1436810539.5605824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8225822, + "inode": 528072, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4806", + "xusr": false, + "atime": 1436810541.8225822, + "isdir": false, + "ctime": 1436810541.8225822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5605824, + "inode": 523910, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/644", + "xusr": false, + "atime": 1436810538.5605824, + "isdir": false, + "ctime": 1436810538.5605824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3065822, + "inode": 527405, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4139", + "xusr": false, + "atime": 1436810541.3065822, + "isdir": false, + "ctime": 1436810541.3065822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7715824, + "inode": 526664, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3398", + "xusr": false, + "atime": 1436810540.7715824, + "isdir": false, + "ctime": 1436810540.7715824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3485823, + "inode": 527448, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4182", + "xusr": false, + "atime": 1436810541.3485823, + "isdir": false, + "ctime": 1436810541.3485823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9825823, + "inode": 525704, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2438", + "xusr": false, + "atime": 1436810539.9825823, + "isdir": false, + "ctime": 1436810539.9825823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8295822, + "inode": 524267, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1001", + "xusr": false, + "atime": 1436810538.8295822, + "isdir": false, + "ctime": 1436810538.8295822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1835823, + "inode": 524762, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1496", + "xusr": false, + "atime": 1436810539.1835823, + "isdir": false, + "ctime": 1436810539.1835823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7285824, + "inode": 524135, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/869", + "xusr": false, + "atime": 1436810538.7285824, + "isdir": false, + "ctime": 1436810538.7285824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9615824, + "inode": 526932, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3666", + "xusr": false, + "atime": 1436810540.9615824, + "isdir": false, + "ctime": 1436810540.9615824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3635824, + "inode": 527458, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4192", + "xusr": false, + "atime": 1436810541.3635824, + "isdir": false, + "ctime": 1436810541.3635824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5945823, + "inode": 526417, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3151", + "xusr": false, + "atime": 1436810540.5945823, + "isdir": false, + "ctime": 1436810540.5945823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9625823, + "inode": 528266, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/5000", + "xusr": false, + "atime": 1436810541.9625823, + "isdir": false, + "ctime": 1436810541.9625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2315824, + "inode": 523501, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/235", + "xusr": false, + "atime": 1436810538.2315824, + "isdir": false, + "ctime": 1436810538.2315824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9105823, + "inode": 528195, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4929", + "xusr": false, + "atime": 1436810541.9105823, + "isdir": false, + "ctime": 1436810541.9105823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5955822, + "inode": 527761, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4495", + "xusr": false, + "atime": 1436810541.5955822, + "isdir": false, + "ctime": 1436810541.5955822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0595822, + "inode": 527066, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3800", + "xusr": false, + "atime": 1436810541.0595822, + "isdir": false, + "ctime": 1436810541.0595822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7855823, + "inode": 524208, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/942", + "xusr": false, + "atime": 1436810538.7855823, + "isdir": false, + "ctime": 1436810538.7855823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3045824, + "inode": 526058, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2792", + "xusr": false, + "atime": 1436810540.3045824, + "isdir": false, + "ctime": 1436810540.3045824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7005823, + "inode": 527905, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4639", + "xusr": false, + "atime": 1436810541.7005823, + "isdir": false, + "ctime": 1436810541.7005823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8695824, + "inode": 528137, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4871", + "xusr": false, + "atime": 1436810541.8695824, + "isdir": false, + "ctime": 1436810541.8695824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1125822, + "inode": 527141, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3875", + "xusr": false, + "atime": 1436810541.1125822, + "isdir": false, + "ctime": 1436810541.1125822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2355824, + "inode": 525982, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2716", + "xusr": false, + "atime": 1436810540.2355824, + "isdir": false, + "ctime": 1436810540.2355824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2895823, + "inode": 527384, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4118", + "xusr": false, + "atime": 1436810541.2895823, + "isdir": false, + "ctime": 1436810541.2895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4075823, + "inode": 526203, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2937", + "xusr": false, + "atime": 1436810540.4075823, + "isdir": false, + "ctime": 1436810540.4075823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5125823, + "inode": 525132, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1866", + "xusr": false, + "atime": 1436810539.5125823, + "isdir": false, + "ctime": 1436810539.5125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6995823, + "inode": 525334, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2068", + "xusr": false, + "atime": 1436810539.6995823, + "isdir": false, + "ctime": 1436810539.6995823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4615824, + "inode": 525078, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1812", + "xusr": false, + "atime": 1436810539.4615824, + "isdir": false, + "ctime": 1436810539.4615824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0345824, + "inode": 527031, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3765", + "xusr": false, + "atime": 1436810541.0345824, + "isdir": false, + "ctime": 1436810541.0345824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6905823, + "inode": 527891, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4625", + "xusr": false, + "atime": 1436810541.6905823, + "isdir": false, + "ctime": 1436810541.6905823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9195824, + "inode": 524389, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1123", + "xusr": false, + "atime": 1436810538.9195824, + "isdir": false, + "ctime": 1436810538.9195824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0305824, + "inode": 527026, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3760", + "xusr": false, + "atime": 1436810541.0305824, + "isdir": false, + "ctime": 1436810541.0305824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9345822, + "inode": 526895, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3629", + "xusr": false, + "atime": 1436810540.9345822, + "isdir": false, + "ctime": 1436810540.9345822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8935823, + "inode": 528170, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4904", + "xusr": false, + "atime": 1436810541.8935823, + "isdir": false, + "ctime": 1436810541.8935823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8495822, + "inode": 528109, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4843", + "xusr": false, + "atime": 1436810541.8495822, + "isdir": false, + "ctime": 1436810541.8495822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1155822, + "inode": 525856, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2590", + "xusr": false, + "atime": 1436810540.1155822, + "isdir": false, + "ctime": 1436810540.1155822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3495822, + "inode": 523649, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/383", + "xusr": false, + "atime": 1436810538.3495822, + "isdir": false, + "ctime": 1436810538.3495822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9305823, + "inode": 525633, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2367", + "xusr": false, + "atime": 1436810539.9305823, + "isdir": false, + "ctime": 1436810539.9305823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8055823, + "inode": 525458, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2192", + "xusr": false, + "atime": 1436810539.8055823, + "isdir": false, + "ctime": 1436810539.8055823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5905824, + "inode": 526412, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3146", + "xusr": false, + "atime": 1436810540.5905824, + "isdir": false, + "ctime": 1436810540.5905824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6885824, + "inode": 526548, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3282", + "xusr": false, + "atime": 1436810540.6885824, + "isdir": false, + "ctime": 1436810540.6885824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2695823, + "inode": 526017, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2751", + "xusr": false, + "atime": 1436810540.2695823, + "isdir": false, + "ctime": 1436810540.2695823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9625823, + "inode": 524447, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1181", + "xusr": false, + "atime": 1436810538.9625823, + "isdir": false, + "ctime": 1436810538.9625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9215822, + "inode": 525621, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2355", + "xusr": false, + "atime": 1436810539.9215822, + "isdir": false, + "ctime": 1436810539.9215822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4865823, + "inode": 527610, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4344", + "xusr": false, + "atime": 1436810541.4865823, + "isdir": false, + "ctime": 1436810541.4865823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2585824, + "inode": 523539, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/273", + "xusr": false, + "atime": 1436810538.2585824, + "isdir": false, + "ctime": 1436810538.2585824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7095823, + "inode": 526579, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3313", + "xusr": false, + "atime": 1436810540.7095823, + "isdir": false, + "ctime": 1436810540.7095823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7995822, + "inode": 525451, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2185", + "xusr": false, + "atime": 1436810539.7995822, + "isdir": false, + "ctime": 1436810539.7995822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0665822, + "inode": 523271, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/5", + "xusr": false, + "atime": 1436810538.0665822, + "isdir": false, + "ctime": 1436810538.0665822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5435822, + "inode": 526347, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3081", + "xusr": false, + "atime": 1436810540.5435822, + "isdir": false, + "ctime": 1436810540.5435822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3075824, + "inode": 526062, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2796", + "xusr": false, + "atime": 1436810540.3075824, + "isdir": false, + "ctime": 1436810540.3075824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1535823, + "inode": 523390, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/124", + "xusr": false, + "atime": 1436810538.1535823, + "isdir": false, + "ctime": 1436810538.1535823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7145822, + "inode": 524119, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/853", + "xusr": false, + "atime": 1436810538.7145822, + "isdir": false, + "ctime": 1436810538.7145822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3165822, + "inode": 526075, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2809", + "xusr": false, + "atime": 1436810540.3165822, + "isdir": false, + "ctime": 1436810540.3165822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7085824, + "inode": 524111, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/845", + "xusr": false, + "atime": 1436810538.7085824, + "isdir": false, + "ctime": 1436810538.7085824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9035823, + "inode": 528185, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4919", + "xusr": false, + "atime": 1436810541.9035823, + "isdir": false, + "ctime": 1436810541.9035823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6535823, + "inode": 526499, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3233", + "xusr": false, + "atime": 1436810540.6535823, + "isdir": false, + "ctime": 1436810540.6535823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3315823, + "inode": 526096, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2830", + "xusr": false, + "atime": 1436810540.3315823, + "isdir": false, + "ctime": 1436810540.3315823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6185822, + "inode": 526450, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3184", + "xusr": false, + "atime": 1436810540.6185822, + "isdir": false, + "ctime": 1436810540.6185822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3465824, + "inode": 524977, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1711", + "xusr": false, + "atime": 1436810539.3465824, + "isdir": false, + "ctime": 1436810539.3465824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9855824, + "inode": 526967, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3701", + "xusr": false, + "atime": 1436810540.9855824, + "isdir": false, + "ctime": 1436810540.9855824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5795822, + "inode": 525205, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1939", + "xusr": false, + "atime": 1436810539.5795822, + "isdir": false, + "ctime": 1436810539.5795822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2865822, + "inode": 524910, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1644", + "xusr": false, + "atime": 1436810539.2865822, + "isdir": false, + "ctime": 1436810539.2865822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1185822, + "inode": 523341, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/75", + "xusr": false, + "atime": 1436810538.1185822, + "isdir": false, + "ctime": 1436810538.1185822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7645824, + "inode": 527993, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4727", + "xusr": false, + "atime": 1436810541.7645824, + "isdir": false, + "ctime": 1436810541.7645824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6505823, + "inode": 526494, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3228", + "xusr": false, + "atime": 1436810540.6505823, + "isdir": false, + "ctime": 1436810540.6505823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3315823, + "inode": 527430, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4164", + "xusr": false, + "atime": 1436810541.3315823, + "isdir": false, + "ctime": 1436810541.3315823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7725823, + "inode": 525417, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2151", + "xusr": false, + "atime": 1436810539.7725823, + "isdir": false, + "ctime": 1436810539.7725823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0975823, + "inode": 524639, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1373", + "xusr": false, + "atime": 1436810539.0975823, + "isdir": false, + "ctime": 1436810539.0975823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1445823, + "inode": 524706, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1440", + "xusr": false, + "atime": 1436810539.1445823, + "isdir": false, + "ctime": 1436810539.1445823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9915824, + "inode": 524488, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1222", + "xusr": false, + "atime": 1436810538.9915824, + "isdir": false, + "ctime": 1436810538.9915824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8685822, + "inode": 525547, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2281", + "xusr": false, + "atime": 1436810539.8685822, + "isdir": false, + "ctime": 1436810539.8685822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8975823, + "inode": 526842, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3576", + "xusr": false, + "atime": 1436810540.8975823, + "isdir": false, + "ctime": 1436810540.8975823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9045823, + "inode": 524368, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1102", + "xusr": false, + "atime": 1436810538.9045823, + "isdir": false, + "ctime": 1436810538.9045823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0315824, + "inode": 527027, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3761", + "xusr": false, + "atime": 1436810541.0315824, + "isdir": false, + "ctime": 1436810541.0315824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4425824, + "inode": 527549, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4283", + "xusr": false, + "atime": 1436810541.4425824, + "isdir": false, + "ctime": 1436810541.4425824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1945822, + "inode": 524777, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1511", + "xusr": false, + "atime": 1436810539.1945822, + "isdir": false, + "ctime": 1436810539.1945822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8115823, + "inode": 528058, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4792", + "xusr": false, + "atime": 1436810541.8115823, + "isdir": false, + "ctime": 1436810541.8115823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1045823, + "inode": 524648, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1382", + "xusr": false, + "atime": 1436810539.1045823, + "isdir": false, + "ctime": 1436810539.1045823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5655823, + "inode": 525189, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1923", + "xusr": false, + "atime": 1436810539.5655823, + "isdir": false, + "ctime": 1436810539.5655823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1795824, + "inode": 527230, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3964", + "xusr": false, + "atime": 1436810541.1795824, + "isdir": false, + "ctime": 1436810541.1795824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4915824, + "inode": 527618, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4352", + "xusr": false, + "atime": 1436810541.4915824, + "isdir": false, + "ctime": 1436810541.4915824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8185823, + "inode": 524252, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/986", + "xusr": false, + "atime": 1436810538.8185823, + "isdir": false, + "ctime": 1436810538.8185823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8395822, + "inode": 528096, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4830", + "xusr": false, + "atime": 1436810541.8395822, + "isdir": false, + "ctime": 1436810541.8395822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1975822, + "inode": 524782, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1516", + "xusr": false, + "atime": 1436810539.1975822, + "isdir": false, + "ctime": 1436810539.1975822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3155823, + "inode": 526074, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2808", + "xusr": false, + "atime": 1436810540.3155823, + "isdir": false, + "ctime": 1436810540.3155823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3895824, + "inode": 525016, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1750", + "xusr": false, + "atime": 1436810539.3895824, + "isdir": false, + "ctime": 1436810539.3895824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1315823, + "inode": 527166, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3900", + "xusr": false, + "atime": 1436810541.1315823, + "isdir": false, + "ctime": 1436810541.1315823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3805823, + "inode": 523674, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/408", + "xusr": false, + "atime": 1436810538.3805823, + "isdir": false, + "ctime": 1436810538.3805823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6335824, + "inode": 527814, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4548", + "xusr": false, + "atime": 1436810541.6335824, + "isdir": false, + "ctime": 1436810541.6335824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2685823, + "inode": 523553, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/287", + "xusr": false, + "atime": 1436810538.2685823, + "isdir": false, + "ctime": 1436810538.2685823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1625824, + "inode": 524732, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1466", + "xusr": false, + "atime": 1436810539.1625824, + "isdir": false, + "ctime": 1436810539.1625824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4905822, + "inode": 527616, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4350", + "xusr": false, + "atime": 1436810541.4905822, + "isdir": false, + "ctime": 1436810541.4905822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4925823, + "inode": 525113, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1847", + "xusr": false, + "atime": 1436810539.4925823, + "isdir": false, + "ctime": 1436810539.4925823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5405824, + "inode": 527684, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4418", + "xusr": false, + "atime": 1436810541.5405824, + "isdir": false, + "ctime": 1436810541.5405824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5225823, + "inode": 523858, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/592", + "xusr": false, + "atime": 1436810538.5225823, + "isdir": false, + "ctime": 1436810538.5225823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0165823, + "inode": 525751, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2485", + "xusr": false, + "atime": 1436810540.0165823, + "isdir": false, + "ctime": 1436810540.0165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6695824, + "inode": 525306, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2040", + "xusr": false, + "atime": 1436810539.6695824, + "isdir": false, + "ctime": 1436810539.6695824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2105823, + "inode": 524800, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1534", + "xusr": false, + "atime": 1436810539.2105823, + "isdir": false, + "ctime": 1436810539.2105823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8235824, + "inode": 524258, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/992", + "xusr": false, + "atime": 1436810538.8235824, + "isdir": false, + "ctime": 1436810538.8235824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2555823, + "inode": 524865, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1599", + "xusr": false, + "atime": 1436810539.2555823, + "isdir": false, + "ctime": 1436810539.2555823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6505823, + "inode": 525287, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2021", + "xusr": false, + "atime": 1436810539.6505823, + "isdir": false, + "ctime": 1436810539.6505823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7485824, + "inode": 526633, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3367", + "xusr": false, + "atime": 1436810540.7485824, + "isdir": false, + "ctime": 1436810540.7485824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1795824, + "inode": 523428, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/162", + "xusr": false, + "atime": 1436810538.1795824, + "isdir": false, + "ctime": 1436810538.1795824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4145823, + "inode": 527512, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4246", + "xusr": false, + "atime": 1436810541.4145823, + "isdir": false, + "ctime": 1436810541.4145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2055824, + "inode": 524794, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1528", + "xusr": false, + "atime": 1436810539.2055824, + "isdir": false, + "ctime": 1436810539.2055824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5635824, + "inode": 526374, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3108", + "xusr": false, + "atime": 1436810540.5635824, + "isdir": false, + "ctime": 1436810540.5635824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2475822, + "inode": 525994, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2728", + "xusr": false, + "atime": 1436810540.2475822, + "isdir": false, + "ctime": 1436810540.2475822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8745823, + "inode": 528144, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4878", + "xusr": false, + "atime": 1436810541.8745823, + "isdir": false, + "ctime": 1436810541.8745823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7045822, + "inode": 524107, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/841", + "xusr": false, + "atime": 1436810538.7045822, + "isdir": false, + "ctime": 1436810538.7045822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9065824, + "inode": 528188, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4922", + "xusr": false, + "atime": 1436810541.9065824, + "isdir": false, + "ctime": 1436810541.9065824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2795823, + "inode": 524900, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1634", + "xusr": false, + "atime": 1436810539.2795823, + "isdir": false, + "ctime": 1436810539.2795823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5655823, + "inode": 527719, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4453", + "xusr": false, + "atime": 1436810541.5655823, + "isdir": false, + "ctime": 1436810541.5655823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9625823, + "inode": 526934, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3668", + "xusr": false, + "atime": 1436810540.9625823, + "isdir": false, + "ctime": 1436810540.9625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7855823, + "inode": 525436, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2170", + "xusr": false, + "atime": 1436810539.7855823, + "isdir": false, + "ctime": 1436810539.7855823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0815823, + "inode": 524615, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1349", + "xusr": false, + "atime": 1436810539.0815823, + "isdir": false, + "ctime": 1436810539.0815823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2125823, + "inode": 523475, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/209", + "xusr": false, + "atime": 1436810538.2125823, + "isdir": false, + "ctime": 1436810538.2125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4105823, + "inode": 526207, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2941", + "xusr": false, + "atime": 1436810540.4105823, + "isdir": false, + "ctime": 1436810540.4105823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1425824, + "inode": 524703, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1437", + "xusr": false, + "atime": 1436810539.1425824, + "isdir": false, + "ctime": 1436810539.1425824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4775822, + "inode": 526280, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3014", + "xusr": false, + "atime": 1436810540.4775822, + "isdir": false, + "ctime": 1436810540.4775822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4465823, + "inode": 526251, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2985", + "xusr": false, + "atime": 1436810540.4465823, + "isdir": false, + "ctime": 1436810540.4465823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3765824, + "inode": 523668, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/402", + "xusr": false, + "atime": 1436810538.3765824, + "isdir": false, + "ctime": 1436810538.3765824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8485823, + "inode": 525519, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2253", + "xusr": false, + "atime": 1436810539.8485823, + "isdir": false, + "ctime": 1436810539.8485823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1865823, + "inode": 527239, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3973", + "xusr": false, + "atime": 1436810541.1865823, + "isdir": false, + "ctime": 1436810541.1865823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6395824, + "inode": 527821, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4555", + "xusr": false, + "atime": 1436810541.6395824, + "isdir": false, + "ctime": 1436810541.6395824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2685823, + "inode": 523554, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/288", + "xusr": false, + "atime": 1436810538.2685823, + "isdir": false, + "ctime": 1436810538.2685823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1295824, + "inode": 527163, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3897", + "xusr": false, + "atime": 1436810541.1295824, + "isdir": false, + "ctime": 1436810541.1295824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4775822, + "inode": 523796, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/530", + "xusr": false, + "atime": 1436810538.4775822, + "isdir": false, + "ctime": 1436810538.4775822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0705824, + "inode": 527082, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3816", + "xusr": false, + "atime": 1436810541.0705824, + "isdir": false, + "ctime": 1436810541.0705824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5315824, + "inode": 526330, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3064", + "xusr": false, + "atime": 1436810540.5315824, + "isdir": false, + "ctime": 1436810540.5315824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4535823, + "inode": 526260, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2994", + "xusr": false, + "atime": 1436810540.4535823, + "isdir": false, + "ctime": 1436810540.4535823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8705823, + "inode": 525550, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2284", + "xusr": false, + "atime": 1436810539.8705823, + "isdir": false, + "ctime": 1436810539.8705823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8065822, + "inode": 525460, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2194", + "xusr": false, + "atime": 1436810539.8065822, + "isdir": false, + "ctime": 1436810539.8065822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0775824, + "inode": 525821, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2555", + "xusr": false, + "atime": 1436810540.0775824, + "isdir": false, + "ctime": 1436810540.0775824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8775823, + "inode": 528148, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4882", + "xusr": false, + "atime": 1436810541.8775823, + "isdir": false, + "ctime": 1436810541.8775823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4115822, + "inode": 525037, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1771", + "xusr": false, + "atime": 1436810539.4115822, + "isdir": false, + "ctime": 1436810539.4115822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9595823, + "inode": 525672, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2406", + "xusr": false, + "atime": 1436810539.9595823, + "isdir": false, + "ctime": 1436810539.9595823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7175822, + "inode": 525354, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2088", + "xusr": false, + "atime": 1436810539.7175822, + "isdir": false, + "ctime": 1436810539.7175822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6465824, + "inode": 525284, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2018", + "xusr": false, + "atime": 1436810539.6465824, + "isdir": false, + "ctime": 1436810539.6465824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1165824, + "inode": 525857, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2591", + "xusr": false, + "atime": 1436810540.1165824, + "isdir": false, + "ctime": 1436810540.1165824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6665823, + "inode": 527858, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4592", + "xusr": false, + "atime": 1436810541.6665823, + "isdir": false, + "ctime": 1436810541.6665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6325824, + "inode": 526470, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3204", + "xusr": false, + "atime": 1436810540.6325824, + "isdir": false, + "ctime": 1436810540.6325824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3125823, + "inode": 523612, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/346", + "xusr": false, + "atime": 1436810538.3125823, + "isdir": false, + "ctime": 1436810538.3125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2825823, + "inode": 526033, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2767", + "xusr": false, + "atime": 1436810540.2825823, + "isdir": false, + "ctime": 1436810540.2825823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7965822, + "inode": 524222, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/956", + "xusr": false, + "atime": 1436810538.7965822, + "isdir": false, + "ctime": 1436810538.7965822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6545823, + "inode": 526501, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3235", + "xusr": false, + "atime": 1436810540.6545823, + "isdir": false, + "ctime": 1436810540.6545823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4595823, + "inode": 527572, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4306", + "xusr": false, + "atime": 1436810541.4595823, + "isdir": false, + "ctime": 1436810541.4595823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7425823, + "inode": 527963, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4697", + "xusr": false, + "atime": 1436810541.7425823, + "isdir": false, + "ctime": 1436810541.7425823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6865823, + "inode": 527886, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4620", + "xusr": false, + "atime": 1436810541.6865823, + "isdir": false, + "ctime": 1436810541.6865823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8875823, + "inode": 524344, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1078", + "xusr": false, + "atime": 1436810538.8875823, + "isdir": false, + "ctime": 1436810538.8875823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4415822, + "inode": 527548, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4282", + "xusr": false, + "atime": 1436810541.4415822, + "isdir": false, + "ctime": 1436810541.4415822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1715822, + "inode": 524745, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1479", + "xusr": false, + "atime": 1436810539.1715822, + "isdir": false, + "ctime": 1436810539.1715822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.3615823, + "inode": 523655, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/389", + "xusr": false, + "atime": 1436810538.3615823, + "isdir": false, + "ctime": 1436810538.3615823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0845823, + "inode": 523297, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/31", + "xusr": false, + "atime": 1436810538.0845823, + "isdir": false, + "ctime": 1436810538.0845823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2185824, + "inode": 524813, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1547", + "xusr": false, + "atime": 1436810539.2185824, + "isdir": false, + "ctime": 1436810539.2185824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4295824, + "inode": 526233, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2967", + "xusr": false, + "atime": 1436810540.4295824, + "isdir": false, + "ctime": 1436810540.4295824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8525822, + "inode": 524297, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1031", + "xusr": false, + "atime": 1436810538.8525822, + "isdir": false, + "ctime": 1436810538.8525822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8505824, + "inode": 526775, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3509", + "xusr": false, + "atime": 1436810540.8505824, + "isdir": false, + "ctime": 1436810540.8505824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6295824, + "inode": 526466, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3200", + "xusr": false, + "atime": 1436810540.6295824, + "isdir": false, + "ctime": 1436810540.6295824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6215823, + "inode": 527798, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4532", + "xusr": false, + "atime": 1436810541.6215823, + "isdir": false, + "ctime": 1436810541.6215823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1515822, + "inode": 527194, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3928", + "xusr": false, + "atime": 1436810541.1515822, + "isdir": false, + "ctime": 1436810541.1515822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0975823, + "inode": 527120, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3854", + "xusr": false, + "atime": 1436810541.0975823, + "isdir": false, + "ctime": 1436810541.0975823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4715824, + "inode": 523787, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/521", + "xusr": false, + "atime": 1436810538.4715824, + "isdir": false, + "ctime": 1436810538.4715824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0885823, + "inode": 527107, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3841", + "xusr": false, + "atime": 1436810541.0885823, + "isdir": false, + "ctime": 1436810541.0885823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0795822, + "inode": 527094, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3828", + "xusr": false, + "atime": 1436810541.0795822, + "isdir": false, + "ctime": 1436810541.0795822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3895824, + "inode": 527480, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4214", + "xusr": false, + "atime": 1436810541.3895824, + "isdir": false, + "ctime": 1436810541.3895824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4905822, + "inode": 523814, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/548", + "xusr": false, + "atime": 1436810538.4905822, + "isdir": false, + "ctime": 1436810538.4905822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9945824, + "inode": 526977, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3711", + "xusr": false, + "atime": 1436810540.9945824, + "isdir": false, + "ctime": 1436810540.9945824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2935822, + "inode": 523590, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/324", + "xusr": false, + "atime": 1436810538.2935822, + "isdir": false, + "ctime": 1436810538.2935822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9005823, + "inode": 528181, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4915", + "xusr": false, + "atime": 1436810541.9005823, + "isdir": false, + "ctime": 1436810541.9005823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9785824, + "inode": 524470, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1204", + "xusr": false, + "atime": 1436810538.9785824, + "isdir": false, + "ctime": 1436810538.9785824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4015822, + "inode": 523698, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/432", + "xusr": false, + "atime": 1436810538.4015822, + "isdir": false, + "ctime": 1436810538.4015822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8955822, + "inode": 525586, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2320", + "xusr": false, + "atime": 1436810539.8955822, + "isdir": false, + "ctime": 1436810539.8955822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0125823, + "inode": 525746, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2480", + "xusr": false, + "atime": 1436810540.0125823, + "isdir": false, + "ctime": 1436810540.0125823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1585822, + "inode": 524726, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1460", + "xusr": false, + "atime": 1436810539.1585822, + "isdir": false, + "ctime": 1436810539.1585822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4105823, + "inode": 527506, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4240", + "xusr": false, + "atime": 1436810541.4105823, + "isdir": false, + "ctime": 1436810541.4105823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6095824, + "inode": 523977, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/711", + "xusr": false, + "atime": 1436810538.6095824, + "isdir": false, + "ctime": 1436810538.6095824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6835823, + "inode": 527881, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4615", + "xusr": false, + "atime": 1436810541.6835823, + "isdir": false, + "ctime": 1436810541.6835823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1325824, + "inode": 523360, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/94", + "xusr": false, + "atime": 1436810538.1325824, + "isdir": false, + "ctime": 1436810538.1325824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9375823, + "inode": 525643, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2377", + "xusr": false, + "atime": 1436810539.9375823, + "isdir": false, + "ctime": 1436810539.9375823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1605823, + "inode": 523400, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/134", + "xusr": false, + "atime": 1436810538.1605823, + "isdir": false, + "ctime": 1436810538.1605823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8715823, + "inode": 528140, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4874", + "xusr": false, + "atime": 1436810541.8715823, + "isdir": false, + "ctime": 1436810541.8715823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5045824, + "inode": 525125, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1859", + "xusr": false, + "atime": 1436810539.5045824, + "isdir": false, + "ctime": 1436810539.5045824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8515823, + "inode": 528111, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4845", + "xusr": false, + "atime": 1436810541.8515823, + "isdir": false, + "ctime": 1436810541.8515823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6345823, + "inode": 527815, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4549", + "xusr": false, + "atime": 1436810541.6345823, + "isdir": false, + "ctime": 1436810541.6345823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7255824, + "inode": 524131, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/865", + "xusr": false, + "atime": 1436810538.7255824, + "isdir": false, + "ctime": 1436810538.7255824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6065824, + "inode": 526435, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3169", + "xusr": false, + "atime": 1436810540.6065824, + "isdir": false, + "ctime": 1436810540.6065824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6635823, + "inode": 525301, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2035", + "xusr": false, + "atime": 1436810539.6635823, + "isdir": false, + "ctime": 1436810539.6635823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5425823, + "inode": 523885, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/619", + "xusr": false, + "atime": 1436810538.5425823, + "isdir": false, + "ctime": 1436810538.5425823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9975822, + "inode": 524496, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1230", + "xusr": false, + "atime": 1436810538.9975822, + "isdir": false, + "ctime": 1436810538.9975822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7185824, + "inode": 526591, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3325", + "xusr": false, + "atime": 1436810540.7185824, + "isdir": false, + "ctime": 1436810540.7185824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4125824, + "inode": 525039, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1773", + "xusr": false, + "atime": 1436810539.4125824, + "isdir": false, + "ctime": 1436810539.4125824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8215823, + "inode": 524256, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/990", + "xusr": false, + "atime": 1436810538.8215823, + "isdir": false, + "ctime": 1436810538.8215823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6925824, + "inode": 524090, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/824", + "xusr": false, + "atime": 1436810538.6925824, + "isdir": false, + "ctime": 1436810538.6925824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6595824, + "inode": 526507, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3241", + "xusr": false, + "atime": 1436810540.6595824, + "isdir": false, + "ctime": 1436810540.6595824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9815824, + "inode": 525703, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2437", + "xusr": false, + "atime": 1436810539.9815824, + "isdir": false, + "ctime": 1436810539.9815824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7435822, + "inode": 524155, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/889", + "xusr": false, + "atime": 1436810538.7435822, + "isdir": false, + "ctime": 1436810538.7435822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7395823, + "inode": 525377, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2111", + "xusr": false, + "atime": 1436810539.7395823, + "isdir": false, + "ctime": 1436810539.7395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5375824, + "inode": 526339, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3073", + "xusr": false, + "atime": 1436810540.5375824, + "isdir": false, + "ctime": 1436810540.5375824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6735823, + "inode": 526527, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3261", + "xusr": false, + "atime": 1436810540.6735823, + "isdir": false, + "ctime": 1436810540.6735823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0825822, + "inode": 523294, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/28", + "xusr": false, + "atime": 1436810538.0825822, + "isdir": false, + "ctime": 1436810538.0825822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7865822, + "inode": 528023, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4757", + "xusr": false, + "atime": 1436810541.7865822, + "isdir": false, + "ctime": 1436810541.7865822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.4275823, + "inode": 525059, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1793", + "xusr": false, + "atime": 1436810539.4275823, + "isdir": false, + "ctime": 1436810539.4275823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6235824, + "inode": 526457, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3191", + "xusr": false, + "atime": 1436810540.6235824, + "isdir": false, + "ctime": 1436810540.6235824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1565824, + "inode": 527201, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3935", + "xusr": false, + "atime": 1436810541.1565824, + "isdir": false, + "ctime": 1436810541.1565824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0745823, + "inode": 524606, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1340", + "xusr": false, + "atime": 1436810539.0745823, + "isdir": false, + "ctime": 1436810539.0745823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7515824, + "inode": 524165, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/899", + "xusr": false, + "atime": 1436810538.7515824, + "isdir": false, + "ctime": 1436810538.7515824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1095824, + "inode": 525851, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2585", + "xusr": false, + "atime": 1436810540.1095824, + "isdir": false, + "ctime": 1436810540.1095824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1095824, + "inode": 527137, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3871", + "xusr": false, + "atime": 1436810541.1095824, + "isdir": false, + "ctime": 1436810541.1095824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3795824, + "inode": 527471, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4205", + "xusr": false, + "atime": 1436810541.3795824, + "isdir": false, + "ctime": 1436810541.3795824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3295822, + "inode": 527427, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4161", + "xusr": false, + "atime": 1436810541.3295822, + "isdir": false, + "ctime": 1436810541.3295822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5255823, + "inode": 525145, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1879", + "xusr": false, + "atime": 1436810539.5255823, + "isdir": false, + "ctime": 1436810539.5255823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5185823, + "inode": 527654, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4388", + "xusr": false, + "atime": 1436810541.5185823, + "isdir": false, + "ctime": 1436810541.5185823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.8815823, + "inode": 525566, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2300", + "xusr": false, + "atime": 1436810539.8815823, + "isdir": false, + "ctime": 1436810539.8815823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9035823, + "inode": 525597, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2331", + "xusr": false, + "atime": 1436810539.9035823, + "isdir": false, + "ctime": 1436810539.9035823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1225822, + "inode": 524675, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1409", + "xusr": false, + "atime": 1436810539.1225822, + "isdir": false, + "ctime": 1436810539.1225822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9285824, + "inode": 524401, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1135", + "xusr": false, + "atime": 1436810538.9285824, + "isdir": false, + "ctime": 1436810538.9285824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4405823, + "inode": 523744, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/478", + "xusr": false, + "atime": 1436810538.4405823, + "isdir": false, + "ctime": 1436810538.4405823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6985824, + "inode": 525333, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2067", + "xusr": false, + "atime": 1436810539.6985824, + "isdir": false, + "ctime": 1436810539.6985824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4665823, + "inode": 526271, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3005", + "xusr": false, + "atime": 1436810540.4665823, + "isdir": false, + "ctime": 1436810540.4665823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2645824, + "inode": 524879, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1613", + "xusr": false, + "atime": 1436810539.2645824, + "isdir": false, + "ctime": 1436810539.2645824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1515822, + "inode": 524716, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1450", + "xusr": false, + "atime": 1436810539.1515822, + "isdir": false, + "ctime": 1436810539.1515822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2335823, + "inode": 527305, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4039", + "xusr": false, + "atime": 1436810541.2335823, + "isdir": false, + "ctime": 1436810541.2335823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5535824, + "inode": 526360, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3094", + "xusr": false, + "atime": 1436810540.5535824, + "isdir": false, + "ctime": 1436810540.5535824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5455823, + "inode": 527691, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4425", + "xusr": false, + "atime": 1436810541.5455823, + "isdir": false, + "ctime": 1436810541.5455823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2345824, + "inode": 525981, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2715", + "xusr": false, + "atime": 1436810540.2345824, + "isdir": false, + "ctime": 1436810540.2345824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1085823, + "inode": 524654, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1388", + "xusr": false, + "atime": 1436810539.1085823, + "isdir": false, + "ctime": 1436810539.1085823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.1105824, + "inode": 523329, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/63", + "xusr": false, + "atime": 1436810538.1105824, + "isdir": false, + "ctime": 1436810538.1105824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1345823, + "inode": 525874, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2608", + "xusr": false, + "atime": 1436810540.1345823, + "isdir": false, + "ctime": 1436810540.1345823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9045823, + "inode": 525598, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2332", + "xusr": false, + "atime": 1436810539.9045823, + "isdir": false, + "ctime": 1436810539.9045823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8525822, + "inode": 526779, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3513", + "xusr": false, + "atime": 1436810540.8525822, + "isdir": false, + "ctime": 1436810540.8525822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6015823, + "inode": 525226, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1960", + "xusr": false, + "atime": 1436810539.6015823, + "isdir": false, + "ctime": 1436810539.6015823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5475824, + "inode": 523892, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/626", + "xusr": false, + "atime": 1436810538.5475824, + "isdir": false, + "ctime": 1436810538.5475824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4175823, + "inode": 526217, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2951", + "xusr": false, + "atime": 1436810540.4175823, + "isdir": false, + "ctime": 1436810540.4175823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.7105823, + "inode": 525346, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2080", + "xusr": false, + "atime": 1436810539.7105823, + "isdir": false, + "ctime": 1436810539.7105823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4785824, + "inode": 526282, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3016", + "xusr": false, + "atime": 1436810540.4785824, + "isdir": false, + "ctime": 1436810540.4785824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2485824, + "inode": 524855, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1589", + "xusr": false, + "atime": 1436810539.2485824, + "isdir": false, + "ctime": 1436810539.2485824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6895823, + "inode": 527890, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4624", + "xusr": false, + "atime": 1436810541.6895823, + "isdir": false, + "ctime": 1436810541.6895823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1955824, + "inode": 524779, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1513", + "xusr": false, + "atime": 1436810539.1955824, + "isdir": false, + "ctime": 1436810539.1955824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3265822, + "inode": 527423, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4157", + "xusr": false, + "atime": 1436810541.3265822, + "isdir": false, + "ctime": 1436810541.3265822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2455823, + "inode": 525992, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2726", + "xusr": false, + "atime": 1436810540.2455823, + "isdir": false, + "ctime": 1436810540.2455823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0525823, + "inode": 527057, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3791", + "xusr": false, + "atime": 1436810541.0525823, + "isdir": false, + "ctime": 1436810541.0525823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1185822, + "inode": 527150, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3884", + "xusr": false, + "atime": 1436810541.1185822, + "isdir": false, + "ctime": 1436810541.1185822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3955822, + "inode": 525020, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1754", + "xusr": false, + "atime": 1436810539.3955822, + "isdir": false, + "ctime": 1436810539.3955822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9275823, + "inode": 524400, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1134", + "xusr": false, + "atime": 1436810538.9275823, + "isdir": false, + "ctime": 1436810538.9275823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.5505824, + "inode": 527698, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4432", + "xusr": false, + "atime": 1436810541.5505824, + "isdir": false, + "ctime": 1436810541.5505824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1485822, + "inode": 527190, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3924", + "xusr": false, + "atime": 1436810541.1485822, + "isdir": false, + "ctime": 1436810541.1485822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1865823, + "inode": 524766, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1500", + "xusr": false, + "atime": 1436810539.1865823, + "isdir": false, + "ctime": 1436810539.1865823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9245822, + "inode": 528214, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4948", + "xusr": false, + "atime": 1436810541.9245822, + "isdir": false, + "ctime": 1436810541.9245822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.6775823, + "inode": 524069, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/803", + "xusr": false, + "atime": 1436810538.6775823, + "isdir": false, + "ctime": 1436810538.6775823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2875824, + "inode": 526037, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2771", + "xusr": false, + "atime": 1436810540.2875824, + "isdir": false, + "ctime": 1436810540.2875824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2625823, + "inode": 527345, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4079", + "xusr": false, + "atime": 1436810541.2625823, + "isdir": false, + "ctime": 1436810541.2625823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8755822, + "inode": 526811, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3545", + "xusr": false, + "atime": 1436810540.8755822, + "isdir": false, + "ctime": 1436810540.8755822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8135824, + "inode": 524245, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/979", + "xusr": false, + "atime": 1436810538.8135824, + "isdir": false, + "ctime": 1436810538.8135824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.0745823, + "inode": 523283, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/17", + "xusr": false, + "atime": 1436810538.0745823, + "isdir": false, + "ctime": 1436810538.0745823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1855824, + "inode": 527238, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3972", + "xusr": false, + "atime": 1436810541.1855824, + "isdir": false, + "ctime": 1436810541.1855824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2635822, + "inode": 523546, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/280", + "xusr": false, + "atime": 1436810538.2635822, + "isdir": false, + "ctime": 1436810538.2635822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2475822, + "inode": 527325, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4059", + "xusr": false, + "atime": 1436810541.2475822, + "isdir": false, + "ctime": 1436810541.2475822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7715824, + "inode": 526665, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3399", + "xusr": false, + "atime": 1436810540.7715824, + "isdir": false, + "ctime": 1436810540.7715824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4335823, + "inode": 523734, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/468", + "xusr": false, + "atime": 1436810538.4335823, + "isdir": false, + "ctime": 1436810538.4335823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4815824, + "inode": 527604, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4338", + "xusr": false, + "atime": 1436810541.4815824, + "isdir": false, + "ctime": 1436810541.4815824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4315822, + "inode": 523732, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/466", + "xusr": false, + "atime": 1436810538.4315822, + "isdir": false, + "ctime": 1436810538.4315822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7265823, + "inode": 527941, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4675", + "xusr": false, + "atime": 1436810541.7265823, + "isdir": false, + "ctime": 1436810541.7265823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.1255822, + "inode": 524678, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1412", + "xusr": false, + "atime": 1436810539.1255822, + "isdir": false, + "ctime": 1436810539.1255822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7405822, + "inode": 526622, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3356", + "xusr": false, + "atime": 1436810540.7405822, + "isdir": false, + "ctime": 1436810540.7405822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6265824, + "inode": 525258, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1992", + "xusr": false, + "atime": 1436810539.6265824, + "isdir": false, + "ctime": 1436810539.6265824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0915823, + "inode": 525835, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2569", + "xusr": false, + "atime": 1436810540.0915823, + "isdir": false, + "ctime": 1436810540.0915823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.6065824, + "inode": 527777, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4511", + "xusr": false, + "atime": 1436810541.6065824, + "isdir": false, + "ctime": 1436810541.6065824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.4215822, + "inode": 526222, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2956", + "xusr": false, + "atime": 1436810540.4215822, + "isdir": false, + "ctime": 1436810540.4215822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5275824, + "inode": 526325, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3059", + "xusr": false, + "atime": 1436810540.5275824, + "isdir": false, + "ctime": 1436810540.5275824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4315822, + "inode": 523731, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/465", + "xusr": false, + "atime": 1436810538.4315822, + "isdir": false, + "ctime": 1436810538.4315822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9685824, + "inode": 524456, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1190", + "xusr": false, + "atime": 1436810538.9685824, + "isdir": false, + "ctime": 1436810538.9685824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7565823, + "inode": 526644, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3378", + "xusr": false, + "atime": 1436810540.7565823, + "isdir": false, + "ctime": 1436810540.7565823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8975823, + "inode": 528176, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4910", + "xusr": false, + "atime": 1436810541.8975823, + "isdir": false, + "ctime": 1436810541.8975823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.0365822, + "inode": 525778, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2512", + "xusr": false, + "atime": 1436810540.0365822, + "isdir": false, + "ctime": 1436810540.0365822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5725822, + "inode": 526386, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3120", + "xusr": false, + "atime": 1436810540.5725822, + "isdir": false, + "ctime": 1436810540.5725822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5615823, + "inode": 523911, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/645", + "xusr": false, + "atime": 1436810538.5615823, + "isdir": false, + "ctime": 1436810538.5615823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1245823, + "inode": 525864, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2598", + "xusr": false, + "atime": 1436810540.1245823, + "isdir": false, + "ctime": 1436810540.1245823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4465823, + "inode": 523752, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/486", + "xusr": false, + "atime": 1436810538.4465823, + "isdir": false, + "ctime": 1436810538.4465823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.7475822, + "inode": 524160, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/894", + "xusr": false, + "atime": 1436810538.7475822, + "isdir": false, + "ctime": 1436810538.7475822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0815823, + "inode": 524616, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1350", + "xusr": false, + "atime": 1436810539.0815823, + "isdir": false, + "ctime": 1436810539.0815823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.2995822, + "inode": 527398, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4132", + "xusr": false, + "atime": 1436810541.2995822, + "isdir": false, + "ctime": 1436810541.2995822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.1155822, + "inode": 527145, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3879", + "xusr": false, + "atime": 1436810541.1155822, + "isdir": false, + "ctime": 1436810541.1155822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9315822, + "inode": 528223, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4957", + "xusr": false, + "atime": 1436810541.9315822, + "isdir": false, + "ctime": 1436810541.9315822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.4555824, + "inode": 523765, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/499", + "xusr": false, + "atime": 1436810538.4555824, + "isdir": false, + "ctime": 1436810538.4555824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2955823, + "inode": 526047, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2781", + "xusr": false, + "atime": 1436810540.2955823, + "isdir": false, + "ctime": 1436810540.2955823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1205823, + "inode": 525860, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2594", + "xusr": false, + "atime": 1436810540.1205823, + "isdir": false, + "ctime": 1436810540.1205823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9595823, + "inode": 526929, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3663", + "xusr": false, + "atime": 1436810540.9595823, + "isdir": false, + "ctime": 1436810540.9595823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.2045822, + "inode": 525944, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2678", + "xusr": false, + "atime": 1436810540.2045822, + "isdir": false, + "ctime": 1436810540.2045822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.3145823, + "inode": 526072, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2806", + "xusr": false, + "atime": 1436810540.3145823, + "isdir": false, + "ctime": 1436810540.3145823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.8075824, + "inode": 524236, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/970", + "xusr": false, + "atime": 1436810538.8075824, + "isdir": false, + "ctime": 1436810538.8075824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.9215822, + "inode": 528209, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4943", + "xusr": false, + "atime": 1436810541.9215822, + "isdir": false, + "ctime": 1436810541.9215822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.7535822, + "inode": 527977, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4711", + "xusr": false, + "atime": 1436810541.7535822, + "isdir": false, + "ctime": 1436810541.7535822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.5145824, + "inode": 526313, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3047", + "xusr": false, + "atime": 1436810540.5145824, + "isdir": false, + "ctime": 1436810540.5145824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.2245822, + "inode": 523492, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/226", + "xusr": false, + "atime": 1436810538.2245822, + "isdir": false, + "ctime": 1436810538.2245822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.4255824, + "inode": 527526, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4260", + "xusr": false, + "atime": 1436810541.4255824, + "isdir": false, + "ctime": 1436810541.4255824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.8065822, + "inode": 528052, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4786", + "xusr": false, + "atime": 1436810541.8065822, + "isdir": false, + "ctime": 1436810541.8065822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2245822, + "inode": 524821, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1555", + "xusr": false, + "atime": 1436810539.2245822, + "isdir": false, + "ctime": 1436810539.2245822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.1945822, + "inode": 525934, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2668", + "xusr": false, + "atime": 1436810540.1945822, + "isdir": false, + "ctime": 1436810540.1945822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6695824, + "inode": 526522, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3256", + "xusr": false, + "atime": 1436810540.6695824, + "isdir": false, + "ctime": 1436810540.6695824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.8745823, + "inode": 526809, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3543", + "xusr": false, + "atime": 1436810540.8745823, + "isdir": false, + "ctime": 1436810540.8745823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.9065824, + "inode": 525601, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2335", + "xusr": false, + "atime": 1436810539.9065824, + "isdir": false, + "ctime": 1436810539.9065824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.2395823, + "inode": 524843, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1577", + "xusr": false, + "atime": 1436810539.2395823, + "isdir": false, + "ctime": 1436810539.2395823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0735824, + "inode": 524604, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1338", + "xusr": false, + "atime": 1436810539.0735824, + "isdir": false, + "ctime": 1436810539.0735824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.3645823, + "inode": 524991, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1725", + "xusr": false, + "atime": 1436810539.3645823, + "isdir": false, + "ctime": 1436810539.3645823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.9165823, + "inode": 526869, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3603", + "xusr": false, + "atime": 1436810540.9165823, + "isdir": false, + "ctime": 1436810540.9165823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.0235822, + "inode": 527016, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3750", + "xusr": false, + "atime": 1436810541.0235822, + "isdir": false, + "ctime": 1436810541.0235822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.0765824, + "inode": 524608, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1342", + "xusr": false, + "atime": 1436810539.0765824, + "isdir": false, + "ctime": 1436810539.0765824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.6835823, + "inode": 525317, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/2051", + "xusr": false, + "atime": 1436810539.6835823, + "isdir": false, + "ctime": 1436810539.6835823, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810541.3195822, + "inode": 527419, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/4153", + "xusr": false, + "atime": 1436810541.3195822, + "isdir": false, + "ctime": 1436810541.3195822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.6625824, + "inode": 526512, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3246", + "xusr": false, + "atime": 1436810540.6625824, + "isdir": false, + "ctime": 1436810540.6625824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810540.7355824, + "inode": 526615, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/3349", + "xusr": false, + "atime": 1436810540.7355824, + "isdir": false, + "ctime": 1436810540.7355824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810539.5995822, + "inode": 525222, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1956", + "xusr": false, + "atime": 1436810539.5995822, + "isdir": false, + "ctime": 1436810539.5995822, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.9385824, + "inode": 524413, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/1147", + "xusr": false, + "atime": 1436810538.9385824, + "isdir": false, + "ctime": 1436810538.9385824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + }, + { + "uid": 0, + "woth": false, + "mtime": 1436810538.5905824, + "inode": 523951, + "isgid": false, + "size": 0, + "isuid": false, + "isreg": true, + "gid": 0, + "ischr": false, + "wusr": true, + "xoth": false, + "islnk": false, + "nlink": 1, + "issock": false, + "rgrp": true, + "path": "/test/685", + "xusr": false, + "atime": 1436810538.5905824, + "isdir": false, + "ctime": 1436810538.5905824, + "isblk": false, + "wgrp": false, + "xgrp": false, + "dev": 64768, + "roth": true, + "isfifo": false, + "mode": "0644", + "rusr": true + } + ] +} diff --git a/awx/fact/tests/models/fact/fact_simple.py b/awx/fact/tests/models/fact/fact_simple.py index 5b2ec3986e..142accdbd3 100644 --- a/awx/fact/tests/models/fact/fact_simple.py +++ b/awx/fact/tests/models/fact/fact_simple.py @@ -3,10 +3,12 @@ # Python from __future__ import absolute_import -from django.utils.timezone import now -from dateutil.relativedelta import relativedelta +import os +import json # Django +from django.utils.timezone import now +from dateutil.relativedelta import relativedelta # AWX from awx.fact.models.fact import * # noqa @@ -14,6 +16,13 @@ from awx.fact.tests.base import BaseFactTest, FactScanBuilder, TEST_FACT_PACKAGE __all__ = ['FactHostTest', 'FactTest', 'FactGetHostVersionTest', 'FactGetHostTimelineTest'] +# damn you python 2.6 +def timedelta_total_seconds(timedelta): + return ( + timedelta.microseconds + 0.0 + + (timedelta.seconds + timedelta.days * 24 * 3600) * 10 ** 6) / 10 ** 6 + + class FactHostTest(BaseFactTest): def test_create_host(self): host = FactHost(hostname='hosty', inventory_id=1) @@ -57,6 +66,27 @@ class FactTest(BaseFactTest): self.assertEqual(v.fact.id, f_obj.id) self.assertEqual(v.fact.module, 'packages') + # Note: Take the failure of this with a grain of salt. + # The test almost entirely depends on the specs of the system running on. + def test_add_fact_performance_4mb_file(self): + timestamp = now().replace(microsecond=0) + host = FactHost(hostname="hosty", inventory_id=1).save() + + from awx.fact import tests + with open('%s/data/file_scan.json' % os.path.dirname(os.path.realpath(tests.__file__))) as f: + data = json.load(f) + + t1 = now() + (f_obj, v_obj) = Fact.add_fact(host=host, timestamp=timestamp, module='packages', fact=data) + t2 = now() + diff = timedelta_total_seconds(t2 - t1) + print("add_fact save time: %s (s)" % diff) + # Note: 20 is realllly high. This should complete in < 2 seconds + self.assertLessEqual(diff, 20) + + Fact.objects.get(id=f_obj.id) + FactVersion.objects.get(id=v_obj.id) + class FactGetHostVersionTest(BaseFactTest): def setUp(self): super(FactGetHostVersionTest, self).setUp() diff --git a/awx/main/access.py b/awx/main/access.py index e401eecac2..4af42b28f2 100644 --- a/awx/main/access.py +++ b/awx/main/access.py @@ -146,7 +146,7 @@ class BaseAccess(object): def can_unattach(self, obj, sub_obj, relationship): return self.can_change(obj, None) - def check_license(self, add_host=False, feature=None): + def check_license(self, add_host=False, feature=None, check_expiration=True): reader = TaskSerializer() validation_info = reader.from_file() if ('test' in sys.argv or 'jenkins' in sys.argv) and not os.environ.get('SKIP_LICENSE_FIXUP_FOR_TEST', ''): @@ -154,9 +154,9 @@ class BaseAccess(object): validation_info['time_remaining'] = 99999999 validation_info['grace_period_remaining'] = 99999999 - if validation_info.get('time_remaining', None) is None: + if check_expiration and validation_info.get('time_remaining', None) is None: raise PermissionDenied("license is missing") - if validation_info.get("grace_period_remaining") <= 0: + if check_expiration and validation_info.get("grace_period_remaining") <= 0: raise PermissionDenied("license has expired") free_instances = validation_info.get('free_instances', 0) @@ -262,6 +262,7 @@ class OrganizationAccess(BaseAccess): self.user in obj.admins.all()) def can_delete(self, obj): + self.check_license(feature='multiple_organizations', check_expiration=False) return self.can_change(obj, None) class InventoryAccess(BaseAccess): @@ -672,22 +673,22 @@ class ProjectAccess(BaseAccess): - I am on a team associated with the project. - I have been explicitly granted permission to run/check jobs using the project. - - I created it (for now?). + - I created the project but it isn't associated with an organization I can change/delete when: - I am a superuser. - I am an admin in an organization associated with the project. - - I created it (for now?). + - I created the project but it isn't associated with an organization ''' model = Project def get_queryset(self): qs = Project.objects.filter(active=True).distinct() - qs = qs.select_related('created_by', 'modified_by', 'credential', 'current_update', 'last_update') + qs = qs.select_related('modified_by', 'credential', 'current_update', 'last_update') if self.user.is_superuser: return qs team_ids = set(Team.objects.filter(users__in=[self.user]).values_list('id', flat=True)) - qs = qs.filter(Q(created_by=self.user) | + qs = qs.filter(Q(created_by=self.user, organizations__isnull=True) | Q(organizations__admins__in=[self.user], organizations__active=True) | Q(organizations__users__in=[self.user], organizations__active=True) | Q(teams__in=team_ids)) @@ -719,7 +720,7 @@ class ProjectAccess(BaseAccess): def can_change(self, obj, data): if self.user.is_superuser: return True - if obj.created_by == self.user: + if obj.created_by == self.user and not obj.organizations.filter(active=True).count(): return True if obj.organizations.filter(active=True, admins__in=[self.user]).exists(): return True @@ -863,52 +864,55 @@ class JobTemplateAccess(BaseAccess): 'credential', 'cloud_credential', 'next_schedule') if self.user.is_superuser: return qs - credential_ids = set(self.user.get_queryset(Credential).values_list('id', flat=True)) - inventory_ids = set(self.user.get_queryset(Inventory).values_list('id', flat=True)) + credential_ids = self.user.get_queryset(Credential) + inventory_ids = self.user.get_queryset(Inventory) base_qs = qs.filter( Q(credential_id__in=credential_ids) | Q(credential__isnull=True), Q(cloud_credential_id__in=credential_ids) | Q(cloud_credential__isnull=True), ) - org_admin_ids = set(base_qs.filter( + org_admin_ids = base_qs.filter( Q(project__organizations__admins__in=[self.user]) | (Q(project__isnull=True) & Q(job_type=PERM_INVENTORY_SCAN) & Q(inventory__organization__admins__in=[self.user])) - ).values_list('id', flat=True)) + ) allowed_deploy = [PERM_JOBTEMPLATE_CREATE, PERM_INVENTORY_DEPLOY] allowed_check = [PERM_JOBTEMPLATE_CREATE, PERM_INVENTORY_DEPLOY, PERM_INVENTORY_CHECK] - team_ids = set(Team.objects.filter(users__in=[self.user]).values_list('id', flat=True)) + team_ids = Team.objects.filter(users__in=[self.user]) # TODO: I think the below queries can be combined - deploy_permissions_ids = set(Permission.objects.filter( + deploy_permissions_ids = Permission.objects.filter( Q(user=self.user) | Q(team_id__in=team_ids), active=True, permission_type__in=allowed_deploy, - ).values_list('id', flat=True)) - check_permissions_ids = set(Permission.objects.filter( + ) + check_permissions_ids = Permission.objects.filter( Q(user=self.user) | Q(team_id__in=team_ids), active=True, permission_type__in=allowed_check, - ).values_list('id', flat=True)) + ) - perm_deploy_ids = set(base_qs.filter( + perm_deploy_ids = base_qs.filter( job_type=PERM_INVENTORY_DEPLOY, inventory__permissions__in=deploy_permissions_ids, project__permissions__in=deploy_permissions_ids, inventory__permissions__pk=F('project__permissions__pk'), inventory_id__in=inventory_ids, - ).values_list('id', flat=True)) + ) - perm_check_ids = set(base_qs.filter( + perm_check_ids = base_qs.filter( job_type=PERM_INVENTORY_CHECK, inventory__permissions__in=check_permissions_ids, project__permissions__in=check_permissions_ids, inventory__permissions__pk=F('project__permissions__pk'), inventory_id__in=inventory_ids, - ).values_list('id', flat=True)) + ) - base_ids = org_admin_ids.union(perm_deploy_ids).union(perm_check_ids) - return base_qs.filter(id__in=base_ids) + return base_qs.filter( + Q(id__in=org_admin_ids) | + Q(id__in=perm_deploy_ids) | + Q(id__in=perm_check_ids) + ) def can_read(self, obj): # you can only see the job templates that you have permission to launch. @@ -1079,47 +1083,50 @@ class JobAccess(BaseAccess): qs = qs.prefetch_related('unified_job_template') if self.user.is_superuser: return qs - credential_ids = set(self.user.get_queryset(Credential).values_list('id', flat=True)) + credential_ids = self.user.get_queryset(Credential) base_qs = qs.filter( credential_id__in=credential_ids, ) - org_admin_ids = set(base_qs.filter( + org_admin_ids = base_qs.filter( Q(project__organizations__admins__in=[self.user]) | (Q(project__isnull=True) & Q(job_type=PERM_INVENTORY_SCAN) & Q(inventory__organization__admins__in=[self.user])) - ).values_list('id', flat=True)) + ) allowed_deploy = [PERM_JOBTEMPLATE_CREATE, PERM_INVENTORY_DEPLOY] allowed_check = [PERM_JOBTEMPLATE_CREATE, PERM_INVENTORY_DEPLOY, PERM_INVENTORY_CHECK] - team_ids = set(Team.objects.filter(users__in=[self.user]).values_list('id', flat=True)) + team_ids = Team.objects.filter(users__in=[self.user]) # TODO: I think the below queries can be combined - deploy_permissions_ids = set(Permission.objects.filter( + deploy_permissions_ids = Permission.objects.filter( Q(user=self.user) | Q(team__in=team_ids), active=True, permission_type__in=allowed_deploy, - ).values_list('id', flat=True)) - check_permissions_ids = set(Permission.objects.filter( + ) + check_permissions_ids = Permission.objects.filter( Q(user=self.user) | Q(team__in=team_ids), active=True, permission_type__in=allowed_check, - ).values_list('id', flat=True)) + ) - perm_deploy_ids = set(base_qs.filter( + perm_deploy_ids = base_qs.filter( job_type=PERM_INVENTORY_DEPLOY, inventory__permissions__in=deploy_permissions_ids, project__permissions__in=deploy_permissions_ids, inventory__permissions__pk=F('project__permissions__pk'), - ).values_list('id', flat=True)) + ) - perm_check_ids = set(base_qs.filter( + perm_check_ids = base_qs.filter( job_type=PERM_INVENTORY_CHECK, inventory__permissions__in=check_permissions_ids, project__permissions__in=check_permissions_ids, inventory__permissions__pk=F('project__permissions__pk'), - ).values_list('id', flat=True)) + ) - base_ids = org_admin_ids.union(perm_deploy_ids).union(perm_check_ids) - return base_qs.filter(id__in=base_ids) + return base_qs.filter( + Q(id__in=org_admin_ids) | + Q(id__in=perm_deploy_ids) | + Q(id__in=perm_check_ids) + ) def can_add(self, data): if not data or '_method' in data: # So the browseable API will work? @@ -1599,7 +1606,7 @@ class CustomInventoryScriptAccess(BaseAccess): model = CustomInventoryScript def get_queryset(self): - qs = self.model.objects.filter(active=True, organization__active=True).distinct() + qs = self.model.objects.filter(active=True).distinct() if not self.user.is_superuser: qs = qs.filter(Q(organization__admins__in=[self.user]) | Q(organization__users__in=[self.user])) return qs diff --git a/awx/main/backend.py b/awx/main/backend.py deleted file mode 100644 index ad789af9fc..0000000000 --- a/awx/main/backend.py +++ /dev/null @@ -1,128 +0,0 @@ -# Copyright (c) 2015 Ansible, Inc. -# All Rights Reserved. - -# Django -from django.dispatch import receiver - -# django-auth-ldap -from django_auth_ldap.backend import LDAPSettings as BaseLDAPSettings -from django_auth_ldap.backend import LDAPBackend as BaseLDAPBackend -from django_auth_ldap.backend import populate_user - -# Ansible Tower -from awx.api.license import feature_enabled - -class LDAPSettings(BaseLDAPSettings): - - defaults = dict(BaseLDAPSettings.defaults.items() + { - 'ORGANIZATION_MAP': {}, - 'TEAM_MAP': {}, - }.items()) - -class LDAPBackend(BaseLDAPBackend): - ''' - Custom LDAP backend for AWX. - ''' - - settings_prefix = 'AUTH_LDAP_' - - def _get_settings(self): - if self._settings is None: - self._settings = LDAPSettings(self.settings_prefix) - return self._settings - - def _set_settings(self, settings): - self._settings = settings - - settings = property(_get_settings, _set_settings) - - def authenticate(self, username, password): - if not self.settings.SERVER_URI or not feature_enabled('ldap'): - return None - return super(LDAPBackend, self).authenticate(username, password) - - def get_user(self, user_id): - if not self.settings.SERVER_URI or not feature_enabled('ldap'): - return None - return super(LDAPBackend, self).get_user(user_id) - - # Disable any LDAP based authorization / permissions checking. - - def has_perm(self, user, perm, obj=None): - return False - - def has_module_perms(self, user, app_label): - return False - - def get_all_permissions(self, user, obj=None): - return set() - - def get_group_permissions(self, user, obj=None): - return set() - -def _update_m2m_from_groups(user, ldap_user, rel, opts, remove=False): - ''' - Hepler function to update m2m relationship based on LDAP group membership. - ''' - should_add = False - if opts is None: - return - elif not opts: - pass - elif opts is True: - should_add = True - else: - if isinstance(opts, basestring): - opts = [opts] - for group_dn in opts: - if not isinstance(group_dn, basestring): - continue - if ldap_user._get_groups().is_member_of(group_dn): - should_add = True - if should_add: - rel.add(user) - elif remove: - rel.remove(user) - -@receiver(populate_user) -def on_populate_user(sender, **kwargs): - ''' - Handle signal from LDAP backend to populate the user object. Update user - organization/team memberships according to their LDAP groups. - ''' - from awx.main.models import Organization, Team - user = kwargs['user'] - ldap_user = kwargs['ldap_user'] - backend = ldap_user.backend - - # Update organization membership based on group memberships. - org_map = getattr(backend.settings, 'ORGANIZATION_MAP', {}) - for org_name, org_opts in org_map.items(): - org, created = Organization.objects.get_or_create(name=org_name) - remove = bool(org_opts.get('remove', False)) - admins_opts = org_opts.get('admins', None) - remove_admins = bool(org_opts.get('remove_admins', remove)) - _update_m2m_from_groups(user, ldap_user, org.admins, admins_opts, - remove_admins) - users_opts = org_opts.get('users', None) - remove_users = bool(org_opts.get('remove_users', remove)) - _update_m2m_from_groups(user, ldap_user, org.users, users_opts, - remove_users) - - # Update team membership based on group memberships. - team_map = getattr(backend.settings, 'TEAM_MAP', {}) - for team_name, team_opts in team_map.items(): - if 'organization' not in team_opts: - continue - org, created = Organization.objects.get_or_create(name=team_opts['organization']) - team, created = Team.objects.get_or_create(name=team_name, organization=org) - users_opts = team_opts.get('users', None) - remove = bool(team_opts.get('remove', False)) - _update_m2m_from_groups(user, ldap_user, team.users, users_opts, - remove) - - # Update user profile to store LDAP DN. - profile = user.profile - if profile.ldap_dn != ldap_user.dn: - profile.ldap_dn = ldap_user.dn - profile.save() diff --git a/awx/main/management/commands/_base_instance.py b/awx/main/management/commands/_base_instance.py index e980f46132..c92fa3b640 100644 --- a/awx/main/management/commands/_base_instance.py +++ b/awx/main/management/commands/_base_instance.py @@ -21,6 +21,7 @@ class BaseCommandInstance(BaseCommand): def __init__(self): super(BaseCommandInstance, self).__init__() + self.enforce_primary_role = False self.enforce_roles = False self.enforce_hostname_set = False self.enforce_unique_find = False @@ -70,8 +71,13 @@ class BaseCommandInstance(BaseCommand): default='', help='Find instance by specified uuid.') + def include_option_primary_role(self): + BaseCommand.option_list += ( BaseCommandInstance.generate_option_primary(), ) + self.enforce_primary_role = True + def include_options_roles(self): - BaseCommand.option_list += ( BaseCommandInstance.generate_option_primary(), BaseCommandInstance.generate_option_secondary(), ) + self.include_option_primary_role() + BaseCommand.option_list += ( BaseCommandInstance.generate_option_secondary(), ) self.enforce_roles = True def include_option_hostname_set(self): @@ -107,6 +113,8 @@ class BaseCommandInstance(BaseCommand): return CommandError('--hostname and one of --primary or --secondary is required.') elif self.enforce_hostname_set: return CommandError('--hostname is required.') + elif self.enforce_primary_role: + return CommandError('--primary is required.') elif self.enforce_roles: return CommandError('One of --primary or --secondary is required.') @@ -120,6 +128,11 @@ class BaseCommandInstance(BaseCommand): if self.is_option_primary() and self.is_option_secondary() or not (self.is_option_primary() or self.is_option_secondary()): raise self.usage_error + elif self.enforce_primary_role: + if options['primary']: + self.option_primary = options['primary'] + else: + raise self.usage_error if self.enforce_hostname_set: if options['hostname']: diff --git a/awx/main/management/commands/cleanup_authtokens.py b/awx/main/management/commands/cleanup_authtokens.py new file mode 100644 index 0000000000..65a8d67e6b --- /dev/null +++ b/awx/main/management/commands/cleanup_authtokens.py @@ -0,0 +1,34 @@ +# Copyright (c) 2015 Ansible, Inc. +# All Rights Reserved. + +# Python +import logging + +# Django +from django.db import transaction +from django.core.management.base import BaseCommand +from django.utils.timezone import now + +# AWX +from awx.main.models import * # noqa + +class Command(BaseCommand): + ''' + Management command to cleanup expired auth tokens + ''' + + help = 'Cleanup expired auth tokens.' + + def init_logging(self): + self.logger = logging.getLogger('awx.main.commands.cleanup_authtokens') + handler = logging.StreamHandler() + handler.setFormatter(logging.Formatter('%(message)s')) + self.logger.addHandler(handler) + self.logger.propagate = False + + @transaction.atomic + def handle(self, *args, **options): + self.init_logging() + tokens_removed = AuthToken.objects.filter(expires__lt=now()) + self.logger.log(99, "Removing %d expired auth tokens" % tokens_removed.count()) + tokens_removed.delete() diff --git a/awx/main/management/commands/cleanup_deleted.py b/awx/main/management/commands/cleanup_deleted.py index 74b6c68106..b6fd5360e5 100644 --- a/awx/main/management/commands/cleanup_deleted.py +++ b/awx/main/management/commands/cleanup_deleted.py @@ -118,3 +118,10 @@ class Command(BaseCommand): self.logger.log(99, "Removed %d items", n_deleted_items) else: self.logger.log(99, "Would have removed %d items", n_deleted_items) + + tokens_removed = AuthToken.objects.filter(expires__lt=now()) + if not self.dry_run: + self.logger.log(99, "Removed %d expired auth tokens" % tokens_removed.count()) + tokens_removed.delete() + else: + self.logger.log(99, "Would have removed %d expired auth tokens" % tokens_removed.count()) diff --git a/awx/main/management/commands/inventory_import.py b/awx/main/management/commands/inventory_import.py index 4028a722bd..97d5937533 100644 --- a/awx/main/management/commands/inventory_import.py +++ b/awx/main/management/commands/inventory_import.py @@ -883,14 +883,14 @@ class Command(NoArgsCommand): all_obj = self.inventory all_name = 'inventory' db_variables = all_obj.variables_dict - if self.overwrite_vars or self.overwrite: + if self.overwrite_vars: db_variables = self.all_group.variables else: db_variables.update(self.all_group.variables) if db_variables != all_obj.variables_dict: all_obj.variables = json.dumps(db_variables) all_obj.save(update_fields=['variables']) - if self.overwrite_vars or self.overwrite: + if self.overwrite_vars: self.logger.info('%s variables replaced from "all" group', all_name.capitalize()) else: self.logger.info('%s variables updated from "all" group', all_name.capitalize()) @@ -920,14 +920,14 @@ class Command(NoArgsCommand): for group in self.inventory.groups.filter(name__in=group_names): mem_group = self.all_group.all_groups[group.name] db_variables = group.variables_dict - if self.overwrite_vars or self.overwrite: + if self.overwrite_vars: db_variables = mem_group.variables else: db_variables.update(mem_group.variables) if db_variables != group.variables_dict: group.variables = json.dumps(db_variables) group.save(update_fields=['variables']) - if self.overwrite_vars or self.overwrite: + if self.overwrite_vars: self.logger.info('Group "%s" variables replaced', group.name) else: self.logger.info('Group "%s" variables updated', group.name) @@ -959,7 +959,7 @@ class Command(NoArgsCommand): def _update_db_host_from_mem_host(self, db_host, mem_host): # Update host variables. db_variables = db_host.variables_dict - if self.overwrite_vars or self.overwrite: + if self.overwrite_vars: db_variables = mem_host.variables else: db_variables.update(mem_host.variables) @@ -994,7 +994,7 @@ class Command(NoArgsCommand): else: self.logger.info('Host "%s" instance_id added', mem_host.name) if 'variables' in update_fields: - if self.overwrite_vars or self.overwrite: + if self.overwrite_vars: self.logger.info('Host "%s" variables replaced', mem_host.name) else: self.logger.info('Host "%s" variables updated', mem_host.name) diff --git a/awx/main/management/commands/run_callback_receiver.py b/awx/main/management/commands/run_callback_receiver.py index e8566c4f6c..cccf07b4db 100644 --- a/awx/main/management/commands/run_callback_receiver.py +++ b/awx/main/management/commands/run_callback_receiver.py @@ -130,6 +130,7 @@ class CallbackReceiver(object): 'playbook_on_task_start', 'playbook_on_no_hosts_matched', 'playbook_on_no_hosts_remaining', + 'playbook_on_include', 'playbook_on_import_for_host', 'playbook_on_not_import_for_host'): parent = job_parent_events.get('playbook_on_play_start', None) diff --git a/awx/main/management/commands/run_socketio_service.py b/awx/main/management/commands/run_socketio_service.py index 4a2ff900a1..56d8cc5b1c 100644 --- a/awx/main/management/commands/run_socketio_service.py +++ b/awx/main/management/commands/run_socketio_service.py @@ -5,6 +5,7 @@ import os import logging import urllib +import weakref from optparse import make_option from threading import Thread @@ -24,51 +25,157 @@ from socketio.namespace import BaseNamespace logger = logging.getLogger('awx.main.commands.run_socketio_service') -valid_sockets = [] +class SocketSession(object): + def __init__(self, session_id, token_key, socket): + self.socket = weakref.ref(socket) + self.session_id = session_id + self.token_key = token_key + self._valid = True + def is_valid(self): + return bool(self._valid) + + def invalidate(self): + self._valid = False + + def is_db_token_valid(self): + auth_token = AuthToken.objects.filter(key=self.token_key, reason='') + if not auth_token.exists(): + return False + auth_token = auth_token[0] + return bool(not auth_token.is_expired()) + +class SocketSessionManager(object): + + def __init__(self): + self.SESSIONS_MAX = 1000 + self.socket_sessions = [] + self.socket_session_token_key_map = {} + + def _prune(self): + if len(self.socket_sessions) > self.SESSIONS_MAX: + session = self.socket_sessions[0] + entries = self.socket_session_token_key_map[session.token_key] + del entries[session.session_id] + if len(entries) == 0: + del self.socket_session_token_key_map[session.token_key] + self.socket_sessions.pop(0) + + ''' + Returns an dict of sessions + ''' + def lookup(self, token_key=None): + if not token_key: + raise ValueError("token_key required") + return self.socket_session_token_key_map.get(token_key, None) + + def add_session(self, session): + self.socket_sessions.append(session) + entries = self.socket_session_token_key_map.get(session.token_key, None) + if not entries: + entries = {} + self.socket_session_token_key_map[session.token_key] = entries + entries[session.session_id] = session + self._prune() + return session + +class SocketController(object): + + def __init__(self, SocketSessionManager): + self.server = None + self.SocketSessionManager = SocketSessionManager + + def add_session(self, session): + return self.SocketSessionManager.add_session(session) + + def broadcast_packet(self, packet): + # Broadcast message to everyone at endpoint + # Loop over the 'raw' list of sockets (don't trust our list) + for session_id, socket in list(self.server.sockets.iteritems()): + socket_session = socket.session.get('socket_session', None) + if socket_session and socket_session.is_valid(): + try: + socket.send_packet(packet) + except Exception, e: + logger.error("Error sending client packet to %s: %s" % (str(session_id), str(packet))) + logger.error("Error was: " + str(e)) + + def send_packet(self, packet, token_key): + if not token_key: + raise ValueError("token_key is required") + socket_sessions = self.SocketSessionManager.lookup(token_key=token_key) + # We may not find the socket_session if the user disconnected + # (it's actually more compliciated than that because of our prune logic) + if not socket_sessions: + return None + for session_id, socket_session in socket_sessions.iteritems(): + logger.warn("Maybe sending packet to %s" % session_id) + if socket_session and socket_session.is_valid(): + logger.warn("Sending packet to %s" % session_id) + socket = socket_session.socket() + if socket: + try: + socket.send_packet(packet) + except Exception, e: + logger.error("Error sending client packet to %s: %s" % (str(socket_session.session_id), str(packet))) + logger.error("Error was: " + str(e)) + + def set_server(self, server): + self.server = server + return server + +socketController = SocketController(SocketSessionManager()) + +# +# Socket session is attached to self.session['socket_session'] +# self.session and self.socket.session point to the same dict +# class TowerBaseNamespace(BaseNamespace): def get_allowed_methods(self): return ['recv_disconnect'] def get_initial_acl(self): - global valid_sockets - v_user = self.valid_user() - self.is_valid_connection = False - if v_user: - if self.socket.sessid not in valid_sockets: - valid_sockets.append(self.socket.sessid) - self.is_valid_connection = True - if len(valid_sockets) > 1000: - valid_sockets = valid_sockets[1:] + request_token = self._get_request_token() + if request_token: + # (1) This is the first time the socket has been seen (first + # namespace joined). + # (2) This socket has already been seen (already joined and maybe + # left a namespace) + # + # Note: Assume that the user token is valid if the session is found + socket_session = self.session.get('socket_session', None) + if not socket_session: + socket_session = SocketSession(self.socket.sessid, request_token, self.socket) + if socket_session.is_db_token_valid(): + self.session['socket_session'] = socket_session + socketController.add_session(socket_session) + else: + socket_session.invalidate() + return set(['recv_connect'] + self.get_allowed_methods()) else: logger.warn("Authentication Failure validating user") self.emit("connect_failed", "Authentication failed") return set(['recv_connect']) - def valid_user(self): + def _get_request_token(self): if 'QUERY_STRING' not in self.environ: return False - else: - try: - k, v = self.environ['QUERY_STRING'].split("=") - if k == "Token": - token_actual = urllib.unquote_plus(v).decode().replace("\"","") - auth_token = AuthToken.objects.filter(key=token_actual) - if not auth_token.exists(): - return False - auth_token = auth_token[0] - if not auth_token.expired: - return auth_token.user - else: - return False - except Exception, e: - logger.error("Exception validating user: " + str(e)) - return False + + try: + k, v = self.environ['QUERY_STRING'].split("=") + if k == "Token": + token_actual = urllib.unquote_plus(v).decode().replace("\"","") + return token_actual + except Exception, e: + logger.error("Exception validating user: " + str(e)) + return False + return False def recv_connect(self): - if not self.is_valid_connection: + socket_session = self.session.get('socket_session', None) + if socket_session and not socket_session.is_valid(): self.disconnect(silent=False) class TestNamespace(TowerBaseNamespace): @@ -106,6 +213,14 @@ class ScheduleNamespace(TowerBaseNamespace): logger.info("Received client connect for schedule namespace from %s" % str(self.environ['REMOTE_ADDR'])) super(ScheduleNamespace, self).recv_connect() +# Catch-all namespace. +# Deliver 'global' events over this namespace +class ControlNamespace(TowerBaseNamespace): + + def recv_connect(self): + logger.warn("Received client connect for control namespace from %s" % str(self.environ['REMOTE_ADDR'])) + super(ControlNamespace, self).recv_connect() + class TowerSocket(object): def __call__(self, environ, start_response): @@ -115,7 +230,8 @@ class TowerSocket(object): '/socket.io/jobs': JobNamespace, '/socket.io/job_events': JobEventNamespace, '/socket.io/ad_hoc_command_events': AdHocCommandEventNamespace, - '/socket.io/schedules': ScheduleNamespace}) + '/socket.io/schedules': ScheduleNamespace, + '/socket.io/control': ControlNamespace}) else: logger.warn("Invalid connect path received: " + path) start_response('404 Not Found', []) @@ -130,13 +246,12 @@ def notification_handler(server): 'name': message['event'], 'type': 'event', } - for session_id, socket in list(server.sockets.iteritems()): - if session_id in valid_sockets: - try: - socket.send_packet(packet) - except Exception, e: - logger.error("Error sending client packet to %s: %s" % (str(session_id), str(packet))) - logger.error("Error was: " + str(e)) + + if 'token_key' in message: + # Best practice not to send the token over the socket + socketController.send_packet(packet, message.pop('token_key')) + else: + socketController.broadcast_packet(packet) class Command(NoArgsCommand): ''' @@ -164,6 +279,7 @@ class Command(NoArgsCommand): logger.info('Listening on port http://0.0.0.0:' + str(socketio_listen_port)) server = SocketIOServer(('0.0.0.0', socketio_listen_port), TowerSocket(), resource='socket.io') + socketController.set_server(server) handler_thread = Thread(target=notification_handler, args=(server,)) handler_thread.daemon = True handler_thread.start() diff --git a/awx/main/management/commands/update_instance.py b/awx/main/management/commands/update_instance.py index 7ffffa62a7..9cfecfb22d 100644 --- a/awx/main/management/commands/update_instance.py +++ b/awx/main/management/commands/update_instance.py @@ -26,7 +26,7 @@ class Command(BaseCommandInstance): def __init__(self): super(Command, self).__init__() - self.include_options_roles() + self.include_option_primary_role() self.include_option_hostname_uuid_find() @transaction.atomic diff --git a/awx/main/management/commands/workload_generator.py b/awx/main/management/commands/workload_generator.py index 387c0e1200..658d5c7228 100644 --- a/awx/main/management/commands/workload_generator.py +++ b/awx/main/management/commands/workload_generator.py @@ -18,6 +18,7 @@ import mongoengine # awx from awx.fact.models.fact import * # noqa from awx.main.models import * # noqa +from awx.main.utils import timedelta_total_seconds TEST_FACT_ANSIBLE = { "ansible_swapfree_mb" : 4092, @@ -181,7 +182,7 @@ FACT_FIXTURES = { 'ansible': TEST_FACT_ANSIBLE, 'packages': TEST_FACT_PACKAGES, 'services': TEST_FACT_SERVICES, - 'files': TEST_FACT_ANSIBLE, + 'files': TEST_FACT_FILES, } EXPERIMENT_DEFAULT = { @@ -198,12 +199,6 @@ EXPERIMENT_DEFAULT = { ] } -# damn you python 2.6 -def timedelta_total_seconds(timedelta): - return ( - timedelta.microseconds + 0.0 + - (timedelta.seconds + timedelta.days * 24 * 3600) * 10 ** 6) / 10 ** 6 - class Experiment(object): def __init__(self, exp, fact_fixtures, raw_db, mongoengine_db): self.db = raw_db diff --git a/awx/main/middleware.py b/awx/main/middleware.py index b32ce932cb..3377ec8cb6 100644 --- a/awx/main/middleware.py +++ b/awx/main/middleware.py @@ -5,15 +5,17 @@ import logging import threading import uuid -from django.contrib.auth.models import User +from django.contrib.auth.models import User, AnonymousUser from django.db.models.signals import post_save from django.db import IntegrityError from django.http import HttpResponseRedirect from django.template.response import TemplateResponse from django.utils.functional import curry +from django.conf import settings from awx import __version__ as version from awx.main.models import ActivityStream, Instance +from awx.api.authentication import TokenAuthentication logger = logging.getLogger('awx.main.middleware') @@ -60,8 +62,11 @@ class ActivityStreamMiddleware(threading.local): def set_actor(self, user, sender, instance, **kwargs): if sender == ActivityStream: if isinstance(user, User) and instance.actor is None: - instance.actor = user - instance.save(update_fields=['actor']) + user = User.objects.filter(id=user.id) + if user.exists(): + user = user[0] + instance.actor = user + instance.save(update_fields=['actor']) else: if instance.id not in self.instance_ids: self.instance_ids.append(instance.id) @@ -100,3 +105,18 @@ class HAMiddleware(object): # Redirect to the base page of the primary instance. return HttpResponseRedirect('http://%s%s' % (primary.hostname, request.path)) + +class AuthTokenTimeoutMiddleware(object): + """Presume that when the user includes the auth header, they go through the + authentication mechanism. Further, that mechanism is presumed to extend + the users session validity time by AUTH_TOKEN_EXPIRATION. + + If the auth token is not supplied, then don't include the header + """ + def process_response(self, request, response): + if not TokenAuthentication._get_x_auth_token_header(request): + return response + + response['Auth-Token-Timeout'] = int(settings.AUTH_TOKEN_EXPIRATION) + return response + diff --git a/awx/main/migrations/0071_v240_changes.py b/awx/main/migrations/0071_v240_changes.py new file mode 100644 index 0000000000..b36060b725 --- /dev/null +++ b/awx/main/migrations/0071_v240_changes.py @@ -0,0 +1,538 @@ +# -*- coding: utf-8 -*- +from south.utils import datetime_utils as datetime +from south.db import db +from south.v2 import DataMigration +from django.db import models +from django.utils.timezone import now +from awx.api.license import feature_enabled + +class Migration(DataMigration): + + def forwards(self, orm): + nowtime_actual = now() + nowtime = nowtime_actual.strftime("%Y%m%dT%H%M%SZ") + for stj in orm.SystemJobTemplate.objects.all(): + if not stj.schedules.count(): + if stj.name == "Cleanup Job Details": + sched = orm.Schedule(name="Cleanup Job Schedule", rrule="DTSTART:%s RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=SU" % nowtime, + description="Automatically Generated Schedule", enabled=True, extra_data={"days": "120"}) + elif stj.name == "Cleanup Deleted Data": + sched = orm.Schedule(name="Cleanup Deleted Data Schedule", rrule="DTSTART:%s RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO" % nowtime, + description="Automatically Generated Schedule", enabled=True, extra_data={"days": "30"}) + elif stj.name == "Cleanup Activity Stream": + sched = orm.Schedule(name="Cleanup Activity Schedule", rrule="DTSTART:%s RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=TU" % nowtime, + description="Automatically Generated Schedule", enabled=True, extra_data={"days": "355"}) + elif stj.name == "Cleanup Fact Details" and feature_enabled('system_tracking'): + sched = orm.Schedule(name="Cleanup Fact Schedule", rrule="DTSTART:%s RRULE:FREQ=MONTHLY;INTERVAL=1;BYMONTHDAY=1" % nowtime, + description="Automatically Generated Schedule", enabled=True, extra_data={'older_than': '120d', 'granularity': '1w'}) + else: + continue + sched.unified_job_template = stj + sched.created = nowtime_actual + sched.modified = nowtime_actual + sched.save() + + def backwards(self, orm): + "Write your backwards methods here." + + models = { + u'auth.group': { + 'Meta': {'object_name': 'Group'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + u'auth.permission': { + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + u'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'main.activitystream': { + 'Meta': {'object_name': 'ActivityStream'}, + 'actor': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'activity_stream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'ad_hoc_command': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.AdHocCommand']", 'symmetrical': 'False', 'blank': 'True'}), + 'changes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'credential': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Credential']", 'symmetrical': 'False', 'blank': 'True'}), + 'custom_inventory_script': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.CustomInventoryScript']", 'symmetrical': 'False', 'blank': 'True'}), + 'group': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'host': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Host']", 'symmetrical': 'False', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inventory': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Inventory']", 'symmetrical': 'False', 'blank': 'True'}), + 'inventory_source': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.InventorySource']", 'symmetrical': 'False', 'blank': 'True'}), + 'inventory_update': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.InventoryUpdate']", 'symmetrical': 'False', 'blank': 'True'}), + 'job': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Job']", 'symmetrical': 'False', 'blank': 'True'}), + 'job_template': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.JobTemplate']", 'symmetrical': 'False', 'blank': 'True'}), + 'object1': ('django.db.models.fields.TextField', [], {}), + 'object2': ('django.db.models.fields.TextField', [], {}), + 'object_relationship_type': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'operation': ('django.db.models.fields.CharField', [], {'max_length': '13'}), + 'organization': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Organization']", 'symmetrical': 'False', 'blank': 'True'}), + 'permission': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'project': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Project']", 'symmetrical': 'False', 'blank': 'True'}), + 'project_update': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.ProjectUpdate']", 'symmetrical': 'False', 'blank': 'True'}), + 'schedule': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Schedule']", 'symmetrical': 'False', 'blank': 'True'}), + 'team': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Team']", 'symmetrical': 'False', 'blank': 'True'}), + 'timestamp': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'unified_job': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'activity_stream_as_unified_job+'", 'blank': 'True', 'to': "orm['main.UnifiedJob']"}), + 'unified_job_template': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'activity_stream_as_unified_job_template+'", 'blank': 'True', 'to': "orm['main.UnifiedJobTemplate']"}), + 'user': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.User']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'main.adhoccommand': { + 'Meta': {'object_name': 'AdHocCommand', '_ormbases': ['main.UnifiedJob']}, + 'become_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'ad_hoc_commands'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Credential']"}), + 'forks': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}), + 'hosts': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'ad_hoc_commands'", 'symmetrical': 'False', 'through': "orm['main.AdHocCommandEvent']", 'to': "orm['main.Host']"}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ad_hoc_commands'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Inventory']"}), + 'job_type': ('django.db.models.fields.CharField', [], {'default': "'run'", 'max_length': '64'}), + 'limit': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'module_args': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'module_name': ('django.db.models.fields.CharField', [], {'default': "'command'", 'max_length': '1024', 'blank': 'True'}), + u'unifiedjob_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJob']", 'unique': 'True', 'primary_key': 'True'}), + 'verbosity': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}) + }, + 'main.adhoccommandevent': { + 'Meta': {'ordering': "('-pk',)", 'unique_together': "[('ad_hoc_command', 'host_name')]", 'object_name': 'AdHocCommandEvent'}, + 'ad_hoc_command': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ad_hoc_command_events'", 'to': "orm['main.AdHocCommand']"}), + 'changed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'counter': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'event': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'event_data': ('jsonfield.fields.JSONField', [], {'default': '{}', 'blank': 'True'}), + 'failed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'host': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'ad_hoc_command_events'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Host']"}), + 'host_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}) + }, + 'main.authtoken': { + 'Meta': {'object_name': 'AuthToken'}, + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'expires': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'key': ('django.db.models.fields.CharField', [], {'max_length': '40', 'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'request_hash': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_tokens'", 'to': u"orm['auth.User']"}) + }, + 'main.credential': { + 'Meta': {'ordering': "('kind', 'name')", 'unique_together': "[('user', 'team', 'kind', 'name')]", 'object_name': 'Credential'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'become_method': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '32', 'blank': 'True'}), + 'become_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'become_username': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'cloud': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'credential\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'host': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'kind': ('django.db.models.fields.CharField', [], {'default': "'ssh'", 'max_length': '32'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'credential\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'project': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}), + 'ssh_key_data': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'ssh_key_unlock': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'team': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'credentials'", 'null': 'True', 'blank': 'True', 'to': "orm['main.Team']"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'credentials'", 'null': 'True', 'blank': 'True', 'to': u"orm['auth.User']"}), + 'username': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'vault_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}) + }, + 'main.custominventoryscript': { + 'Meta': {'ordering': "('name',)", 'unique_together': "[('name', 'organization')]", 'object_name': 'CustomInventoryScript'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'custominventoryscript\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'custominventoryscript\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'custom_inventory_scripts'", 'to': "orm['main.Organization']"}), + 'script': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}) + }, + 'main.group': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('name', 'inventory'),)", 'object_name': 'Group'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'group\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'groups_with_active_failures': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'has_active_failures': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'has_inventory_sources': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'hosts': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'groups'", 'blank': 'True', 'to': "orm['main.Host']"}), + 'hosts_with_active_failures': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Inventory']"}), + 'inventory_sources': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'groups'", 'symmetrical': 'False', 'to': "orm['main.InventorySource']"}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'group\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'parents': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'children'", 'blank': 'True', 'to': "orm['main.Group']"}), + 'total_groups': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'total_hosts': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'variables': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}) + }, + 'main.host': { + 'Meta': {'ordering': "('inventory', 'name')", 'unique_together': "(('name', 'inventory'),)", 'object_name': 'Host'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'host\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'has_active_failures': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'has_inventory_sources': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'instance_id': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'hosts'", 'to': "orm['main.Inventory']"}), + 'inventory_sources': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'hosts'", 'symmetrical': 'False', 'to': "orm['main.InventorySource']"}), + 'last_job': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'hosts_as_last_job+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Job']"}), + 'last_job_host_summary': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'hosts_as_last_job_summary+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.JobHostSummary']", 'blank': 'True', 'null': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'host\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'variables': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}) + }, + 'main.instance': { + 'Meta': {'object_name': 'Instance'}, + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'hostname': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'primary': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '40'}) + }, + 'main.inventory': { + 'Meta': {'ordering': "('name',)", 'unique_together': "[('name', 'organization')]", 'object_name': 'Inventory'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'inventory\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'groups_with_active_failures': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'has_active_failures': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'has_inventory_sources': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'hosts_with_active_failures': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inventory_sources_with_failures': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'inventory\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'inventories'", 'to': "orm['main.Organization']"}), + 'total_groups': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'total_hosts': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'total_inventory_sources': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'variables': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}) + }, + 'main.inventorysource': { + 'Meta': {'object_name': 'InventorySource', '_ormbases': ['main.UnifiedJobTemplate']}, + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'inventorysources'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'group': ('awx.main.fields.AutoOneToOneField', [], {'default': 'None', 'related_name': "'inventory_source'", 'unique': 'True', 'null': 'True', 'to': "orm['main.Group']"}), + 'group_by': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'instance_filters': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'inventory_sources'", 'null': 'True', 'to': "orm['main.Inventory']"}), + 'overwrite': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'overwrite_vars': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'source': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '32', 'blank': 'True'}), + 'source_path': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'source_regions': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'source_script': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['main.CustomInventoryScript']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), + 'source_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'unifiedjobtemplate_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJobTemplate']", 'unique': 'True', 'primary_key': 'True'}), + 'update_cache_timeout': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'update_on_launch': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'main.inventoryupdate': { + 'Meta': {'object_name': 'InventoryUpdate', '_ormbases': ['main.UnifiedJob']}, + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'inventoryupdates'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'group_by': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'instance_filters': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'inventory_source': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'inventory_updates'", 'to': "orm['main.InventorySource']"}), + 'license_error': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'overwrite': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'overwrite_vars': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'source': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '32', 'blank': 'True'}), + 'source_path': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'source_regions': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'source_script': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['main.CustomInventoryScript']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), + 'source_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'unifiedjob_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJob']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'main.job': { + 'Meta': {'ordering': "('id',)", 'object_name': 'Job', '_ormbases': ['main.UnifiedJob']}, + 'become_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'cloud_credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs_as_cloud_credential+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'extra_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'force_handlers': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'forks': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}), + 'hosts': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'jobs'", 'symmetrical': 'False', 'through': "orm['main.JobHostSummary']", 'to': "orm['main.Host']"}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Inventory']"}), + 'job_tags': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'job_template': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.JobTemplate']", 'blank': 'True', 'null': 'True'}), + 'job_type': ('django.db.models.fields.CharField', [], {'default': "'run'", 'max_length': '64'}), + 'limit': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'playbook': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Project']", 'blank': 'True', 'null': 'True'}), + 'skip_tags': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'start_at_task': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + u'unifiedjob_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJob']", 'unique': 'True', 'primary_key': 'True'}), + 'verbosity': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}) + }, + 'main.jobevent': { + 'Meta': {'ordering': "('pk',)", 'object_name': 'JobEvent'}, + 'changed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'counter': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'event': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'event_data': ('jsonfield.fields.JSONField', [], {'default': '{}', 'blank': 'True'}), + 'failed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'host': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'job_events_as_primary_host'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Host']"}), + 'host_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}), + 'hosts': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'job_events'", 'symmetrical': 'False', 'to': "orm['main.Host']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'job': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'job_events'", 'to': "orm['main.Job']"}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'children'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.JobEvent']"}), + 'play': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}), + 'role': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}), + 'task': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}) + }, + 'main.jobhostsummary': { + 'Meta': {'ordering': "('-pk',)", 'unique_together': "[('job', 'host_name')]", 'object_name': 'JobHostSummary'}, + 'changed': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'dark': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'failed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'failures': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'host': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'job_host_summaries'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Host']"}), + 'host_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'job': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'job_host_summaries'", 'to': "orm['main.Job']"}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'ok': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'processed': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'skipped': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}) + }, + 'main.joborigin': { + 'Meta': {'object_name': 'JobOrigin'}, + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'instance': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Instance']"}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'unified_job': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'job_origin'", 'unique': 'True', 'to': "orm['main.UnifiedJob']"}) + }, + 'main.jobtemplate': { + 'Meta': {'ordering': "('name',)", 'object_name': 'JobTemplate', '_ormbases': ['main.UnifiedJobTemplate']}, + 'ask_variables_on_launch': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'become_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'cloud_credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobtemplates_as_cloud_credential+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobtemplates'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'extra_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'force_handlers': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'forks': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}), + 'host_config_key': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobtemplates'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Inventory']"}), + 'job_tags': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'job_type': ('django.db.models.fields.CharField', [], {'default': "'run'", 'max_length': '64'}), + 'limit': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'playbook': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobtemplates'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Project']", 'blank': 'True', 'null': 'True'}), + 'skip_tags': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'start_at_task': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'survey_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'survey_spec': ('jsonfield.fields.JSONField', [], {'default': '{}', 'blank': 'True'}), + u'unifiedjobtemplate_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJobTemplate']", 'unique': 'True', 'primary_key': 'True'}), + 'verbosity': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}) + }, + 'main.organization': { + 'Meta': {'ordering': "('name',)", 'object_name': 'Organization'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'admins': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'admin_of_organizations'", 'blank': 'True', 'to': u"orm['auth.User']"}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'organization\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'organization\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}), + 'projects': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'organizations'", 'blank': 'True', 'to': "orm['main.Project']"}), + 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'organizations'", 'blank': 'True', 'to': u"orm['auth.User']"}) + }, + 'main.permission': { + 'Meta': {'object_name': 'Permission'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'permission\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'permissions'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Inventory']"}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'permission\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'permission_type': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'permissions'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Project']"}), + 'run_ad_hoc_commands': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'team': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'permissions'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Team']"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'permissions'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}) + }, + 'main.profile': { + 'Meta': {'object_name': 'Profile'}, + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'ldap_dn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'user': ('awx.main.fields.AutoOneToOneField', [], {'related_name': "'profile'", 'unique': 'True', 'to': u"orm['auth.User']"}) + }, + 'main.project': { + 'Meta': {'ordering': "('id',)", 'object_name': 'Project', '_ormbases': ['main.UnifiedJobTemplate']}, + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'projects'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'local_path': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'blank': 'True'}), + 'scm_branch': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}), + 'scm_clean': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'scm_delete_on_next_update': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'scm_delete_on_update': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'scm_type': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '8', 'blank': 'True'}), + 'scm_update_cache_timeout': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}), + 'scm_update_on_launch': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'scm_url': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + u'unifiedjobtemplate_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJobTemplate']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'main.projectupdate': { + 'Meta': {'object_name': 'ProjectUpdate', '_ormbases': ['main.UnifiedJob']}, + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'projectupdates'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'local_path': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'blank': 'True'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'project_updates'", 'to': "orm['main.Project']"}), + 'scm_branch': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}), + 'scm_clean': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'scm_delete_on_update': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'scm_type': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '8', 'blank': 'True'}), + 'scm_url': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + u'unifiedjob_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJob']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'main.schedule': { + 'Meta': {'ordering': "['-next_run']", 'object_name': 'Schedule'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'schedule\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'dtend': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + 'dtstart': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'extra_data': ('jsonfield.fields.JSONField', [], {'default': '{}', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'schedule\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}), + 'next_run': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + 'rrule': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'unified_job_template': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'schedules'", 'to': "orm['main.UnifiedJobTemplate']"}) + }, + 'main.systemjob': { + 'Meta': {'ordering': "('id',)", 'object_name': 'SystemJob', '_ormbases': ['main.UnifiedJob']}, + 'extra_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'job_type': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '32', 'blank': 'True'}), + 'system_job_template': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.SystemJobTemplate']", 'blank': 'True', 'null': 'True'}), + u'unifiedjob_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJob']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'main.systemjobtemplate': { + 'Meta': {'object_name': 'SystemJobTemplate', '_ormbases': ['main.UnifiedJobTemplate']}, + 'job_type': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '32', 'blank': 'True'}), + u'unifiedjobtemplate_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJobTemplate']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'main.team': { + 'Meta': {'ordering': "('organization__name', 'name')", 'unique_together': "[('organization', 'name')]", 'object_name': 'Team'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'team\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'team\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'teams'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Organization']"}), + 'projects': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'teams'", 'blank': 'True', 'to': "orm['main.Project']"}), + 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'teams'", 'blank': 'True', 'to': u"orm['auth.User']"}) + }, + 'main.unifiedjob': { + 'Meta': {'object_name': 'UnifiedJob'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'cancel_flag': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'celery_task_id': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'unifiedjob\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'dependent_jobs': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'dependent_jobs_rel_+'", 'to': "orm['main.UnifiedJob']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'elapsed': ('django.db.models.fields.DecimalField', [], {'max_digits': '12', 'decimal_places': '3'}), + 'failed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'finished': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'job_args': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'job_cwd': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'job_env': ('jsonfield.fields.JSONField', [], {'default': '{}', 'blank': 'True'}), + 'job_explanation': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'launch_type': ('django.db.models.fields.CharField', [], {'default': "'manual'", 'max_length': '20'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'unifiedjob\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'old_pk': ('django.db.models.fields.PositiveIntegerField', [], {'default': 'None', 'null': 'True'}), + 'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_main.unifiedjob_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), + 'result_stdout_file': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'result_stdout_text': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'result_traceback': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'schedule': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['main.Schedule']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), + 'start_args': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'started': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'new'", 'max_length': '20'}), + 'unified_job_template': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'unifiedjob_unified_jobs'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.UnifiedJobTemplate']"}) + }, + 'main.unifiedjobtemplate': { + 'Meta': {'unique_together': "[('polymorphic_ctype', 'name')]", 'object_name': 'UnifiedJobTemplate'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'unifiedjobtemplate\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'current_job': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'unifiedjobtemplate_as_current_job+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.UnifiedJob']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'has_schedules': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_job': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'unifiedjobtemplate_as_last_job+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.UnifiedJob']"}), + 'last_job_failed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_job_run': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'unifiedjobtemplate\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'next_job_run': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + 'next_schedule': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'unifiedjobtemplate_as_next_schedule+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Schedule']"}), + 'old_pk': ('django.db.models.fields.PositiveIntegerField', [], {'default': 'None', 'null': 'True'}), + 'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_main.unifiedjobtemplate_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'ok'", 'max_length': '32'}) + } + } + + complete_apps = ['main'] + symmetrical = True diff --git a/awx/main/migrations/0072_v240_changes.py b/awx/main/migrations/0072_v240_changes.py new file mode 100644 index 0000000000..d6d30695d5 --- /dev/null +++ b/awx/main/migrations/0072_v240_changes.py @@ -0,0 +1,522 @@ +# -*- coding: utf-8 -*- +from south.utils import datetime_utils as datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'AuthToken.reason' + db.add_column(u'main_authtoken', 'reason', + self.gf('django.db.models.fields.CharField')(default='', max_length=1024, blank=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'AuthToken.reason' + db.delete_column(u'main_authtoken', 'reason') + + + models = { + u'auth.group': { + 'Meta': {'object_name': 'Group'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + u'auth.permission': { + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + u'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'main.activitystream': { + 'Meta': {'object_name': 'ActivityStream'}, + 'actor': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'activity_stream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'ad_hoc_command': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.AdHocCommand']", 'symmetrical': 'False', 'blank': 'True'}), + 'changes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'credential': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Credential']", 'symmetrical': 'False', 'blank': 'True'}), + 'custom_inventory_script': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.CustomInventoryScript']", 'symmetrical': 'False', 'blank': 'True'}), + 'group': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'host': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Host']", 'symmetrical': 'False', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inventory': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Inventory']", 'symmetrical': 'False', 'blank': 'True'}), + 'inventory_source': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.InventorySource']", 'symmetrical': 'False', 'blank': 'True'}), + 'inventory_update': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.InventoryUpdate']", 'symmetrical': 'False', 'blank': 'True'}), + 'job': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Job']", 'symmetrical': 'False', 'blank': 'True'}), + 'job_template': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.JobTemplate']", 'symmetrical': 'False', 'blank': 'True'}), + 'object1': ('django.db.models.fields.TextField', [], {}), + 'object2': ('django.db.models.fields.TextField', [], {}), + 'object_relationship_type': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'operation': ('django.db.models.fields.CharField', [], {'max_length': '13'}), + 'organization': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Organization']", 'symmetrical': 'False', 'blank': 'True'}), + 'permission': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'project': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Project']", 'symmetrical': 'False', 'blank': 'True'}), + 'project_update': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.ProjectUpdate']", 'symmetrical': 'False', 'blank': 'True'}), + 'schedule': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Schedule']", 'symmetrical': 'False', 'blank': 'True'}), + 'team': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Team']", 'symmetrical': 'False', 'blank': 'True'}), + 'timestamp': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'unified_job': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'activity_stream_as_unified_job+'", 'blank': 'True', 'to': "orm['main.UnifiedJob']"}), + 'unified_job_template': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'activity_stream_as_unified_job_template+'", 'blank': 'True', 'to': "orm['main.UnifiedJobTemplate']"}), + 'user': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.User']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'main.adhoccommand': { + 'Meta': {'object_name': 'AdHocCommand', '_ormbases': ['main.UnifiedJob']}, + 'become_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'ad_hoc_commands'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Credential']"}), + 'forks': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}), + 'hosts': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'ad_hoc_commands'", 'symmetrical': 'False', 'through': "orm['main.AdHocCommandEvent']", 'to': "orm['main.Host']"}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ad_hoc_commands'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Inventory']"}), + 'job_type': ('django.db.models.fields.CharField', [], {'default': "'run'", 'max_length': '64'}), + 'limit': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'module_args': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'module_name': ('django.db.models.fields.CharField', [], {'default': "'command'", 'max_length': '1024', 'blank': 'True'}), + u'unifiedjob_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJob']", 'unique': 'True', 'primary_key': 'True'}), + 'verbosity': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}) + }, + 'main.adhoccommandevent': { + 'Meta': {'ordering': "('-pk',)", 'unique_together': "[('ad_hoc_command', 'host_name')]", 'object_name': 'AdHocCommandEvent'}, + 'ad_hoc_command': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ad_hoc_command_events'", 'to': "orm['main.AdHocCommand']"}), + 'changed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'counter': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'event': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'event_data': ('jsonfield.fields.JSONField', [], {'default': '{}', 'blank': 'True'}), + 'failed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'host': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'ad_hoc_command_events'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Host']"}), + 'host_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}) + }, + 'main.authtoken': { + 'Meta': {'object_name': 'AuthToken'}, + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'expires': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'key': ('django.db.models.fields.CharField', [], {'max_length': '40', 'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'reason': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'request_hash': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_tokens'", 'to': u"orm['auth.User']"}) + }, + 'main.credential': { + 'Meta': {'ordering': "('kind', 'name')", 'unique_together': "[('user', 'team', 'kind', 'name')]", 'object_name': 'Credential'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'become_method': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '32', 'blank': 'True'}), + 'become_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'become_username': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'cloud': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'credential\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'host': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'kind': ('django.db.models.fields.CharField', [], {'default': "'ssh'", 'max_length': '32'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'credential\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'project': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}), + 'ssh_key_data': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'ssh_key_unlock': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'team': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'credentials'", 'null': 'True', 'blank': 'True', 'to': "orm['main.Team']"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'credentials'", 'null': 'True', 'blank': 'True', 'to': u"orm['auth.User']"}), + 'username': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'vault_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}) + }, + 'main.custominventoryscript': { + 'Meta': {'ordering': "('name',)", 'unique_together': "[('name', 'organization')]", 'object_name': 'CustomInventoryScript'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'custominventoryscript\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'custominventoryscript\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'custom_inventory_scripts'", 'to': "orm['main.Organization']"}), + 'script': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}) + }, + 'main.group': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('name', 'inventory'),)", 'object_name': 'Group'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'group\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'groups_with_active_failures': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'has_active_failures': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'has_inventory_sources': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'hosts': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'groups'", 'blank': 'True', 'to': "orm['main.Host']"}), + 'hosts_with_active_failures': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Inventory']"}), + 'inventory_sources': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'groups'", 'symmetrical': 'False', 'to': "orm['main.InventorySource']"}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'group\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'parents': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'children'", 'blank': 'True', 'to': "orm['main.Group']"}), + 'total_groups': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'total_hosts': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'variables': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}) + }, + 'main.host': { + 'Meta': {'ordering': "('inventory', 'name')", 'unique_together': "(('name', 'inventory'),)", 'object_name': 'Host'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'host\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'has_active_failures': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'has_inventory_sources': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'instance_id': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'hosts'", 'to': "orm['main.Inventory']"}), + 'inventory_sources': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'hosts'", 'symmetrical': 'False', 'to': "orm['main.InventorySource']"}), + 'last_job': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'hosts_as_last_job+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Job']"}), + 'last_job_host_summary': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'hosts_as_last_job_summary+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.JobHostSummary']", 'blank': 'True', 'null': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'host\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'variables': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}) + }, + 'main.instance': { + 'Meta': {'object_name': 'Instance'}, + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'hostname': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'primary': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '40'}) + }, + 'main.inventory': { + 'Meta': {'ordering': "('name',)", 'unique_together': "[('name', 'organization')]", 'object_name': 'Inventory'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'inventory\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'groups_with_active_failures': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'has_active_failures': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'has_inventory_sources': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'hosts_with_active_failures': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inventory_sources_with_failures': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'inventory\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'inventories'", 'to': "orm['main.Organization']"}), + 'total_groups': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'total_hosts': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'total_inventory_sources': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'variables': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}) + }, + 'main.inventorysource': { + 'Meta': {'object_name': 'InventorySource', '_ormbases': ['main.UnifiedJobTemplate']}, + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'inventorysources'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'group': ('awx.main.fields.AutoOneToOneField', [], {'default': 'None', 'related_name': "'inventory_source'", 'unique': 'True', 'null': 'True', 'to': "orm['main.Group']"}), + 'group_by': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'instance_filters': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'inventory_sources'", 'null': 'True', 'to': "orm['main.Inventory']"}), + 'overwrite': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'overwrite_vars': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'source': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '32', 'blank': 'True'}), + 'source_path': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'source_regions': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'source_script': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['main.CustomInventoryScript']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), + 'source_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'unifiedjobtemplate_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJobTemplate']", 'unique': 'True', 'primary_key': 'True'}), + 'update_cache_timeout': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'update_on_launch': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'main.inventoryupdate': { + 'Meta': {'object_name': 'InventoryUpdate', '_ormbases': ['main.UnifiedJob']}, + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'inventoryupdates'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'group_by': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'instance_filters': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'inventory_source': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'inventory_updates'", 'to': "orm['main.InventorySource']"}), + 'license_error': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'overwrite': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'overwrite_vars': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'source': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '32', 'blank': 'True'}), + 'source_path': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'source_regions': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'source_script': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['main.CustomInventoryScript']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), + 'source_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'unifiedjob_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJob']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'main.job': { + 'Meta': {'ordering': "('id',)", 'object_name': 'Job', '_ormbases': ['main.UnifiedJob']}, + 'become_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'cloud_credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs_as_cloud_credential+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'extra_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'force_handlers': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'forks': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}), + 'hosts': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'jobs'", 'symmetrical': 'False', 'through': "orm['main.JobHostSummary']", 'to': "orm['main.Host']"}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Inventory']"}), + 'job_tags': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'job_template': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.JobTemplate']", 'blank': 'True', 'null': 'True'}), + 'job_type': ('django.db.models.fields.CharField', [], {'default': "'run'", 'max_length': '64'}), + 'limit': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'playbook': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Project']", 'blank': 'True', 'null': 'True'}), + 'skip_tags': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'start_at_task': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + u'unifiedjob_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJob']", 'unique': 'True', 'primary_key': 'True'}), + 'verbosity': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}) + }, + 'main.jobevent': { + 'Meta': {'ordering': "('pk',)", 'object_name': 'JobEvent'}, + 'changed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'counter': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'event': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'event_data': ('jsonfield.fields.JSONField', [], {'default': '{}', 'blank': 'True'}), + 'failed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'host': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'job_events_as_primary_host'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Host']"}), + 'host_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}), + 'hosts': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'job_events'", 'symmetrical': 'False', 'to': "orm['main.Host']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'job': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'job_events'", 'to': "orm['main.Job']"}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'children'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.JobEvent']"}), + 'play': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}), + 'role': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}), + 'task': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}) + }, + 'main.jobhostsummary': { + 'Meta': {'ordering': "('-pk',)", 'unique_together': "[('job', 'host_name')]", 'object_name': 'JobHostSummary'}, + 'changed': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'dark': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'failed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'failures': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'host': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'job_host_summaries'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Host']"}), + 'host_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'job': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'job_host_summaries'", 'to': "orm['main.Job']"}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'ok': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'processed': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'skipped': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}) + }, + 'main.joborigin': { + 'Meta': {'object_name': 'JobOrigin'}, + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'instance': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Instance']"}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'unified_job': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'job_origin'", 'unique': 'True', 'to': "orm['main.UnifiedJob']"}) + }, + 'main.jobtemplate': { + 'Meta': {'ordering': "('name',)", 'object_name': 'JobTemplate', '_ormbases': ['main.UnifiedJobTemplate']}, + 'ask_variables_on_launch': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'become_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'cloud_credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobtemplates_as_cloud_credential+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobtemplates'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'extra_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'force_handlers': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'forks': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}), + 'host_config_key': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobtemplates'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Inventory']"}), + 'job_tags': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'job_type': ('django.db.models.fields.CharField', [], {'default': "'run'", 'max_length': '64'}), + 'limit': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'playbook': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobtemplates'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Project']", 'blank': 'True', 'null': 'True'}), + 'skip_tags': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'start_at_task': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'survey_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'survey_spec': ('jsonfield.fields.JSONField', [], {'default': '{}', 'blank': 'True'}), + u'unifiedjobtemplate_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJobTemplate']", 'unique': 'True', 'primary_key': 'True'}), + 'verbosity': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}) + }, + 'main.organization': { + 'Meta': {'ordering': "('name',)", 'object_name': 'Organization'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'admins': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'admin_of_organizations'", 'blank': 'True', 'to': u"orm['auth.User']"}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'organization\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'organization\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}), + 'projects': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'organizations'", 'blank': 'True', 'to': "orm['main.Project']"}), + 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'organizations'", 'blank': 'True', 'to': u"orm['auth.User']"}) + }, + 'main.permission': { + 'Meta': {'object_name': 'Permission'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'permission\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'permissions'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Inventory']"}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'permission\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'permission_type': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'permissions'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Project']"}), + 'run_ad_hoc_commands': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'team': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'permissions'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Team']"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'permissions'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}) + }, + 'main.profile': { + 'Meta': {'object_name': 'Profile'}, + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'ldap_dn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'user': ('awx.main.fields.AutoOneToOneField', [], {'related_name': "'profile'", 'unique': 'True', 'to': u"orm['auth.User']"}) + }, + 'main.project': { + 'Meta': {'ordering': "('id',)", 'object_name': 'Project', '_ormbases': ['main.UnifiedJobTemplate']}, + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'projects'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'local_path': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'blank': 'True'}), + 'scm_branch': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}), + 'scm_clean': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'scm_delete_on_next_update': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'scm_delete_on_update': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'scm_type': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '8', 'blank': 'True'}), + 'scm_update_cache_timeout': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}), + 'scm_update_on_launch': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'scm_url': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + u'unifiedjobtemplate_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJobTemplate']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'main.projectupdate': { + 'Meta': {'object_name': 'ProjectUpdate', '_ormbases': ['main.UnifiedJob']}, + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'projectupdates'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'local_path': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'blank': 'True'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'project_updates'", 'to': "orm['main.Project']"}), + 'scm_branch': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}), + 'scm_clean': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'scm_delete_on_update': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'scm_type': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '8', 'blank': 'True'}), + 'scm_url': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + u'unifiedjob_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJob']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'main.schedule': { + 'Meta': {'ordering': "['-next_run']", 'object_name': 'Schedule'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'schedule\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'dtend': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + 'dtstart': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'extra_data': ('jsonfield.fields.JSONField', [], {'default': '{}', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'schedule\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}), + 'next_run': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + 'rrule': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'unified_job_template': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'schedules'", 'to': "orm['main.UnifiedJobTemplate']"}) + }, + 'main.systemjob': { + 'Meta': {'ordering': "('id',)", 'object_name': 'SystemJob', '_ormbases': ['main.UnifiedJob']}, + 'extra_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'job_type': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '32', 'blank': 'True'}), + 'system_job_template': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.SystemJobTemplate']", 'blank': 'True', 'null': 'True'}), + u'unifiedjob_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJob']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'main.systemjobtemplate': { + 'Meta': {'object_name': 'SystemJobTemplate', '_ormbases': ['main.UnifiedJobTemplate']}, + 'job_type': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '32', 'blank': 'True'}), + u'unifiedjobtemplate_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJobTemplate']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'main.team': { + 'Meta': {'ordering': "('organization__name', 'name')", 'unique_together': "[('organization', 'name')]", 'object_name': 'Team'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'team\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'team\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'teams'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Organization']"}), + 'projects': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'teams'", 'blank': 'True', 'to': "orm['main.Project']"}), + 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'teams'", 'blank': 'True', 'to': u"orm['auth.User']"}) + }, + 'main.unifiedjob': { + 'Meta': {'object_name': 'UnifiedJob'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'cancel_flag': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'celery_task_id': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'unifiedjob\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'dependent_jobs': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'dependent_jobs_rel_+'", 'to': "orm['main.UnifiedJob']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'elapsed': ('django.db.models.fields.DecimalField', [], {'max_digits': '12', 'decimal_places': '3'}), + 'failed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'finished': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'job_args': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'job_cwd': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'job_env': ('jsonfield.fields.JSONField', [], {'default': '{}', 'blank': 'True'}), + 'job_explanation': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'launch_type': ('django.db.models.fields.CharField', [], {'default': "'manual'", 'max_length': '20'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'unifiedjob\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'old_pk': ('django.db.models.fields.PositiveIntegerField', [], {'default': 'None', 'null': 'True'}), + 'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_main.unifiedjob_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), + 'result_stdout_file': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'result_stdout_text': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'result_traceback': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'schedule': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['main.Schedule']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), + 'start_args': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'started': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'new'", 'max_length': '20'}), + 'unified_job_template': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'unifiedjob_unified_jobs'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.UnifiedJobTemplate']"}) + }, + 'main.unifiedjobtemplate': { + 'Meta': {'unique_together': "[('polymorphic_ctype', 'name')]", 'object_name': 'UnifiedJobTemplate'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'unifiedjobtemplate\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'current_job': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'unifiedjobtemplate_as_current_job+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.UnifiedJob']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'has_schedules': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_job': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'unifiedjobtemplate_as_last_job+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.UnifiedJob']"}), + 'last_job_failed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_job_run': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'unifiedjobtemplate\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'next_job_run': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + 'next_schedule': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'unifiedjobtemplate_as_next_schedule+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Schedule']"}), + 'old_pk': ('django.db.models.fields.PositiveIntegerField', [], {'default': 'None', 'null': 'True'}), + 'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_main.unifiedjobtemplate_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'ok'", 'max_length': '32'}) + } + } + + complete_apps = ['main'] \ No newline at end of file diff --git a/awx/main/migrations/0073_v240_changes.py b/awx/main/migrations/0073_v240_changes.py new file mode 100644 index 0000000000..3c844bc09b --- /dev/null +++ b/awx/main/migrations/0073_v240_changes.py @@ -0,0 +1,523 @@ +# -*- coding: utf-8 -*- +from south.utils import datetime_utils as datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'Credential.security_token' + db.add_column(u'main_credential', 'security_token', + self.gf('django.db.models.fields.CharField')(default='', max_length=1024, blank=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'Credential.security_token' + db.delete_column(u'main_credential', 'security_token') + + + models = { + u'auth.group': { + 'Meta': {'object_name': 'Group'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + u'auth.permission': { + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + u'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'main.activitystream': { + 'Meta': {'object_name': 'ActivityStream'}, + 'actor': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'activity_stream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'ad_hoc_command': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.AdHocCommand']", 'symmetrical': 'False', 'blank': 'True'}), + 'changes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'credential': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Credential']", 'symmetrical': 'False', 'blank': 'True'}), + 'custom_inventory_script': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.CustomInventoryScript']", 'symmetrical': 'False', 'blank': 'True'}), + 'group': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'host': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Host']", 'symmetrical': 'False', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inventory': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Inventory']", 'symmetrical': 'False', 'blank': 'True'}), + 'inventory_source': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.InventorySource']", 'symmetrical': 'False', 'blank': 'True'}), + 'inventory_update': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.InventoryUpdate']", 'symmetrical': 'False', 'blank': 'True'}), + 'job': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Job']", 'symmetrical': 'False', 'blank': 'True'}), + 'job_template': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.JobTemplate']", 'symmetrical': 'False', 'blank': 'True'}), + 'object1': ('django.db.models.fields.TextField', [], {}), + 'object2': ('django.db.models.fields.TextField', [], {}), + 'object_relationship_type': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'operation': ('django.db.models.fields.CharField', [], {'max_length': '13'}), + 'organization': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Organization']", 'symmetrical': 'False', 'blank': 'True'}), + 'permission': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'project': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Project']", 'symmetrical': 'False', 'blank': 'True'}), + 'project_update': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.ProjectUpdate']", 'symmetrical': 'False', 'blank': 'True'}), + 'schedule': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Schedule']", 'symmetrical': 'False', 'blank': 'True'}), + 'team': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Team']", 'symmetrical': 'False', 'blank': 'True'}), + 'timestamp': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'unified_job': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'activity_stream_as_unified_job+'", 'blank': 'True', 'to': "orm['main.UnifiedJob']"}), + 'unified_job_template': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'activity_stream_as_unified_job_template+'", 'blank': 'True', 'to': "orm['main.UnifiedJobTemplate']"}), + 'user': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.User']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'main.adhoccommand': { + 'Meta': {'object_name': 'AdHocCommand', '_ormbases': ['main.UnifiedJob']}, + 'become_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'ad_hoc_commands'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Credential']"}), + 'forks': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}), + 'hosts': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'ad_hoc_commands'", 'symmetrical': 'False', 'through': "orm['main.AdHocCommandEvent']", 'to': "orm['main.Host']"}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ad_hoc_commands'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Inventory']"}), + 'job_type': ('django.db.models.fields.CharField', [], {'default': "'run'", 'max_length': '64'}), + 'limit': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'module_args': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'module_name': ('django.db.models.fields.CharField', [], {'default': "'command'", 'max_length': '1024', 'blank': 'True'}), + u'unifiedjob_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJob']", 'unique': 'True', 'primary_key': 'True'}), + 'verbosity': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}) + }, + 'main.adhoccommandevent': { + 'Meta': {'ordering': "('-pk',)", 'unique_together': "[('ad_hoc_command', 'host_name')]", 'object_name': 'AdHocCommandEvent'}, + 'ad_hoc_command': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ad_hoc_command_events'", 'to': "orm['main.AdHocCommand']"}), + 'changed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'counter': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'event': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'event_data': ('jsonfield.fields.JSONField', [], {'default': '{}', 'blank': 'True'}), + 'failed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'host': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'ad_hoc_command_events'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Host']"}), + 'host_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}) + }, + 'main.authtoken': { + 'Meta': {'object_name': 'AuthToken'}, + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'expires': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'key': ('django.db.models.fields.CharField', [], {'max_length': '40', 'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'reason': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'request_hash': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_tokens'", 'to': u"orm['auth.User']"}) + }, + 'main.credential': { + 'Meta': {'ordering': "('kind', 'name')", 'unique_together': "[('user', 'team', 'kind', 'name')]", 'object_name': 'Credential'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'become_method': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '32', 'blank': 'True'}), + 'become_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'become_username': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'cloud': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'credential\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'host': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'kind': ('django.db.models.fields.CharField', [], {'default': "'ssh'", 'max_length': '32'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'credential\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'project': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}), + 'security_token': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'ssh_key_data': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'ssh_key_unlock': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'team': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'credentials'", 'null': 'True', 'blank': 'True', 'to': "orm['main.Team']"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'credentials'", 'null': 'True', 'blank': 'True', 'to': u"orm['auth.User']"}), + 'username': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'vault_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}) + }, + 'main.custominventoryscript': { + 'Meta': {'ordering': "('name',)", 'unique_together': "[('name', 'organization')]", 'object_name': 'CustomInventoryScript'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'custominventoryscript\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'custominventoryscript\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'custom_inventory_scripts'", 'to': "orm['main.Organization']"}), + 'script': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}) + }, + 'main.group': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('name', 'inventory'),)", 'object_name': 'Group'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'group\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'groups_with_active_failures': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'has_active_failures': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'has_inventory_sources': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'hosts': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'groups'", 'blank': 'True', 'to': "orm['main.Host']"}), + 'hosts_with_active_failures': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Inventory']"}), + 'inventory_sources': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'groups'", 'symmetrical': 'False', 'to': "orm['main.InventorySource']"}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'group\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'parents': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'children'", 'blank': 'True', 'to': "orm['main.Group']"}), + 'total_groups': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'total_hosts': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'variables': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}) + }, + 'main.host': { + 'Meta': {'ordering': "('inventory', 'name')", 'unique_together': "(('name', 'inventory'),)", 'object_name': 'Host'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'host\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'has_active_failures': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'has_inventory_sources': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'instance_id': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'hosts'", 'to': "orm['main.Inventory']"}), + 'inventory_sources': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'hosts'", 'symmetrical': 'False', 'to': "orm['main.InventorySource']"}), + 'last_job': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'hosts_as_last_job+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Job']"}), + 'last_job_host_summary': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'hosts_as_last_job_summary+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.JobHostSummary']", 'blank': 'True', 'null': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'host\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'variables': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}) + }, + 'main.instance': { + 'Meta': {'object_name': 'Instance'}, + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'hostname': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'primary': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '40'}) + }, + 'main.inventory': { + 'Meta': {'ordering': "('name',)", 'unique_together': "[('name', 'organization')]", 'object_name': 'Inventory'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'inventory\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'groups_with_active_failures': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'has_active_failures': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'has_inventory_sources': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'hosts_with_active_failures': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inventory_sources_with_failures': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'inventory\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'inventories'", 'to': "orm['main.Organization']"}), + 'total_groups': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'total_hosts': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'total_inventory_sources': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'variables': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}) + }, + 'main.inventorysource': { + 'Meta': {'object_name': 'InventorySource', '_ormbases': ['main.UnifiedJobTemplate']}, + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'inventorysources'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'group': ('awx.main.fields.AutoOneToOneField', [], {'default': 'None', 'related_name': "'inventory_source'", 'unique': 'True', 'null': 'True', 'to': "orm['main.Group']"}), + 'group_by': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'instance_filters': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'inventory_sources'", 'null': 'True', 'to': "orm['main.Inventory']"}), + 'overwrite': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'overwrite_vars': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'source': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '32', 'blank': 'True'}), + 'source_path': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'source_regions': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'source_script': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['main.CustomInventoryScript']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), + 'source_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'unifiedjobtemplate_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJobTemplate']", 'unique': 'True', 'primary_key': 'True'}), + 'update_cache_timeout': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'update_on_launch': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'main.inventoryupdate': { + 'Meta': {'object_name': 'InventoryUpdate', '_ormbases': ['main.UnifiedJob']}, + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'inventoryupdates'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'group_by': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'instance_filters': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'inventory_source': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'inventory_updates'", 'to': "orm['main.InventorySource']"}), + 'license_error': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'overwrite': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'overwrite_vars': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'source': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '32', 'blank': 'True'}), + 'source_path': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'source_regions': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'source_script': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['main.CustomInventoryScript']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), + 'source_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'unifiedjob_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJob']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'main.job': { + 'Meta': {'ordering': "('id',)", 'object_name': 'Job', '_ormbases': ['main.UnifiedJob']}, + 'become_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'cloud_credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs_as_cloud_credential+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'extra_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'force_handlers': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'forks': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}), + 'hosts': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'jobs'", 'symmetrical': 'False', 'through': "orm['main.JobHostSummary']", 'to': "orm['main.Host']"}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Inventory']"}), + 'job_tags': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'job_template': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.JobTemplate']", 'blank': 'True', 'null': 'True'}), + 'job_type': ('django.db.models.fields.CharField', [], {'default': "'run'", 'max_length': '64'}), + 'limit': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'playbook': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Project']", 'blank': 'True', 'null': 'True'}), + 'skip_tags': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'start_at_task': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + u'unifiedjob_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJob']", 'unique': 'True', 'primary_key': 'True'}), + 'verbosity': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}) + }, + 'main.jobevent': { + 'Meta': {'ordering': "('pk',)", 'object_name': 'JobEvent'}, + 'changed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'counter': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'event': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'event_data': ('jsonfield.fields.JSONField', [], {'default': '{}', 'blank': 'True'}), + 'failed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'host': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'job_events_as_primary_host'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Host']"}), + 'host_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}), + 'hosts': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'job_events'", 'symmetrical': 'False', 'to': "orm['main.Host']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'job': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'job_events'", 'to': "orm['main.Job']"}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'children'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.JobEvent']"}), + 'play': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}), + 'role': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}), + 'task': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}) + }, + 'main.jobhostsummary': { + 'Meta': {'ordering': "('-pk',)", 'unique_together': "[('job', 'host_name')]", 'object_name': 'JobHostSummary'}, + 'changed': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'dark': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'failed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'failures': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'host': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'job_host_summaries'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Host']"}), + 'host_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'job': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'job_host_summaries'", 'to': "orm['main.Job']"}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'ok': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'processed': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'skipped': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}) + }, + 'main.joborigin': { + 'Meta': {'object_name': 'JobOrigin'}, + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'instance': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Instance']"}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'unified_job': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'job_origin'", 'unique': 'True', 'to': "orm['main.UnifiedJob']"}) + }, + 'main.jobtemplate': { + 'Meta': {'ordering': "('name',)", 'object_name': 'JobTemplate', '_ormbases': ['main.UnifiedJobTemplate']}, + 'ask_variables_on_launch': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'become_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'cloud_credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobtemplates_as_cloud_credential+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobtemplates'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'extra_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'force_handlers': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'forks': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}), + 'host_config_key': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobtemplates'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Inventory']"}), + 'job_tags': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'job_type': ('django.db.models.fields.CharField', [], {'default': "'run'", 'max_length': '64'}), + 'limit': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'playbook': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobtemplates'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Project']", 'blank': 'True', 'null': 'True'}), + 'skip_tags': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'start_at_task': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'survey_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'survey_spec': ('jsonfield.fields.JSONField', [], {'default': '{}', 'blank': 'True'}), + u'unifiedjobtemplate_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJobTemplate']", 'unique': 'True', 'primary_key': 'True'}), + 'verbosity': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}) + }, + 'main.organization': { + 'Meta': {'ordering': "('name',)", 'object_name': 'Organization'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'admins': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'admin_of_organizations'", 'blank': 'True', 'to': u"orm['auth.User']"}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'organization\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'organization\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}), + 'projects': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'organizations'", 'blank': 'True', 'to': "orm['main.Project']"}), + 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'organizations'", 'blank': 'True', 'to': u"orm['auth.User']"}) + }, + 'main.permission': { + 'Meta': {'object_name': 'Permission'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'permission\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'permissions'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Inventory']"}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'permission\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'permission_type': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'permissions'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Project']"}), + 'run_ad_hoc_commands': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'team': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'permissions'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Team']"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'permissions'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}) + }, + 'main.profile': { + 'Meta': {'object_name': 'Profile'}, + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'ldap_dn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'user': ('awx.main.fields.AutoOneToOneField', [], {'related_name': "'profile'", 'unique': 'True', 'to': u"orm['auth.User']"}) + }, + 'main.project': { + 'Meta': {'ordering': "('id',)", 'object_name': 'Project', '_ormbases': ['main.UnifiedJobTemplate']}, + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'projects'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'local_path': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'blank': 'True'}), + 'scm_branch': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}), + 'scm_clean': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'scm_delete_on_next_update': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'scm_delete_on_update': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'scm_type': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '8', 'blank': 'True'}), + 'scm_update_cache_timeout': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}), + 'scm_update_on_launch': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'scm_url': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + u'unifiedjobtemplate_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJobTemplate']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'main.projectupdate': { + 'Meta': {'object_name': 'ProjectUpdate', '_ormbases': ['main.UnifiedJob']}, + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'projectupdates'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'local_path': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'blank': 'True'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'project_updates'", 'to': "orm['main.Project']"}), + 'scm_branch': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}), + 'scm_clean': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'scm_delete_on_update': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'scm_type': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '8', 'blank': 'True'}), + 'scm_url': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + u'unifiedjob_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJob']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'main.schedule': { + 'Meta': {'ordering': "['-next_run']", 'object_name': 'Schedule'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'schedule\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'dtend': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + 'dtstart': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'extra_data': ('jsonfield.fields.JSONField', [], {'default': '{}', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'schedule\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}), + 'next_run': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + 'rrule': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'unified_job_template': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'schedules'", 'to': "orm['main.UnifiedJobTemplate']"}) + }, + 'main.systemjob': { + 'Meta': {'ordering': "('id',)", 'object_name': 'SystemJob', '_ormbases': ['main.UnifiedJob']}, + 'extra_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'job_type': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '32', 'blank': 'True'}), + 'system_job_template': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.SystemJobTemplate']", 'blank': 'True', 'null': 'True'}), + u'unifiedjob_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJob']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'main.systemjobtemplate': { + 'Meta': {'object_name': 'SystemJobTemplate', '_ormbases': ['main.UnifiedJobTemplate']}, + 'job_type': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '32', 'blank': 'True'}), + u'unifiedjobtemplate_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJobTemplate']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'main.team': { + 'Meta': {'ordering': "('organization__name', 'name')", 'unique_together': "[('organization', 'name')]", 'object_name': 'Team'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'team\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'team\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'teams'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Organization']"}), + 'projects': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'teams'", 'blank': 'True', 'to': "orm['main.Project']"}), + 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'teams'", 'blank': 'True', 'to': u"orm['auth.User']"}) + }, + 'main.unifiedjob': { + 'Meta': {'object_name': 'UnifiedJob'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'cancel_flag': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'celery_task_id': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'unifiedjob\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'dependent_jobs': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'dependent_jobs_rel_+'", 'to': "orm['main.UnifiedJob']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'elapsed': ('django.db.models.fields.DecimalField', [], {'max_digits': '12', 'decimal_places': '3'}), + 'failed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'finished': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'job_args': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'job_cwd': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'job_env': ('jsonfield.fields.JSONField', [], {'default': '{}', 'blank': 'True'}), + 'job_explanation': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'launch_type': ('django.db.models.fields.CharField', [], {'default': "'manual'", 'max_length': '20'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'unifiedjob\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'old_pk': ('django.db.models.fields.PositiveIntegerField', [], {'default': 'None', 'null': 'True'}), + 'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_main.unifiedjob_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), + 'result_stdout_file': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'result_stdout_text': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'result_traceback': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'schedule': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['main.Schedule']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), + 'start_args': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'started': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'new'", 'max_length': '20'}), + 'unified_job_template': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'unifiedjob_unified_jobs'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.UnifiedJobTemplate']"}) + }, + 'main.unifiedjobtemplate': { + 'Meta': {'unique_together': "[('polymorphic_ctype', 'name')]", 'object_name': 'UnifiedJobTemplate'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'unifiedjobtemplate\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'current_job': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'unifiedjobtemplate_as_current_job+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.UnifiedJob']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'has_schedules': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_job': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'unifiedjobtemplate_as_last_job+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.UnifiedJob']"}), + 'last_job_failed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_job_run': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'unifiedjobtemplate\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'next_job_run': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + 'next_schedule': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'unifiedjobtemplate_as_next_schedule+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Schedule']"}), + 'old_pk': ('django.db.models.fields.PositiveIntegerField', [], {'default': 'None', 'null': 'True'}), + 'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_main.unifiedjobtemplate_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'ok'", 'max_length': '32'}) + } + } + + complete_apps = ['main'] \ No newline at end of file diff --git a/awx/main/migrations/0074_v240_changes.py b/awx/main/migrations/0074_v240_changes.py new file mode 100644 index 0000000000..deeea4131d --- /dev/null +++ b/awx/main/migrations/0074_v240_changes.py @@ -0,0 +1,519 @@ +# -*- coding: utf-8 -*- +from south.utils import datetime_utils as datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Changing field 'CustomInventoryScript.organization' + db.alter_column(u'main_custominventoryscript', 'organization_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, on_delete=models.SET_NULL, to=orm['main.Organization'])) + + def backwards(self, orm): + # Changing field 'CustomInventoryScript.organization' + db.alter_column(u'main_custominventoryscript', 'organization_id', self.gf('django.db.models.fields.related.ForeignKey')(default=None, to=orm['main.Organization'])) + + models = { + u'auth.group': { + 'Meta': {'object_name': 'Group'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + u'auth.permission': { + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + u'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'main.activitystream': { + 'Meta': {'object_name': 'ActivityStream'}, + 'actor': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'activity_stream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'ad_hoc_command': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.AdHocCommand']", 'symmetrical': 'False', 'blank': 'True'}), + 'changes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'credential': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Credential']", 'symmetrical': 'False', 'blank': 'True'}), + 'custom_inventory_script': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.CustomInventoryScript']", 'symmetrical': 'False', 'blank': 'True'}), + 'group': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'host': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Host']", 'symmetrical': 'False', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inventory': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Inventory']", 'symmetrical': 'False', 'blank': 'True'}), + 'inventory_source': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.InventorySource']", 'symmetrical': 'False', 'blank': 'True'}), + 'inventory_update': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.InventoryUpdate']", 'symmetrical': 'False', 'blank': 'True'}), + 'job': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Job']", 'symmetrical': 'False', 'blank': 'True'}), + 'job_template': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.JobTemplate']", 'symmetrical': 'False', 'blank': 'True'}), + 'object1': ('django.db.models.fields.TextField', [], {}), + 'object2': ('django.db.models.fields.TextField', [], {}), + 'object_relationship_type': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'operation': ('django.db.models.fields.CharField', [], {'max_length': '13'}), + 'organization': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Organization']", 'symmetrical': 'False', 'blank': 'True'}), + 'permission': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'project': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Project']", 'symmetrical': 'False', 'blank': 'True'}), + 'project_update': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.ProjectUpdate']", 'symmetrical': 'False', 'blank': 'True'}), + 'schedule': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Schedule']", 'symmetrical': 'False', 'blank': 'True'}), + 'team': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Team']", 'symmetrical': 'False', 'blank': 'True'}), + 'timestamp': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'unified_job': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'activity_stream_as_unified_job+'", 'blank': 'True', 'to': "orm['main.UnifiedJob']"}), + 'unified_job_template': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'activity_stream_as_unified_job_template+'", 'blank': 'True', 'to': "orm['main.UnifiedJobTemplate']"}), + 'user': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.User']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'main.adhoccommand': { + 'Meta': {'object_name': 'AdHocCommand', '_ormbases': ['main.UnifiedJob']}, + 'become_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'ad_hoc_commands'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Credential']"}), + 'forks': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}), + 'hosts': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'ad_hoc_commands'", 'symmetrical': 'False', 'through': "orm['main.AdHocCommandEvent']", 'to': "orm['main.Host']"}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ad_hoc_commands'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Inventory']"}), + 'job_type': ('django.db.models.fields.CharField', [], {'default': "'run'", 'max_length': '64'}), + 'limit': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'module_args': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'module_name': ('django.db.models.fields.CharField', [], {'default': "'command'", 'max_length': '1024', 'blank': 'True'}), + u'unifiedjob_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJob']", 'unique': 'True', 'primary_key': 'True'}), + 'verbosity': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}) + }, + 'main.adhoccommandevent': { + 'Meta': {'ordering': "('-pk',)", 'unique_together': "[('ad_hoc_command', 'host_name')]", 'object_name': 'AdHocCommandEvent'}, + 'ad_hoc_command': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ad_hoc_command_events'", 'to': "orm['main.AdHocCommand']"}), + 'changed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'counter': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'event': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'event_data': ('jsonfield.fields.JSONField', [], {'default': '{}', 'blank': 'True'}), + 'failed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'host': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'ad_hoc_command_events'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Host']"}), + 'host_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}) + }, + 'main.authtoken': { + 'Meta': {'object_name': 'AuthToken'}, + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'expires': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'key': ('django.db.models.fields.CharField', [], {'max_length': '40', 'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'reason': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'request_hash': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_tokens'", 'to': u"orm['auth.User']"}) + }, + 'main.credential': { + 'Meta': {'ordering': "('kind', 'name')", 'unique_together': "[('user', 'team', 'kind', 'name')]", 'object_name': 'Credential'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'become_method': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '32', 'blank': 'True'}), + 'become_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'become_username': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'cloud': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'credential\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'host': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'kind': ('django.db.models.fields.CharField', [], {'default': "'ssh'", 'max_length': '32'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'credential\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'project': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}), + 'security_token': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'ssh_key_data': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'ssh_key_unlock': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'team': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'credentials'", 'null': 'True', 'blank': 'True', 'to': "orm['main.Team']"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'credentials'", 'null': 'True', 'blank': 'True', 'to': u"orm['auth.User']"}), + 'username': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'vault_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}) + }, + 'main.custominventoryscript': { + 'Meta': {'ordering': "('name',)", 'unique_together': "[('name', 'organization')]", 'object_name': 'CustomInventoryScript'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'custominventoryscript\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'custominventoryscript\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'custom_inventory_scripts'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Organization']"}), + 'script': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}) + }, + 'main.group': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('name', 'inventory'),)", 'object_name': 'Group'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'group\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'groups_with_active_failures': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'has_active_failures': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'has_inventory_sources': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'hosts': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'groups'", 'blank': 'True', 'to': "orm['main.Host']"}), + 'hosts_with_active_failures': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Inventory']"}), + 'inventory_sources': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'groups'", 'symmetrical': 'False', 'to': "orm['main.InventorySource']"}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'group\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'parents': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'children'", 'blank': 'True', 'to': "orm['main.Group']"}), + 'total_groups': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'total_hosts': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'variables': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}) + }, + 'main.host': { + 'Meta': {'ordering': "('inventory', 'name')", 'unique_together': "(('name', 'inventory'),)", 'object_name': 'Host'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'host\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'has_active_failures': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'has_inventory_sources': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'instance_id': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'hosts'", 'to': "orm['main.Inventory']"}), + 'inventory_sources': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'hosts'", 'symmetrical': 'False', 'to': "orm['main.InventorySource']"}), + 'last_job': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'hosts_as_last_job+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Job']"}), + 'last_job_host_summary': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'hosts_as_last_job_summary+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.JobHostSummary']", 'blank': 'True', 'null': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'host\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'variables': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}) + }, + 'main.instance': { + 'Meta': {'object_name': 'Instance'}, + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'hostname': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'primary': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '40'}) + }, + 'main.inventory': { + 'Meta': {'ordering': "('name',)", 'unique_together': "[('name', 'organization')]", 'object_name': 'Inventory'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'inventory\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'groups_with_active_failures': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'has_active_failures': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'has_inventory_sources': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'hosts_with_active_failures': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inventory_sources_with_failures': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'inventory\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'inventories'", 'to': "orm['main.Organization']"}), + 'total_groups': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'total_hosts': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'total_inventory_sources': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'variables': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}) + }, + 'main.inventorysource': { + 'Meta': {'object_name': 'InventorySource', '_ormbases': ['main.UnifiedJobTemplate']}, + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'inventorysources'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'group': ('awx.main.fields.AutoOneToOneField', [], {'default': 'None', 'related_name': "'inventory_source'", 'unique': 'True', 'null': 'True', 'to': "orm['main.Group']"}), + 'group_by': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'instance_filters': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'inventory_sources'", 'null': 'True', 'to': "orm['main.Inventory']"}), + 'overwrite': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'overwrite_vars': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'source': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '32', 'blank': 'True'}), + 'source_path': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'source_regions': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'source_script': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['main.CustomInventoryScript']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), + 'source_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'unifiedjobtemplate_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJobTemplate']", 'unique': 'True', 'primary_key': 'True'}), + 'update_cache_timeout': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'update_on_launch': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'main.inventoryupdate': { + 'Meta': {'object_name': 'InventoryUpdate', '_ormbases': ['main.UnifiedJob']}, + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'inventoryupdates'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'group_by': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'instance_filters': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'inventory_source': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'inventory_updates'", 'to': "orm['main.InventorySource']"}), + 'license_error': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'overwrite': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'overwrite_vars': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'source': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '32', 'blank': 'True'}), + 'source_path': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'source_regions': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'source_script': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['main.CustomInventoryScript']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), + 'source_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'unifiedjob_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJob']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'main.job': { + 'Meta': {'ordering': "('id',)", 'object_name': 'Job', '_ormbases': ['main.UnifiedJob']}, + 'become_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'cloud_credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs_as_cloud_credential+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'extra_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'force_handlers': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'forks': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}), + 'hosts': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'jobs'", 'symmetrical': 'False', 'through': "orm['main.JobHostSummary']", 'to': "orm['main.Host']"}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Inventory']"}), + 'job_tags': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'job_template': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.JobTemplate']", 'blank': 'True', 'null': 'True'}), + 'job_type': ('django.db.models.fields.CharField', [], {'default': "'run'", 'max_length': '64'}), + 'limit': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'playbook': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Project']", 'blank': 'True', 'null': 'True'}), + 'skip_tags': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'start_at_task': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + u'unifiedjob_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJob']", 'unique': 'True', 'primary_key': 'True'}), + 'verbosity': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}) + }, + 'main.jobevent': { + 'Meta': {'ordering': "('pk',)", 'object_name': 'JobEvent'}, + 'changed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'counter': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'event': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'event_data': ('jsonfield.fields.JSONField', [], {'default': '{}', 'blank': 'True'}), + 'failed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'host': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'job_events_as_primary_host'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Host']"}), + 'host_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}), + 'hosts': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'job_events'", 'symmetrical': 'False', 'to': "orm['main.Host']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'job': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'job_events'", 'to': "orm['main.Job']"}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'children'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.JobEvent']"}), + 'play': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}), + 'role': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}), + 'task': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}) + }, + 'main.jobhostsummary': { + 'Meta': {'ordering': "('-pk',)", 'unique_together': "[('job', 'host_name')]", 'object_name': 'JobHostSummary'}, + 'changed': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'dark': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'failed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'failures': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'host': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'job_host_summaries'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Host']"}), + 'host_name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'job': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'job_host_summaries'", 'to': "orm['main.Job']"}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'ok': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'processed': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'skipped': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}) + }, + 'main.joborigin': { + 'Meta': {'object_name': 'JobOrigin'}, + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'instance': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Instance']"}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'unified_job': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'job_origin'", 'unique': 'True', 'to': "orm['main.UnifiedJob']"}) + }, + 'main.jobtemplate': { + 'Meta': {'ordering': "('name',)", 'object_name': 'JobTemplate', '_ormbases': ['main.UnifiedJobTemplate']}, + 'ask_variables_on_launch': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'become_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'cloud_credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobtemplates_as_cloud_credential+'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobtemplates'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'extra_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'force_handlers': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'forks': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}), + 'host_config_key': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobtemplates'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Inventory']"}), + 'job_tags': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'job_type': ('django.db.models.fields.CharField', [], {'default': "'run'", 'max_length': '64'}), + 'limit': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'playbook': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobtemplates'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Project']", 'blank': 'True', 'null': 'True'}), + 'skip_tags': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'start_at_task': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'survey_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'survey_spec': ('jsonfield.fields.JSONField', [], {'default': '{}', 'blank': 'True'}), + u'unifiedjobtemplate_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJobTemplate']", 'unique': 'True', 'primary_key': 'True'}), + 'verbosity': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}) + }, + 'main.organization': { + 'Meta': {'ordering': "('name',)", 'object_name': 'Organization'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'admins': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'admin_of_organizations'", 'blank': 'True', 'to': u"orm['auth.User']"}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'organization\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'organization\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}), + 'projects': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'organizations'", 'blank': 'True', 'to': "orm['main.Project']"}), + 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'organizations'", 'blank': 'True', 'to': u"orm['auth.User']"}) + }, + 'main.permission': { + 'Meta': {'object_name': 'Permission'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'permission\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inventory': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'permissions'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Inventory']"}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'permission\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'permission_type': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'permissions'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Project']"}), + 'run_ad_hoc_commands': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'team': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'permissions'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Team']"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'permissions'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}) + }, + 'main.profile': { + 'Meta': {'object_name': 'Profile'}, + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'ldap_dn': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'user': ('awx.main.fields.AutoOneToOneField', [], {'related_name': "'profile'", 'unique': 'True', 'to': u"orm['auth.User']"}) + }, + 'main.project': { + 'Meta': {'ordering': "('id',)", 'object_name': 'Project', '_ormbases': ['main.UnifiedJobTemplate']}, + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'projects'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'local_path': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'blank': 'True'}), + 'scm_branch': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}), + 'scm_clean': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'scm_delete_on_next_update': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'scm_delete_on_update': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'scm_type': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '8', 'blank': 'True'}), + 'scm_update_cache_timeout': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'blank': 'True'}), + 'scm_update_on_launch': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'scm_url': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + u'unifiedjobtemplate_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJobTemplate']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'main.projectupdate': { + 'Meta': {'object_name': 'ProjectUpdate', '_ormbases': ['main.UnifiedJob']}, + 'credential': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'projectupdates'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.Credential']", 'blank': 'True', 'null': 'True'}), + 'local_path': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'blank': 'True'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'project_updates'", 'to': "orm['main.Project']"}), + 'scm_branch': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'blank': 'True'}), + 'scm_clean': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'scm_delete_on_update': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'scm_type': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '8', 'blank': 'True'}), + 'scm_url': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + u'unifiedjob_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJob']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'main.schedule': { + 'Meta': {'ordering': "['-next_run']", 'object_name': 'Schedule'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'schedule\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'dtend': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + 'dtstart': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'extra_data': ('jsonfield.fields.JSONField', [], {'default': '{}', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'schedule\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}), + 'next_run': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + 'rrule': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'unified_job_template': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'schedules'", 'to': "orm['main.UnifiedJobTemplate']"}) + }, + 'main.systemjob': { + 'Meta': {'ordering': "('id',)", 'object_name': 'SystemJob', '_ormbases': ['main.UnifiedJob']}, + 'extra_vars': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'job_type': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '32', 'blank': 'True'}), + 'system_job_template': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jobs'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['main.SystemJobTemplate']", 'blank': 'True', 'null': 'True'}), + u'unifiedjob_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJob']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'main.systemjobtemplate': { + 'Meta': {'object_name': 'SystemJobTemplate', '_ormbases': ['main.UnifiedJobTemplate']}, + 'job_type': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '32', 'blank': 'True'}), + u'unifiedjobtemplate_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['main.UnifiedJobTemplate']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'main.team': { + 'Meta': {'ordering': "('organization__name', 'name')", 'unique_together': "[('organization', 'name')]", 'object_name': 'Team'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'team\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'team\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'teams'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Organization']"}), + 'projects': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'teams'", 'blank': 'True', 'to': "orm['main.Project']"}), + 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'teams'", 'blank': 'True', 'to': u"orm['auth.User']"}) + }, + 'main.unifiedjob': { + 'Meta': {'object_name': 'UnifiedJob'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'cancel_flag': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'celery_task_id': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '100', 'blank': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'unifiedjob\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'dependent_jobs': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'dependent_jobs_rel_+'", 'to': "orm['main.UnifiedJob']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'elapsed': ('django.db.models.fields.DecimalField', [], {'max_digits': '12', 'decimal_places': '3'}), + 'failed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'finished': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'job_args': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'job_cwd': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '1024', 'blank': 'True'}), + 'job_env': ('jsonfield.fields.JSONField', [], {'default': '{}', 'blank': 'True'}), + 'job_explanation': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'launch_type': ('django.db.models.fields.CharField', [], {'default': "'manual'", 'max_length': '20'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'unifiedjob\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'old_pk': ('django.db.models.fields.PositiveIntegerField', [], {'default': 'None', 'null': 'True'}), + 'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_main.unifiedjob_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), + 'result_stdout_file': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'result_stdout_text': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'result_traceback': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'schedule': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['main.Schedule']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), + 'start_args': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'started': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'new'", 'max_length': '20'}), + 'unified_job_template': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'unifiedjob_unified_jobs'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.UnifiedJobTemplate']"}) + }, + 'main.unifiedjobtemplate': { + 'Meta': {'unique_together': "[('polymorphic_ctype', 'name')]", 'object_name': 'UnifiedJobTemplate'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'unifiedjobtemplate\', \'app_label\': \'main\'}(class)s_created+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'current_job': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'unifiedjobtemplate_as_current_job+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.UnifiedJob']"}), + 'description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'has_schedules': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_job': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'unifiedjobtemplate_as_last_job+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.UnifiedJob']"}), + 'last_job_failed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_job_run': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'None'}), + 'modified_by': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': '"{\'class\': \'unifiedjobtemplate\', \'app_label\': \'main\'}(class)s_modified+"', 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['auth.User']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), + 'next_job_run': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + 'next_schedule': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'unifiedjobtemplate_as_next_schedule+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Schedule']"}), + 'old_pk': ('django.db.models.fields.PositiveIntegerField', [], {'default': 'None', 'null': 'True'}), + 'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_main.unifiedjobtemplate_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'ok'", 'max_length': '32'}) + } + } + + complete_apps = ['main'] diff --git a/awx/main/models/credential.py b/awx/main/models/credential.py index 885538cd26..a1deb7053f 100644 --- a/awx/main/models/credential.py +++ b/awx/main/models/credential.py @@ -46,7 +46,7 @@ class Credential(PasswordFieldsModel, CommonModelNameNotUnique): #('runas', _('Runas')), ] - PASSWORD_FIELDS = ('password', 'ssh_key_data', 'ssh_key_unlock', + PASSWORD_FIELDS = ('password', 'security_token', 'ssh_key_data', 'ssh_key_unlock', 'become_password', 'vault_password') class Meta: @@ -101,6 +101,13 @@ class Credential(PasswordFieldsModel, CommonModelNameNotUnique): help_text=_('Password for this credential (or "ASK" to prompt the ' 'user for machine credentials).'), ) + security_token = models.CharField( + blank=True, + default='', + max_length=1024, + verbose_name=_('Security Token'), + help_text=_('Security Token for this credential'), + ) project = models.CharField( blank=True, default='', diff --git a/awx/main/models/inventory.py b/awx/main/models/inventory.py index 51efab2690..58875a9630 100644 --- a/awx/main/models/inventory.py +++ b/awx/main/models/inventory.py @@ -60,7 +60,7 @@ class Inventory(CommonModel): total_hosts = models.PositiveIntegerField( default=0, editable=False, - help_text=_('Total mumber of hosts in this inventory.'), + help_text=_('Total number of hosts in this inventory.'), ) hosts_with_active_failures = models.PositiveIntegerField( default=0, @@ -1281,7 +1281,9 @@ class CustomInventoryScript(CommonModelNameNotUnique): 'Organization', related_name='custom_inventory_scripts', help_text=_('Organization owning this inventory script'), - on_delete=models.CASCADE, + blank=False, + null=True, + on_delete=models.SET_NULL, ) def get_absolute_url(self): diff --git a/awx/main/models/jobs.py b/awx/main/models/jobs.py index ab86d35023..dddd91dfc8 100644 --- a/awx/main/models/jobs.py +++ b/awx/main/models/jobs.py @@ -240,7 +240,7 @@ class JobTemplate(UnifiedJobTemplate, JobOptions): errors.append("'%s' value %s is too small (must be at least %s)" % (survey_element['variable'], data[survey_element['variable']], survey_element['min'])) if 'max' in survey_element and survey_element['max'] not in ["", None] and len(data[survey_element['variable']]) > survey_element['max']: - errors.append("'%s' value %s is too large (must be no more than%s)" % + errors.append("'%s' value %s is too large (must be no more than %s)" % (survey_element['variable'], data[survey_element['variable']], survey_element['max'])) elif survey_element['type'] == 'integer': if survey_element['variable'] in data: @@ -250,7 +250,7 @@ class JobTemplate(UnifiedJobTemplate, JobOptions): (survey_element['variable'], data[survey_element['variable']], survey_element['min'])) if 'max' in survey_element and survey_element['max'] not in ["", None] and survey_element['variable'] in data and \ data[survey_element['variable']] > survey_element['max']: - errors.append("'%s' value %s is too large (must be no more than%s)" % + errors.append("'%s' value %s is too large (must be no more than %s)" % (survey_element['variable'], data[survey_element['variable']], survey_element['max'])) if type(data[survey_element['variable']]) != int: errors.append("Value %s for %s expected to be an integer" % (data[survey_element['variable']], @@ -261,7 +261,7 @@ class JobTemplate(UnifiedJobTemplate, JobOptions): errors.append("'%s' value %s is too small (must be at least %s)" % (survey_element['variable'], data[survey_element['variable']], survey_element['min'])) if 'max' in survey_element and survey_element['max'] not in ["", None] and data[survey_element['variable']] > survey_element['max']: - errors.append("'%s' value %s is too large (must be no more than%s)" % + errors.append("'%s' value %s is too large (must be no more than %s)" % (survey_element['variable'], data[survey_element['variable']], survey_element['max'])) if type(data[survey_element['variable']]) not in (float, int): errors.append("Value %s for %s expected to be a numeric type" % (data[survey_element['variable']], @@ -283,6 +283,39 @@ class JobTemplate(UnifiedJobTemplate, JobOptions): survey_element['choices'])) return errors + def _update_unified_job_kwargs(self, **kwargs): + if 'launch_type' in kwargs and kwargs['launch_type'] == 'relaunch': + return kwargs + + # Job Template extra_vars + extra_vars = self.extra_vars_dict + + # Overwrite with job template extra vars with survey default vars + if self.survey_enabled and 'spec' in self.survey_spec: + for survey_element in self.survey_spec.get("spec", []): + if survey_element['default']: + extra_vars[survey_element['variable']] = survey_element['default'] + + # transform to dict + if 'extra_vars' in kwargs: + kwargs_extra_vars = kwargs['extra_vars'] + if not isinstance(kwargs_extra_vars, dict): + try: + kwargs_extra_vars = json.loads(kwargs_extra_vars) + except Exception: + try: + yaml.safe_load(kwargs_extra_vars) + except: + kwargs_extra_vars = {} + else: + kwargs_extra_vars = {} + + # Overwrite job template extra vars with explicit job extra vars + # and add on job extra vars + extra_vars.update(kwargs_extra_vars) + kwargs['extra_vars'] = json.dumps(extra_vars) + return kwargs + @property def cache_timeout_blocked(self): if Job.objects.filter(job_template=self, status__in=['pending', 'waiting', 'running']).count() > getattr(settings, 'SCHEDULE_MAX_JOBS', 10): @@ -826,7 +859,7 @@ class JobEvent(CreatedModifiedModel): try: failures_dict = self.event_data.get('failures', {}) dark_dict = self.event_data.get('dark', {}) - self.failed = bool(sum(failures_dict.values()) + + self.failed = bool(sum(failures_dict.values()) + sum(dark_dict.values())) if 'failed' not in update_fields: update_fields.append('failed') @@ -1052,4 +1085,3 @@ class SystemJob(UnifiedJob, SystemJobOptions): @property def task_impact(self): return 150 - diff --git a/awx/main/models/organization.py b/awx/main/models/organization.py index 3e78744ab6..f20f69f70b 100644 --- a/awx/main/models/organization.py +++ b/awx/main/models/organization.py @@ -12,7 +12,8 @@ from django.conf import settings from django.db import models from django.core.urlresolvers import reverse from django.contrib.auth.models import User -from django.utils.timezone import now +from django.utils.timezone import now as tz_now +from django.utils.translation import ugettext_lazy as _ # AWX from awx.main.fields import AutoOneToOneField @@ -52,6 +53,12 @@ class Organization(CommonModel): def __unicode__(self): return self.name + def mark_inactive(self, save=True): + for script in self.custom_inventory_scripts.all(): + script.organization = None + script.save() + super(Organization, self).mark_inactive(save=save) + class Team(CommonModelNameNotUnique): ''' @@ -128,7 +135,8 @@ class Permission(CommonModelNameNotUnique): # the project parameter is not used when dealing with READ, WRITE, or ADMIN permissions. permission_type = models.CharField(max_length=64, choices=PERMISSION_TYPE_CHOICES) - run_ad_hoc_commands = models.BooleanField(default=False) + run_ad_hoc_commands = models.BooleanField(default=False, + help_text=_('Execute Commands on the Inventory')) def __unicode__(self): return unicode("Permission(name=%s,ON(user=%s,team=%s),FOR(project=%s,inventory=%s,type=%s%s))" % ( @@ -164,13 +172,29 @@ class Profile(CreatedModifiedModel): default='', ) +""" +Since expiration and session expiration is event driven a token could be +invalidated for both reasons. Further, we only support a single reason for a +session token being invalid. For this case, mark the token as expired. +Note: Again, because the value of reason is event based. The reason may not be +set (i.e. may equal '') even though a session is expired or a limit is reached. +""" class AuthToken(BaseModel): ''' Custom authentication tokens per user with expiration and request-specific data. ''' + REASON_CHOICES = [ + ('', _('Token not invalidated')), + ('timeout_reached', _('Token is expired')), + ('limit_reached', _('Maximum per-user sessions reached')), + # invalid_token is not a used data-base value, but is returned by the + # api when a token is not found + ('invalid_token', _('Invalid token')), + ] + class Meta: app_label = 'main' @@ -179,8 +203,21 @@ class AuthToken(BaseModel): on_delete=models.CASCADE) created = models.DateTimeField(auto_now_add=True) modified = models.DateTimeField(auto_now=True) - expires = models.DateTimeField(default=now) + expires = models.DateTimeField(default=tz_now) request_hash = models.CharField(max_length=40, blank=True, default='') + reason = models.CharField( + max_length=1024, + blank=True, + default='', + help_text=_('Reason the auth token was invalidated.') + ) + + @staticmethod + def reason_long(reason): + for x in AuthToken.REASON_CHOICES: + if x[0] == reason: + return unicode(x[1]) + return None @classmethod def get_request_hash(cls, request): @@ -201,25 +238,65 @@ class AuthToken(BaseModel): self.key = self.generate_key() return super(AuthToken, self).save(*args, **kwargs) - def refresh(self, save=True): - if not self.pk or not self.expired: - self.expires = now() + datetime.timedelta(seconds=settings.AUTH_TOKEN_EXPIRATION) + def refresh(self, now=None, save=True): + if not now: + now = tz_now() + if not self.pk or not self.is_expired(now=now): + self.expires = now + datetime.timedelta(seconds=settings.AUTH_TOKEN_EXPIRATION) if save: self.save() - def invalidate(self, save=True): - if not self.expired: - self.expires = now() - datetime.timedelta(seconds=1) - if save: - self.save() + def invalidate(self, reason='timeout_reached', save=True): + if not AuthToken.reason_long(reason): + raise ValueError('Invalid reason specified') + self.reason = reason + if save: + self.save() + return reason + + @staticmethod + def get_tokens_over_limit(user, now=None): + if now is None: + now = tz_now() + invalid_tokens = AuthToken.objects.none() + if settings.AUTH_TOKEN_PER_USER != -1: + invalid_tokens = AuthToken.objects.filter( + user=user, + expires__gt=now, + reason='', + ).order_by('-created')[settings.AUTH_TOKEN_PER_USER:] + return invalid_tokens def generate_key(self): unique = uuid.uuid4() return hmac.new(unique.bytes, digestmod=hashlib.sha1).hexdigest() + def is_expired(self, now=None): + if not now: + now = tz_now() + return bool(self.expires < now) + @property - def expired(self): - return bool(self.expires < now()) + def invalidated(self): + return bool(self.reason != '') + + """ + Token is valid if it's in the set of unexpired tokens. + The unexpired token set is: + * tokens not expired + * limited to number of tokens per-user + * sorted by created on date + """ + def in_valid_tokens(self, now=None): + if not now: + now = tz_now() + valid_n_tokens_qs = self.user.auth_tokens.filter( + expires__gt=now, + reason='', + ).order_by('-created')[0:settings.AUTH_TOKEN_PER_USER] + valid_n_tokens = valid_n_tokens_qs.values_list('key', flat=True) + + return bool(self.key in valid_n_tokens) def __unicode__(self): return self.key @@ -231,7 +308,7 @@ def user_mark_inactive(user, save=True): if user.is_active: # Set timestamp to datetime.isoformat() but without the time zone # offset to stay withint the 30 character username limit. - dtnow = now() + dtnow = tz_now() deleted_ts = dtnow.strftime('%Y-%m-%dT%H:%M:%S.%f') user.username = '_d_%s' % deleted_ts user.is_active = False diff --git a/awx/main/models/unified_jobs.py b/awx/main/models/unified_jobs.py index ade655c47f..2a7875d321 100644 --- a/awx/main/models/unified_jobs.py +++ b/awx/main/models/unified_jobs.py @@ -343,6 +343,7 @@ class UnifiedJob(PolymorphicModel, PasswordFieldsModel, CommonModelNameNotUnique LAUNCH_TYPE_CHOICES = [ ('manual', _('Manual')), # Job was started manually by a user. + ('relaunch', _('Relaunch')), # Job was started via relaunch. ('callback', _('Callback')), # Job was started via host callback. ('scheduled', _('Scheduled')), # Job was started from a schedule. ('dependency', _('Dependency')), # Job was started as a dependency of another job. diff --git a/awx/main/tasks.py b/awx/main/tasks.py index 16c4012e0c..93303f511c 100644 --- a/awx/main/tasks.py +++ b/awx/main/tasks.py @@ -162,6 +162,7 @@ def handle_work_error(self, task_id, subtasks=None): print('Executing error task id %s, subtasks: %s' % (str(self.request.id), str(subtasks))) first_task = None + first_task_id = None first_task_type = '' first_task_name = '' if subtasks is not None: @@ -169,10 +170,10 @@ def handle_work_error(self, task_id, subtasks=None): instance_name = '' if each_task['type'] == 'project_update': instance = ProjectUpdate.objects.get(id=each_task['id']) - instance_name = instance.project.name + instance_name = instance.name elif each_task['type'] == 'inventory_update': instance = InventoryUpdate.objects.get(id=each_task['id']) - instance_name = instance.inventory_source.inventory.name + instance_name = instance.name elif each_task['type'] == 'job': instance = Job.objects.get(id=each_task['id']) instance_name = instance.job_template.name @@ -184,13 +185,14 @@ def handle_work_error(self, task_id, subtasks=None): break if first_task is None: first_task = instance + first_task_id = instance.id first_task_type = each_task['type'] first_task_name = instance_name if instance.celery_task_id != task_id: instance.status = 'failed' instance.failed = True - instance.job_explanation = "Previous Task Failed: %s for %s with celery task id: %s" % \ - (first_task_type, first_task_name, task_id) + instance.job_explanation = 'Previous Task Failed: {"job_type": "%s", "job_name": "%s", "job_id": "%s"}' % \ + (first_task_type, first_task_name, first_task_id) instance.save() instance.socketio_emit_status("failed") @@ -345,6 +347,8 @@ class BaseTask(Task): if local_site_packages not in python_paths: python_paths.insert(0, local_site_packages) env['PYTHONPATH'] = os.pathsep.join(python_paths) + if self.should_use_proot: + env['PROOT_TMP_DIR'] = settings.AWX_PROOT_BASE_PATH return env def build_safe_env(self, instance, **kwargs): @@ -423,6 +427,15 @@ class BaseTask(Task): ''' logfile = stdout_handle logfile_pos = logfile.tell() + if hasattr(instance, "extra_vars_dict") and "PEXPECT_SLEEP" in instance.extra_vars_dict: + pexpect_sleep = int(instance.extra_vars_dict['PEXPECT_SLEEP']) + elif 'PEXPECT_SLEEP' in os.environ: + pexpect_sleep = int(os.environ['PEXPECT_SLEEP']) + else: + pexpect_sleep = None + if pexpect_sleep is not None: + logger.info("Suspending Job Execution for QA Work") + time.sleep(pexpect_sleep) child = pexpect.spawnu(args[0], args[1:], cwd=cwd, env=env) child.logfile_read = logfile canceled = False @@ -601,6 +614,21 @@ class RunJob(BaseTask): if credential.ssh_key_data not in (None, ''): private_data[cred_name] = decrypt_field(credential, 'ssh_key_data') or '' + if job.cloud_credential and job.cloud_credential.kind == 'openstack': + credential = job.cloud_credential + openstack_auth = dict(auth_url=credential.host, + username=credential.username, + password=decrypt_field(credential, "password"), + project_name=credential.project) + openstack_data = { + 'clouds': { + 'devstack': { + 'auth': openstack_auth, + }, + }, + } + private_data['cloud_credential'] = yaml.safe_dump(openstack_data, default_flow_style=False, allow_unicode=True) + return private_data def build_passwords(self, job, **kwargs): @@ -625,12 +653,17 @@ class RunJob(BaseTask): Build environment dictionary for ansible-playbook. ''' plugin_dir = self.get_path_to('..', 'plugins', 'callback') + plugin_dirs = [plugin_dir] + if hasattr(settings, 'AWX_ANSIBLE_CALLBACK_PLUGINS') and \ + settings.AWX_ANSIBLE_CALLBACK_PLUGINS: + plugin_dirs.append(settings.AWX_ANSIBLE_CALLBACK_PLUGINS) + plugin_path = ':'.join(plugin_dirs) env = super(RunJob, self).build_env(job, **kwargs) # Set environment variables needed for inventory and job event # callbacks to work. env['JOB_ID'] = str(job.pk) env['INVENTORY_ID'] = str(job.inventory.pk) - env['ANSIBLE_CALLBACK_PLUGINS'] = plugin_dir + env['ANSIBLE_CALLBACK_PLUGINS'] = plugin_path env['REST_API_URL'] = settings.INTERNAL_API_URL env['REST_API_TOKEN'] = job.task_auth_token or '' env['CALLBACK_CONSUMER_PORT'] = str(settings.CALLBACK_CONSUMER_PORT) @@ -654,6 +687,8 @@ class RunJob(BaseTask): if cloud_cred and cloud_cred.kind == 'aws': env['AWS_ACCESS_KEY'] = cloud_cred.username env['AWS_SECRET_KEY'] = decrypt_field(cloud_cred, 'password') + if len(cloud_cred.security_token) > 0: + env['AWS_SECURITY_TOKEN'] = decrypt_field(cloud_cred, 'security_token') # FIXME: Add EC2_URL, maybe EC2_REGION! elif cloud_cred and cloud_cred.kind == 'rax': env['RAX_USERNAME'] = cloud_cred.username @@ -669,6 +704,8 @@ class RunJob(BaseTask): env['VMWARE_USER'] = cloud_cred.username env['VMWARE_PASSWORD'] = decrypt_field(cloud_cred, 'password') env['VMWARE_HOST'] = cloud_cred.host + elif cloud_cred and cloud_cred.kind == 'openstack': + env['OS_CLIENT_CONFIG_FILE'] = kwargs.get('private_data_files', {}).get('cloud_credential', '') # Set environment variables related to scan jobs if job.job_type == PERM_INVENTORY_SCAN: @@ -1116,7 +1153,7 @@ class RunInventoryUpdate(BaseTask): if credential: for subkey in ('username', 'host', 'project'): passwords['source_%s' % subkey] = getattr(credential, subkey) - for passkey in ('password', 'ssh_key_data'): + for passkey in ('password', 'ssh_key_data', 'security_token'): k = 'source_%s' % passkey passwords[k] = decrypt_field(credential, passkey) return passwords @@ -1149,6 +1186,8 @@ class RunInventoryUpdate(BaseTask): if passwords.get('source_username', '') and passwords.get('source_password', ''): env['AWS_ACCESS_KEY_ID'] = passwords['source_username'] env['AWS_SECRET_ACCESS_KEY'] = passwords['source_password'] + if len(passwords['source_security_token']) > 0: + env['AWS_SECURITY_TOKEN'] = passwords['source_security_token'] env['EC2_INI_PATH'] = cloud_credential elif inventory_update.source == 'rax': env['RAX_CREDS_FILE'] = cloud_credential @@ -1169,7 +1208,7 @@ class RunInventoryUpdate(BaseTask): env['GCE_PROJECT'] = passwords.get('source_project', '') env['GCE_PEM_FILE_PATH'] = cloud_credential elif inventory_update.source == 'openstack': - env['OPENSTACK_CONFIG_FILE'] = cloud_credential + env['OS_CLIENT_CONFIG_FILE'] = cloud_credential elif inventory_update.source == 'file': # FIXME: Parse source_env to dict, update env. pass @@ -1188,7 +1227,7 @@ class RunInventoryUpdate(BaseTask): inventory = inventory_source.group.inventory # Piece together the initial command to run via. the shell. - args = ['awx-manage', 'inventory_import'] + args = ['tower-manage', 'inventory_import'] args.extend(['--inventory-id', str(inventory.pk)]) # Add appropriate arguments for overwrite if the inventory_update @@ -1450,7 +1489,7 @@ class RunSystemJob(BaseTask): model = SystemJob def build_args(self, system_job, **kwargs): - args = ['awx-manage', system_job.job_type] + args = ['tower-manage', system_job.job_type] try: json_vars = json.loads(system_job.extra_vars) if 'days' in json_vars and system_job.job_type != 'cleanup_facts': diff --git a/awx/main/tests/__init__.py b/awx/main/tests/__init__.py index d2556c3a35..c3d0fd60a0 100644 --- a/awx/main/tests/__init__.py +++ b/awx/main/tests/__init__.py @@ -1,7 +1,7 @@ # Copyright (c) 2015 Ansible, Inc. # All Rights Reserved. -from awx.main.tests.organizations import OrganizationsTest # noqa +from awx.main.tests.organizations import * # noqa from awx.main.tests.users import * # noqa from awx.main.tests.inventory import * # noqa from awx.main.tests.projects import ProjectsTest, ProjectUpdatesTest # noqa diff --git a/awx/main/tests/base.py b/awx/main/tests/base.py index 90209bffb6..bdea0523a8 100644 --- a/awx/main/tests/base.py +++ b/awx/main/tests/base.py @@ -28,11 +28,11 @@ from django.test.utils import override_settings # AWX from awx.main.models import * # noqa -from awx.main.backend import LDAPSettings from awx.main.management.commands.run_callback_receiver import CallbackReceiver from awx.main.management.commands.run_task_system import run_taskmanager from awx.main.utils import get_ansible_version from awx.main.task_engine import TaskEngager as LicenseWriter +from awx.sso.backends import LDAPSettings TEST_PLAYBOOK = '''- hosts: mygroup gather_facts: false @@ -56,8 +56,12 @@ class QueueTestMixin(object): def start_redis(self): if not getattr(self, 'redis_process', None): - self.redis_process = Popen('redis-server --port 16379 > /dev/null', - shell=True, executable='/bin/bash') + # Centos 6.5 redis is runnable by non-root user but is not in a normal users path by default + env = dict(os.environ) + env['PATH'] = '%s:/usr/sbin/' % env['PATH'] + self.redis_process = Popen('echo "port 16379" | redis-server - > /dev/null', + shell=True, executable='/bin/bash', + env=env) def stop_redis(self): if getattr(self, 'redis_process', None): @@ -188,6 +192,20 @@ class BaseTestMixin(QueueTestMixin, MockCommonlySlowTestMixin): self._temp_paths.append(license_path) os.environ['AWX_LICENSE_FILE'] = license_path + def create_basic_license_file(self, instance_count=100, license_date=int(time.time() + 3600)): + writer = LicenseWriter( + company_name='AWX', + contact_name='AWX Admin', + contact_email='awx@example.com', + license_date=license_date, + instance_count=instance_count, + license_type='basic') + handle, license_path = tempfile.mkstemp(suffix='.json') + os.close(handle) + writer.write_file(license_path) + self._temp_paths.append(license_path) + os.environ['AWX_LICENSE_FILE'] = license_path + def create_expired_license_file(self, instance_count=1000, grace_period=False): license_date = time.time() - 1 if not grace_period: @@ -456,8 +474,8 @@ class BaseTestMixin(QueueTestMixin, MockCommonlySlowTestMixin): assert response.status_code == expect, "expected status %s, got %s for url=%s as auth=%s: %s" % (expect, response.status_code, url, auth, response.content) if method_name == 'head': self.assertFalse(response.content) - #if return_response_object: - # return response + if return_response_object: + return response if response.status_code not in [204, 405] and method_name != 'head' and response.content: # no JSON responses in these at least for now, 409 should probably return some (FIXME) if response['Content-Type'].startswith('application/json'): @@ -700,7 +718,8 @@ class BaseLiveServerTest(BaseTestMixin, django.test.LiveServerTestCase): @override_settings(CELERY_ALWAYS_EAGER=True, CELERY_EAGER_PROPAGATES_EXCEPTIONS=True, - ANSIBLE_TRANSPORT='local') + ANSIBLE_TRANSPORT='local', + DEBUG=True) class BaseJobExecutionTest(QueueStartStopTestMixin, BaseLiveServerTest): ''' Base class for celery task tests. diff --git a/awx/main/tests/commands/__init__.py b/awx/main/tests/commands/__init__.py index 9c099516c1..dc89a6f8b6 100644 --- a/awx/main/tests/commands/__init__.py +++ b/awx/main/tests/commands/__init__.py @@ -7,3 +7,6 @@ from .run_fact_cache_receiver import * # noqa from .commands_monolithic import * # noqa from .cleanup_facts import * # noqa from .age_deleted import * # noqa +from .remove_instance import * # noqa +from .run_socketio_service import * # noqa + diff --git a/awx/main/tests/commands/commands_monolithic.py b/awx/main/tests/commands/commands_monolithic.py index 3335c2825f..d13bbe05f2 100644 --- a/awx/main/tests/commands/commands_monolithic.py +++ b/awx/main/tests/commands/commands_monolithic.py @@ -11,7 +11,7 @@ import sys import tempfile import time import urlparse -import unittest +import unittest2 as unittest # Django import django @@ -26,9 +26,6 @@ from django.test.utils import override_settings from awx.main.models import * # noqa from awx.main.tests.base import BaseTest, BaseLiveServerTest -if not hasattr(unittest, 'skipIf'): - import unittest2 as unittest - __all__ = ['CreateDefaultOrgTest', 'DumpDataTest', 'CleanupDeletedTest', 'CleanupJobsTest', 'CleanupActivityStreamTest', 'InventoryImportTest'] @@ -831,7 +828,7 @@ class InventoryImportTest(BaseCommandMixin, BaseLiveServerTest): host_names = set(new_inv.hosts.filter(active=True).values_list('name', flat=True)) self.assertEqual(expected_host_names, host_names) expected_inv_vars = {'vara': 'A', 'varc': 'C'} - if overwrite or overwrite_vars: + if overwrite_vars: expected_inv_vars.pop('varc') self.assertEqual(new_inv.variables_dict, expected_inv_vars) for host in new_inv.hosts.filter(active=True): @@ -849,7 +846,7 @@ class InventoryImportTest(BaseCommandMixin, BaseLiveServerTest): for group in new_inv.groups.filter(active=True): if group.name == 'servers': expected_vars = {'varb': 'B', 'vard': 'D'} - if overwrite or overwrite_vars: + if overwrite_vars: expected_vars.pop('vard') self.assertEqual(group.variables_dict, expected_vars) children = set(group.children.filter(active=True).values_list('name', flat=True)) diff --git a/awx/main/tests/commands/remove_instance.py b/awx/main/tests/commands/remove_instance.py new file mode 100644 index 0000000000..d93285ea7e --- /dev/null +++ b/awx/main/tests/commands/remove_instance.py @@ -0,0 +1,39 @@ +# Copyright (c) 2015 Ansible, Inc. +# All Rights Reserved + +# Python +import uuid + +# AWX +from awx.main.tests.base import BaseTest +from awx.main.tests.commands.base import BaseCommandMixin +from awx.main.models import * # noqa + +__all__ = ['RemoveInstanceCommandFunctionalTest'] + +class RemoveInstanceCommandFunctionalTest(BaseCommandMixin, BaseTest): + uuids = [] + instances = [] + + def setup_instances(self): + self.uuids = [uuid.uuid4().hex for x in range(0, 3)] + self.instances.append(Instance(uuid=settings.SYSTEM_UUID, primary=True, hostname='127.0.0.1')) + self.instances.append(Instance(uuid=self.uuids[0], primary=False, hostname='127.0.0.2')) + self.instances.append(Instance(uuid=self.uuids[1], primary=False, hostname='127.0.0.3')) + self.instances.append(Instance(uuid=self.uuids[2], primary=False, hostname='127.0.0.4')) + for x in self.instances: + x.save() + + def setUp(self): + super(RemoveInstanceCommandFunctionalTest, self).setUp() + self.create_test_license_file() + self.setup_instances() + self.setup_users() + + def test_default(self): + self.assertEqual(Instance.objects.filter(hostname="127.0.0.2").count(), 1) + result, stdout, stderr = self.run_command('remove_instance', hostname='127.0.0.2') + self.assertIsNone(result) + self.assertEqual(stdout, 'Successfully removed instance (uuid="%s",hostname="127.0.0.2",role="secondary").\n' % (self.uuids[0])) + self.assertEqual(Instance.objects.filter(hostname="127.0.0.2").count(), 0) + diff --git a/awx/main/tests/commands/run_fact_cache_receiver.py b/awx/main/tests/commands/run_fact_cache_receiver.py index c2622e057a..0dac618758 100644 --- a/awx/main/tests/commands/run_fact_cache_receiver.py +++ b/awx/main/tests/commands/run_fact_cache_receiver.py @@ -5,7 +5,7 @@ import time from datetime import datetime import mock -import unittest +import unittest2 as unittest from copy import deepcopy from mock import MagicMock diff --git a/awx/main/tests/commands/run_socketio_service.py b/awx/main/tests/commands/run_socketio_service.py new file mode 100644 index 0000000000..be882d6b20 --- /dev/null +++ b/awx/main/tests/commands/run_socketio_service.py @@ -0,0 +1,116 @@ +# Copyright (c) 2015 Ansible, Inc. +# All Rights Reserved + +# Python +from mock import MagicMock, Mock + +# Django +from django.test import SimpleTestCase + +# AWX +from awx.fact.models.fact import * # noqa +from awx.main.management.commands.run_socketio_service import SocketSessionManager, SocketSession, SocketController + +__all__ = ['SocketSessionManagerUnitTest', 'SocketControllerUnitTest',] + +class WeakRefable(): + pass + +class SocketSessionManagerUnitTest(SimpleTestCase): + + def setUp(self): + self.session_manager = SocketSessionManager() + super(SocketSessionManagerUnitTest, self).setUp() + + def create_sessions(self, count, token_key=None): + self.sessions = [] + self.count = count + for i in range(0, count): + self.sessions.append(SocketSession(i, token_key or i, WeakRefable())) + self.session_manager.add_session(self.sessions[i]) + + def test_multiple_session_diff_token(self): + self.create_sessions(10) + + for s in self.sessions: + self.assertIn(s.token_key, self.session_manager.socket_session_token_key_map) + self.assertEqual(s, self.session_manager.socket_session_token_key_map[s.token_key][s.session_id]) + + + def test_multiple_session_same_token(self): + self.create_sessions(10, token_key='foo') + + sessions_dict = self.session_manager.lookup("foo") + self.assertEqual(len(sessions_dict), 10) + for s in self.sessions: + self.assertIn(s.session_id, sessions_dict) + self.assertEqual(s, sessions_dict[s.session_id]) + + def test_prune_sessions_max(self): + self.create_sessions(self.session_manager.SESSIONS_MAX + 10) + + self.assertEqual(len(self.session_manager.socket_sessions), self.session_manager.SESSIONS_MAX) + + +class SocketControllerUnitTest(SimpleTestCase): + + def setUp(self): + self.socket_controller = SocketController(SocketSessionManager()) + server = Mock() + self.socket_controller.set_server(server) + super(SocketControllerUnitTest, self).setUp() + + def create_clients(self, count, token_key=None): + self.sessions = [] + self.sockets =[] + self.count = count + self.sockets_dict = {} + for i in range(0, count): + if isinstance(token_key, list): + token_key_actual = token_key[i] + else: + token_key_actual = token_key or i + socket = MagicMock(session=dict()) + socket_session = SocketSession(i, token_key_actual, socket) + self.sockets.append(socket) + self.sessions.append(socket_session) + self.sockets_dict[i] = socket + self.socket_controller.add_session(socket_session) + + socket.session['socket_session'] = socket_session + socket.send_packet = Mock() + self.socket_controller.server.sockets = self.sockets_dict + + def test_broadcast_packet(self): + self.create_clients(10) + packet = { + "hello": "world" + } + self.socket_controller.broadcast_packet(packet) + for s in self.sockets: + s.send_packet.assert_called_with(packet) + + def test_send_packet(self): + self.create_clients(5, token_key=[0, 1, 2, 3, 4]) + packet = { + "hello": "world" + } + self.socket_controller.send_packet(packet, 2) + self.assertEqual(0, len(self.sockets[0].send_packet.mock_calls)) + self.assertEqual(0, len(self.sockets[1].send_packet.mock_calls)) + self.sockets[2].send_packet.assert_called_once_with(packet) + self.assertEqual(0, len(self.sockets[3].send_packet.mock_calls)) + self.assertEqual(0, len(self.sockets[4].send_packet.mock_calls)) + + def test_send_packet_multiple_sessions_one_token(self): + self.create_clients(5, token_key=[0, 1, 1, 1, 2]) + packet = { + "hello": "world" + } + self.socket_controller.send_packet(packet, 1) + self.assertEqual(0, len(self.sockets[0].send_packet.mock_calls)) + self.sockets[1].send_packet.assert_called_once_with(packet) + self.sockets[2].send_packet.assert_called_once_with(packet) + self.sockets[3].send_packet.assert_called_once_with(packet) + self.assertEqual(0, len(self.sockets[4].send_packet.mock_calls)) + diff --git a/awx/main/tests/fact/fact_api.py b/awx/main/tests/fact/fact_api.py index 7c54868be2..157cec3757 100644 --- a/awx/main/tests/fact/fact_api.py +++ b/awx/main/tests/fact/fact_api.py @@ -2,7 +2,7 @@ # All Rights Reserved # Python -import unittest +import unittest2 as unittest # Django from django.core.urlresolvers import reverse diff --git a/awx/main/tests/inventory.py b/awx/main/tests/inventory.py index b38ca13d82..de7149df3e 100644 --- a/awx/main/tests/inventory.py +++ b/awx/main/tests/inventory.py @@ -1665,6 +1665,54 @@ class InventoryUpdatesTest(BaseTransactionTest): inventory_source.save() self.check_inventory_source(inventory_source, initial=False) + + def test_update_from_ec2_sts_iam(self): + source_username = getattr(settings, 'TEST_AWS_ACCESS_KEY_ID', '') + source_password = getattr(settings, 'TEST_AWS_SECRET_ACCESS_KEY', '') + source_regions = getattr(settings, 'TEST_AWS_REGIONS', 'all') + source_token = getattr(settings, 'TEST_AWS_SECURITY_TOKEN', '') + if not all([source_username, source_password, source_token]): + self.skipTest('no test ec2 sts credentials defined!') + self.create_test_license_file() + credential = Credential.objects.create(kind='aws', + user=self.super_django_user, + username=source_username, + password=source_password, + security_token=source_token) + # Set parent group name to one that might be created by the sync. + group = self.group + group.name = 'ec2' + group.save() + self.group = group + cache_path = tempfile.mkdtemp(prefix='awx_ec2_') + self._temp_paths.append(cache_path) + inventory_source = self.update_inventory_source(self.group, + source='ec2', credential=credential, source_regions=source_regions, + source_vars='---\n\nnested_groups: false\ncache_path: %s\n' % cache_path) + self.check_inventory_source(inventory_source) + + def test_update_from_ec2_sts_iam_bad_token(self): + source_username = getattr(settings, 'TEST_AWS_ACCESS_KEY_ID', '') + source_password = getattr(settings, 'TEST_AWS_SECRET_ACCESS_KEY', '') + source_regions = getattr(settings, 'TEST_AWS_REGIONS', 'all') + self.create_test_license_file() + credential = Credential.objects.create(kind='aws', + user=self.super_django_user, + username=source_username, + password=source_password, + security_token="BADTOKEN") + # Set parent group name to one that might be created by the sync. + group = self.group + group.name = 'ec2' + group.save() + self.group = group + cache_path = tempfile.mkdtemp(prefix='awx_ec2_') + self._temp_paths.append(cache_path) + inventory_source = self.update_inventory_source(self.group, + source='ec2', credential=credential, source_regions=source_regions, + source_vars='---\n\nnested_groups: false\ncache_path: %s\n' % cache_path) + self.check_inventory_update(inventory_source, should_fail=True) + def test_update_from_ec2_without_credential(self): self.create_test_license_file() group = self.group diff --git a/awx/main/tests/jobs/__init__.py b/awx/main/tests/jobs/__init__.py index bf5eedafe7..092826ccf0 100644 --- a/awx/main/tests/jobs/__init__.py +++ b/awx/main/tests/jobs/__init__.py @@ -5,6 +5,7 @@ from __future__ import absolute_import from .jobs_monolithic import * # noqa from .job_launch import * # noqa +from .job_relaunch import * # noqa from .survey_password import * # noqa from .start_cancel import * # noqa from .base import * # noqa diff --git a/awx/main/tests/jobs/job_relaunch.py b/awx/main/tests/jobs/job_relaunch.py new file mode 100644 index 0000000000..04ae95ba75 --- /dev/null +++ b/awx/main/tests/jobs/job_relaunch.py @@ -0,0 +1,75 @@ +# Copyright (c) 2015 Ansible, Inc. +# All Rights Reserved + +# Python +from __future__ import absolute_import +import json + +# Django +from django.core.urlresolvers import reverse + +# AWX +from awx.main.models import * # noqa +from awx.main.tests.base import BaseLiveServerTest +from .base import BaseJobTestMixin + +__all__ = ['JobRelaunchTest',] + +class JobRelaunchTest(BaseJobTestMixin, BaseLiveServerTest): + + def test_job_relaunch(self): + job = self.make_job(self.jt_ops_east_run, self.user_sue, 'success') + url = reverse('api:job_relaunch', args=(job.pk,)) + with self.current_user(self.user_sue): + response = self.post(url, {}, expect=201) + j = Job.objects.get(pk=response['job']) + self.assertTrue(j.status == 'successful') + self.assertEqual(j.launch_type, 'relaunch') + # Test with a job that prompts for SSH and sudo passwords. + job = self.make_job(self.jt_sup_run, self.user_sue, 'success') + url = reverse('api:job_start', args=(job.pk,)) + with self.current_user(self.user_sue): + response = self.get(url) + self.assertEqual(set(response['passwords_needed_to_start']), + set(['ssh_password', 'become_password'])) + data = dict() + response = self.post(url, data, expect=400) + data['ssh_password'] = 'sshpass' + response = self.post(url, data, expect=400) + data2 = dict(become_password='sudopass') + response = self.post(url, data2, expect=400) + data.update(data2) + response = self.post(url, data, expect=202) + job = Job.objects.get(pk=job.pk) + + # Create jt with no extra_vars + # Launch j1 with runtime extra_vars + # Assign extra_vars to jt backing job + # Relaunch j1 + # j2 should not contain jt extra_vars + def test_relaunch_job_does_not_inherit_jt_extra_vars(self): + jt_extra_vars = { + "hello": "world" + } + j_extra_vars = { + "goodbye": "cruel universe" + } + job = self.make_job(self.jt_ops_east_run, self.user_sue, 'success', extra_vars=j_extra_vars) + url = reverse('api:job_relaunch', args=(job.pk,)) + with self.current_user(self.user_sue): + response = self.post(url, {}, expect=201) + j = Job.objects.get(pk=response['job']) + self.assertTrue(j.status == 'successful') + + self.jt_ops_east_run.extra_vars = jt_extra_vars + self.jt_ops_east_run.save() + + response = self.post(url, {}, expect=201) + j = Job.objects.get(pk=response['job']) + self.assertTrue(j.status == 'successful') + + resp_extra_vars = json.loads(response['extra_vars']) + self.assertNotIn("hello", resp_extra_vars) + self.assertEqual(resp_extra_vars, j_extra_vars) + + diff --git a/awx/main/tests/jobs/start_cancel.py b/awx/main/tests/jobs/start_cancel.py index 8aae66b402..54ff2255d9 100644 --- a/awx/main/tests/jobs/start_cancel.py +++ b/awx/main/tests/jobs/start_cancel.py @@ -115,30 +115,6 @@ class JobStartCancelTest(BaseJobTestMixin, BaseLiveServerTest): # FIXME: Test with other users, test when passwords are required. - def test_job_relaunch(self): - job = self.make_job(self.jt_ops_east_run, self.user_sue, 'success') - url = reverse('api:job_relaunch', args=(job.pk,)) - with self.current_user(self.user_sue): - response = self.post(url, {}, expect=201) - j = Job.objects.get(pk=response['job']) - self.assertTrue(j.status == 'successful') - # Test with a job that prompts for SSH and sudo passwords. - job = self.make_job(self.jt_sup_run, self.user_sue, 'success') - url = reverse('api:job_start', args=(job.pk,)) - with self.current_user(self.user_sue): - response = self.get(url) - self.assertEqual(set(response['passwords_needed_to_start']), - set(['ssh_password', 'become_password'])) - data = dict() - response = self.post(url, data, expect=400) - data['ssh_password'] = 'sshpass' - response = self.post(url, data, expect=400) - data2 = dict(become_password='sudopass') - response = self.post(url, data2, expect=400) - data.update(data2) - response = self.post(url, data, expect=202) - job = Job.objects.get(pk=job.pk) - def test_job_cancel(self): #job = self.job_ops_east_run job = self.make_job(self.jt_ops_east_run, self.user_sue, 'new') diff --git a/awx/main/tests/organizations.py b/awx/main/tests/organizations.py index cb238a4f79..8378ab12cb 100644 --- a/awx/main/tests/organizations.py +++ b/awx/main/tests/organizations.py @@ -1,10 +1,56 @@ # Copyright (c) 2015 Ansible, Inc. # All Rights Reserved. +# Python +from datetime import timedelta + +# Django from django.core.urlresolvers import reverse +from django.test.utils import override_settings +from django.contrib.auth.models import User +from django.utils.timezone import now as tz_now + +# AWX from awx.main.models import * # noqa from awx.main.tests.base import BaseTest +__all__ = ['AuthTokenLimitUnitTest', 'OrganizationsTest'] + +class AuthTokenLimitUnitTest(BaseTest): + + def setUp(self): + self.now = tz_now() + # Times are relative to now + # (key, created on in seconds , expiration in seconds) + self.test_data = [ + # a is implicitly expired + ("a", -1000, -10), + # b's are invalid due to session limit of 3 + ("b", -100, 60), + ("bb", -100, 60), + ("c", -90, 70), + ("d", -80, 80), + ("e", -70, 90), + ] + self.user = User.objects.create_superuser('admin', 'foo@bar.com', 'password') + for key, t_create, t_expire in self.test_data: + AuthToken.objects.create( + user=self.user, + key=key, + request_hash='this_is_a_hash', + created=self.now + timedelta(seconds=t_create), + expires=self.now + timedelta(seconds=t_expire), + ) + super(AuthTokenLimitUnitTest, self).setUp() + + @override_settings(AUTH_TOKEN_PER_USER=3) + def test_get_tokens_over_limit(self): + invalid_tokens = AuthToken.get_tokens_over_limit(self.user, now=self.now) + invalid_keys = [x.key for x in invalid_tokens] + self.assertEqual(len(invalid_keys), 2) + self.assertIn('b', invalid_keys) + self.assertIn('bb', invalid_keys) + class OrganizationsTest(BaseTest): def collection(self): @@ -221,6 +267,11 @@ class OrganizationsTest(BaseTest): # look at what we got back from the post, make sure we added an org last_org = Organization.objects.order_by('-pk')[0] self.assertTrue(data1['url'].endswith("/%d/" % last_org.pk)) + + # Test that not even super users can create an organization with a basic license + self.create_basic_license_file() + cant_org = dict(name='silly user org', description='4815162342') + self.post(self.collection(), cant_org, expect=402, auth=self.get_super_credentials()) def test_post_item_subobjects_projects(self): @@ -391,6 +442,10 @@ class OrganizationsTest(BaseTest): # also check that DELETE on the collection doesn't work self.delete(self.collection(), expect=405, auth=self.get_super_credentials()) + # Test that not even super users can delete an organization with a basic license + self.create_basic_license_file() + self.delete(urls[2], expect=402, auth=self.get_super_credentials()) + def test_invalid_post_data(self): url = reverse('api:organization_list') # API should gracefully handle data of an invalid type. diff --git a/awx/main/tests/projects.py b/awx/main/tests/projects.py index 6628dd3714..f698267a0c 100644 --- a/awx/main/tests/projects.py +++ b/awx/main/tests/projects.py @@ -209,7 +209,7 @@ class ProjectsTest(BaseTransactionTest): self.assertEquals(results['count'], 10) # org admin results = self.get(projects, expect=200, auth=self.get_normal_credentials()) - self.assertEquals(results['count'], 10) + self.assertEquals(results['count'], 9) # user on a team results = self.get(projects, expect=200, auth=self.get_other_credentials()) self.assertEquals(results['count'], 5) @@ -300,6 +300,17 @@ class ProjectsTest(BaseTransactionTest): got = self.get(proj_orgs, expect=200, auth=self.get_super_credentials()) self.assertEquals(got['count'], 2) + # Verify that creatorship doesn't imply access if access is removed + a_new_proj = self.make_project(created_by=self.other_django_user, playbook_content=TEST_PLAYBOOK) + self.organizations[0].admins.add(self.other_django_user) + self.organizations[0].projects.add(a_new_proj) + proj_detail = reverse('api:project_detail', args=(a_new_proj.pk,)) + self.patch(proj_detail, data=dict(description="test"), expect=200, auth=self.get_other_credentials()) + self.organizations[0].admins.remove(self.other_django_user) + self.patch(proj_detail, data=dict(description="test_now"), expect=403, auth=self.get_other_credentials()) + self.delete(proj_detail, expect=403, auth=self.get_other_credentials()) + a_new_proj.delete() + # ===================================================================== # TEAMS diff --git a/awx/main/tests/tasks.py b/awx/main/tests/tasks.py index 487ff2605f..acdff99e29 100644 --- a/awx/main/tests/tasks.py +++ b/awx/main/tests/tasks.py @@ -9,7 +9,7 @@ import os import shutil import subprocess import tempfile -import unittest +import unittest2 as unittest # Django from django.conf import settings diff --git a/awx/main/tests/users.py b/awx/main/tests/users.py index e0456fdc10..322c73c522 100644 --- a/awx/main/tests/users.py +++ b/awx/main/tests/users.py @@ -4,18 +4,76 @@ # Python import datetime import urllib +from mock import patch # Django from django.conf import settings from django.contrib.auth.models import User, Group from django.db.models import Q from django.core.urlresolvers import reverse +from django.test.utils import override_settings # AWX from awx.main.models import * # noqa from awx.main.tests.base import BaseTest -__all__ = ['AuthTokenProxyTest', 'UsersTest', 'LdapTest'] +__all__ = ['AuthTokenTimeoutTest', 'AuthTokenLimitTest', 'AuthTokenProxyTest', 'UsersTest', 'LdapTest'] + + +class AuthTokenTimeoutTest(BaseTest): + def setUp(self): + super(AuthTokenTimeoutTest, self).setUp() + self.setup_users() + self.setup_instances() + + def test_auth_token_timeout_exists(self): + auth_token_url = reverse('api:auth_token_view') + dashboard_url = reverse('api:dashboard_view') + + data = dict(zip(('username', 'password'), self.get_super_credentials())) + auth = self.post(auth_token_url, data, expect=200) + kwargs = { + 'HTTP_X_AUTH_TOKEN': 'Token %s' % auth['token'] + } + + response = self._generic_rest(dashboard_url, expect=200, method='get', return_response_object=True, client_kwargs=kwargs) + self.assertIn('Auth-Token-Timeout', response) + self.assertEqual(response['Auth-Token-Timeout'], str(settings.AUTH_TOKEN_EXPIRATION)) + +class AuthTokenLimitTest(BaseTest): + def setUp(self): + super(AuthTokenLimitTest, self).setUp() + self.setup_users() + self.setup_instances() + + @override_settings(AUTH_TOKEN_PER_USER=1) + @patch.object(awx.main.models.organization.AuthToken, 'get_request_hash') + def test_invalidate_first_session(self, mock_get_request_hash): + auth_token_url = reverse('api:auth_token_view') + user_me_url = reverse('api:user_me_list') + + data = dict(zip(('username', 'password'), self.get_normal_credentials())) + + mock_get_request_hash.return_value = "session_1" + response = self.post(auth_token_url, data, expect=200, auth=None) + auth_token1 = { + 'token': response['token'] + } + self.get(user_me_url, expect=200, auth=auth_token1) + + mock_get_request_hash.return_value = "session_2" + response = self.post(auth_token_url, data, expect=200, auth=None) + auth_token2 = { + 'token': response['token'] + } + self.get(user_me_url, expect=200, auth=auth_token2) + + # Ensure our get_request_hash mock is working + self.assertNotEqual(auth_token1['token'], auth_token2['token']) + + mock_get_request_hash.return_value = "session_1" + response = self.get(user_me_url, expect=401, auth=auth_token1) + self.assertEqual(AuthToken.reason_long('limit_reached'), response['detail']) ''' Ensure ips from the X-Forwarded-For get honored and used in auth tokens @@ -204,7 +262,7 @@ class UsersTest(BaseTest): remote_addr = '127.0.0.2' response = self.get(user_me_url, expect=401, auth=auth_token, remote_addr=remote_addr) - self.assertEqual(response['detail'], 'Invalid token') + self.assertEqual(response['detail'], AuthToken.reason_long('invalid_token')) # The WWW-Authenticate header should specify Token auth, since that # auth method was used in the request. diff --git a/awx/main/utils.py b/awx/main/utils.py index 169920aff0..9e6a005dc1 100644 --- a/awx/main/utils.py +++ b/awx/main/utils.py @@ -389,11 +389,13 @@ def get_system_task_capacity(): return 50 + ((int(total_mem_value) / 1024) - 2) * 75 -def emit_websocket_notification(endpoint, event, payload): +def emit_websocket_notification(endpoint, event, payload, token_key=None): from awx.main.socket import Socket try: with Socket('websocket', 'w', nowait=True, logger=logger) as websocket: + if token_key: + payload['token_key'] = token_key payload['event'] = event payload['endpoint'] = endpoint websocket.publish(payload) @@ -512,3 +514,11 @@ def timestamp_apiformat(timestamp): if timestamp.endswith('+00:00'): timestamp = timestamp[:-6] + 'Z' return timestamp + +# damn you python 2.6 +def timedelta_total_seconds(timedelta): + return ( + timedelta.microseconds + 0.0 + + (timedelta.seconds + timedelta.days * 24 * 3600) * 10 ** 6) / 10 ** 6 + + diff --git a/awx/plugins/callback/job_event_callback.py b/awx/plugins/callback/job_event_callback.py index 2369868c87..9fdfa4e23a 100644 --- a/awx/plugins/callback/job_event_callback.py +++ b/awx/plugins/callback/job_event_callback.py @@ -426,6 +426,8 @@ class JobCallbackModule(BaseCallbackModule): def v2_playbook_on_stats(self, stats): self.playbook_on_stats(stats) + def v2_playbook_on_include(self, included_file): + self._log_event('playbook_on_include', included_file=included_file) class AdHocCommandCallbackModule(BaseCallbackModule): ''' diff --git a/awx/plugins/fact_caching/tower.py b/awx/plugins/fact_caching/tower.py index 362b9b261c..ce965f9b11 100755 --- a/awx/plugins/fact_caching/tower.py +++ b/awx/plugins/fact_caching/tower.py @@ -35,7 +35,10 @@ import time import datetime from copy import deepcopy from ansible import constants as C -from ansible.cache.base import BaseCacheModule +try: + from ansible.cache.base import BaseCacheModule +except: + from ansible.plugins.cache.base import BaseCacheModule try: import zmq @@ -46,7 +49,6 @@ except ImportError: class CacheModule(BaseCacheModule): def __init__(self, *args, **kwargs): - # Basic in-memory caching for typical runs self._cache = {} self._cache_prev = {} @@ -108,16 +110,15 @@ class CacheModule(BaseCacheModule): module = self.identify_new_module(key, value) # Assume ansible fact triggered the set if no new module found facts = self.filter_ansible_facts(value) if not module else dict({ module : value[module]}) - - self._cache_prev = deepcopy(self._cache) self._cache[key] = value - + self._cache_prev = deepcopy(self._cache) packet = { 'host': key, 'inventory_id': os.environ['INVENTORY_ID'], 'facts': facts, 'date_key': self.date_key, } + # Emit fact data to tower for processing self.socket.send_json(packet) self.socket.recv() diff --git a/awx/plugins/inventory/ec2.py b/awx/plugins/inventory/ec2.py index 53c699227d..b8b1d43dea 100755 --- a/awx/plugins/inventory/ec2.py +++ b/awx/plugins/inventory/ec2.py @@ -22,6 +22,12 @@ you need to define: export EC2_URL=http://hostname_of_your_cc:port/services/Eucalyptus +If you're using boto profiles (requires boto>=2.24.0) you can choose a profile +using the --boto-profile command line argument (e.g. ec2.py --boto-profile prod) or using +the AWS_PROFILE variable: + + AWS_PROFILE=prod ansible-playbook -i ec2.py myplaybook.yml + For more details, see: http://docs.pythonboto.org/en/latest/boto_config_tut.html When run against a specific host, this script returns the following variables: @@ -121,6 +127,7 @@ from time import time import boto from boto import ec2 from boto import rds +from boto import elasticache from boto import route53 import six @@ -147,9 +154,18 @@ class Ec2Inventory(object): # Index of hostname (address) to instance ID self.index = {} + # Boto profile to use (if any) + self.boto_profile = None + # Read settings and parse CLI arguments - self.read_settings() self.parse_cli_args() + self.read_settings() + + # Make sure that profile_name is not passed at all if not set + # as pre 2.24 boto will fall over otherwise + if self.boto_profile: + if not hasattr(boto.ec2.EC2Connection, 'profile_name'): + self.fail_with_error("boto version must be >= 2.24 to use profile") # Cache if self.args.refresh_cache: @@ -186,12 +202,12 @@ class Ec2Inventory(object): def read_settings(self): ''' Reads the settings from the ec2.ini file ''' - if six.PY2: - config = configparser.SafeConfigParser() - else: + if six.PY3: config = configparser.ConfigParser() + else: + config = configparser.SafeConfigParser() ec2_default_ini_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'ec2.ini') - ec2_ini_path = os.environ.get('EC2_INI_PATH', ec2_default_ini_path) + ec2_ini_path = os.path.expanduser(os.path.expandvars(os.environ.get('EC2_INI_PATH', ec2_default_ini_path))) config.read(ec2_ini_path) # is eucalyptus? @@ -232,18 +248,72 @@ class Ec2Inventory(object): if config.has_option('ec2', 'rds'): self.rds_enabled = config.getboolean('ec2', 'rds') - # Return all EC2 and RDS instances (if RDS is enabled) + # Include ElastiCache instances? + self.elasticache_enabled = True + if config.has_option('ec2', 'elasticache'): + self.elasticache_enabled = config.getboolean('ec2', 'elasticache') + + # Return all EC2 instances? if config.has_option('ec2', 'all_instances'): self.all_instances = config.getboolean('ec2', 'all_instances') else: self.all_instances = False + + # Instance states to be gathered in inventory. Default is 'running'. + # Setting 'all_instances' to 'yes' overrides this option. + ec2_valid_instance_states = [ + 'pending', + 'running', + 'shutting-down', + 'terminated', + 'stopping', + 'stopped' + ] + self.ec2_instance_states = [] + if self.all_instances: + self.ec2_instance_states = ec2_valid_instance_states + elif config.has_option('ec2', 'instance_states'): + for instance_state in config.get('ec2', 'instance_states').split(','): + instance_state = instance_state.strip() + if instance_state not in ec2_valid_instance_states: + continue + self.ec2_instance_states.append(instance_state) + else: + self.ec2_instance_states = ['running'] + + # Return all RDS instances? (if RDS is enabled) if config.has_option('ec2', 'all_rds_instances') and self.rds_enabled: self.all_rds_instances = config.getboolean('ec2', 'all_rds_instances') else: self.all_rds_instances = False + # Return all ElastiCache replication groups? (if ElastiCache is enabled) + if config.has_option('ec2', 'all_elasticache_replication_groups') and self.elasticache_enabled: + self.all_elasticache_replication_groups = config.getboolean('ec2', 'all_elasticache_replication_groups') + else: + self.all_elasticache_replication_groups = False + + # Return all ElastiCache clusters? (if ElastiCache is enabled) + if config.has_option('ec2', 'all_elasticache_clusters') and self.elasticache_enabled: + self.all_elasticache_clusters = config.getboolean('ec2', 'all_elasticache_clusters') + else: + self.all_elasticache_clusters = False + + # Return all ElastiCache nodes? (if ElastiCache is enabled) + if config.has_option('ec2', 'all_elasticache_nodes') and self.elasticache_enabled: + self.all_elasticache_nodes = config.getboolean('ec2', 'all_elasticache_nodes') + else: + self.all_elasticache_nodes = False + + # boto configuration profile (prefer CLI argument) + self.boto_profile = self.args.boto_profile + if config.has_option('ec2', 'boto_profile') and not self.boto_profile: + self.boto_profile = config.get('ec2', 'boto_profile') + # Cache related cache_dir = os.path.expanduser(config.get('ec2', 'cache_path')) + if self.boto_profile: + cache_dir = os.path.join(cache_dir, 'profile_' + self.boto_profile) if not os.path.exists(cache_dir): os.makedirs(cache_dir) @@ -257,6 +327,12 @@ class Ec2Inventory(object): else: self.nested_groups = False + # Replace dash or not in group names + if config.has_option('ec2', 'replace_dash_in_groups'): + self.replace_dash_in_groups = config.getboolean('ec2', 'replace_dash_in_groups') + else: + self.replace_dash_in_groups = True + # Configure which groups should be created. group_by_options = [ 'group_by_instance_id', @@ -272,6 +348,10 @@ class Ec2Inventory(object): 'group_by_route53_names', 'group_by_rds_engine', 'group_by_rds_parameter_group', + 'group_by_elasticache_engine', + 'group_by_elasticache_cluster', + 'group_by_elasticache_parameter_group', + 'group_by_elasticache_replication_group', ] for option in group_by_options: if config.has_option('ec2', option): @@ -286,7 +366,7 @@ class Ec2Inventory(object): self.pattern_include = re.compile(pattern_include) else: self.pattern_include = None - except configparser.NoOptionError as e: + except configparser.NoOptionError: self.pattern_include = None # Do we need to exclude hosts that match a pattern? @@ -296,7 +376,7 @@ class Ec2Inventory(object): self.pattern_exclude = re.compile(pattern_exclude) else: self.pattern_exclude = None - except configparser.NoOptionError as e: + except configparser.NoOptionError: self.pattern_exclude = None # Instance filters (see boto and EC2 API docs). Ignore invalid filters. @@ -321,6 +401,8 @@ class Ec2Inventory(object): help='Get all the variables about a specific instance') parser.add_argument('--refresh-cache', action='store_true', default=False, help='Force refresh of cache by making API requests to EC2 (default: False - use cache files)') + parser.add_argument('--boto-profile', action='store', + help='Use boto profile for connections to EC2') self.args = parser.parse_args() @@ -334,6 +416,9 @@ class Ec2Inventory(object): self.get_instances_by_region(region) if self.rds_enabled: self.get_rds_instances_by_region(region) + if self.elasticache_enabled: + self.get_elasticache_clusters_by_region(region) + self.get_elasticache_replication_groups_by_region(region) self.write_to_cache(self.inventory, self.cache_path_cache) self.write_to_cache(self.index, self.cache_path_index) @@ -344,7 +429,25 @@ class Ec2Inventory(object): conn = boto.connect_euca(host=self.eucalyptus_host) conn.APIVersion = '2010-08-31' else: - conn = ec2.connect_to_region(region) + conn = self.connect_to_aws(ec2, region) + return conn + + def boto_fix_security_token_in_profile(self, connect_args): + ''' monkey patch for boto issue boto/boto#2100 ''' + profile = 'profile ' + self.boto_profile + if boto.config.has_option(profile, 'aws_security_token'): + connect_args['security_token'] = boto.config.get(profile, 'aws_security_token') + return connect_args + + def connect_to_aws(self, module, region): + connect_args = {} + + # only pass the profile name if it's set (as it is not supported by older boto versions) + if self.boto_profile: + connect_args['profile_name'] = self.boto_profile + self.boto_fix_security_token_in_profile(connect_args) + + conn = module.connect_to_region(region, **connect_args) # connect_to_region will fail "silently" by returning None if the region name is wrong or not supported if conn is None: self.fail_with_error("region name: %s likely not supported, or AWS is down. connection to region failed." % region) @@ -373,26 +476,96 @@ class Ec2Inventory(object): else: backend = 'Eucalyptus' if self.eucalyptus else 'AWS' error = "Error connecting to %s backend.\n%s" % (backend, e.message) - self.fail_with_error(error) + self.fail_with_error(error, 'getting EC2 instances') def get_rds_instances_by_region(self, region): ''' Makes an AWS API call to the list of RDS instances in a particular region ''' try: - conn = rds.connect_to_region(region) + conn = self.connect_to_aws(rds, region) if conn: instances = conn.get_all_dbinstances() for instance in instances: self.add_rds_instance(instance, region) except boto.exception.BotoServerError as e: error = e.reason - + if e.error_code == 'AuthFailure': error = self.get_auth_error_message() if not e.reason == "Forbidden": error = "Looks like AWS RDS is down:\n%s" % e.message - self.fail_with_error(error) + self.fail_with_error(error, 'getting RDS instances') + + def get_elasticache_clusters_by_region(self, region): + ''' Makes an AWS API call to the list of ElastiCache clusters (with + nodes' info) in a particular region.''' + + # ElastiCache boto module doesn't provide a get_all_intances method, + # that's why we need to call describe directly (it would be called by + # the shorthand method anyway...) + try: + conn = elasticache.connect_to_region(region) + if conn: + # show_cache_node_info = True + # because we also want nodes' information + response = conn.describe_cache_clusters(None, None, None, True) + + except boto.exception.BotoServerError as e: + error = e.reason + + if e.error_code == 'AuthFailure': + error = self.get_auth_error_message() + if not e.reason == "Forbidden": + error = "Looks like AWS ElastiCache is down:\n%s" % e.message + self.fail_with_error(error, 'getting ElastiCache clusters') + + try: + # Boto also doesn't provide wrapper classes to CacheClusters or + # CacheNodes. Because of that wo can't make use of the get_list + # method in the AWSQueryConnection. Let's do the work manually + clusters = response['DescribeCacheClustersResponse']['DescribeCacheClustersResult']['CacheClusters'] + + except KeyError as e: + error = "ElastiCache query to AWS failed (unexpected format)." + self.fail_with_error(error, 'getting ElastiCache clusters') + + for cluster in clusters: + self.add_elasticache_cluster(cluster, region) + + def get_elasticache_replication_groups_by_region(self, region): + ''' Makes an AWS API call to the list of ElastiCache replication groups + in a particular region.''' + + # ElastiCache boto module doesn't provide a get_all_intances method, + # that's why we need to call describe directly (it would be called by + # the shorthand method anyway...) + try: + conn = elasticache.connect_to_region(region) + if conn: + response = conn.describe_replication_groups() + + except boto.exception.BotoServerError as e: + error = e.reason + + if e.error_code == 'AuthFailure': + error = self.get_auth_error_message() + if not e.reason == "Forbidden": + error = "Looks like AWS ElastiCache [Replication Groups] is down:\n%s" % e.message + self.fail_with_error(error, 'getting ElastiCache clusters') + + try: + # Boto also doesn't provide wrapper classes to ReplicationGroups + # Because of that wo can't make use of the get_list method in the + # AWSQueryConnection. Let's do the work manually + replication_groups = response['DescribeReplicationGroupsResponse']['DescribeReplicationGroupsResult']['ReplicationGroups'] + + except KeyError as e: + error = "ElastiCache [Replication Groups] query to AWS failed (unexpected format)." + self.fail_with_error(error, 'getting ElastiCache clusters') + + for replication_group in replication_groups: + self.add_elasticache_replication_group(replication_group, region) def get_auth_error_message(self): ''' create an informative error message if there is an issue authenticating''' @@ -410,9 +583,12 @@ class Ec2Inventory(object): errors.append(" - No Boto config found at any expected location '%s'" % ', '.join(boto_paths)) return '\n'.join(errors) - - def fail_with_error(self, err_msg): + + def fail_with_error(self, err_msg, err_operation=None): '''log an error to std err for ansible-playbook to consume and exit''' + if err_operation: + err_msg = 'ERROR: "{err_msg}", while: {err_operation}'.format( + err_msg=err_msg, err_operation=err_operation) sys.stderr.write(err_msg) sys.exit(1) @@ -428,8 +604,8 @@ class Ec2Inventory(object): ''' Adds an instance to the inventory and index, as long as it is addressable ''' - # Only want running instances unless all_instances is True - if not self.all_instances and instance.state != 'running': + # Only return instances with desired instance states + if instance.state not in self.ec2_instance_states: return # Select the best destination address @@ -633,6 +809,243 @@ class Ec2Inventory(object): self.inventory["_meta"]["hostvars"][dest] = self.get_host_info_dict_from_instance(instance) + def add_elasticache_cluster(self, cluster, region): + ''' Adds an ElastiCache cluster to the inventory and index, as long as + it's nodes are addressable ''' + + # Only want available clusters unless all_elasticache_clusters is True + if not self.all_elasticache_clusters and cluster['CacheClusterStatus'] != 'available': + return + + # Select the best destination address + if 'ConfigurationEndpoint' in cluster and cluster['ConfigurationEndpoint']: + # Memcached cluster + dest = cluster['ConfigurationEndpoint']['Address'] + is_redis = False + else: + # Redis sigle node cluster + # Because all Redis clusters are single nodes, we'll merge the + # info from the cluster with info about the node + dest = cluster['CacheNodes'][0]['Endpoint']['Address'] + is_redis = True + + if not dest: + # Skip clusters we cannot address (e.g. private VPC subnet) + return + + # Add to index + self.index[dest] = [region, cluster['CacheClusterId']] + + # Inventory: Group by instance ID (always a group of 1) + if self.group_by_instance_id: + self.inventory[cluster['CacheClusterId']] = [dest] + if self.nested_groups: + self.push_group(self.inventory, 'instances', cluster['CacheClusterId']) + + # Inventory: Group by region + if self.group_by_region and not is_redis: + self.push(self.inventory, region, dest) + if self.nested_groups: + self.push_group(self.inventory, 'regions', region) + + # Inventory: Group by availability zone + if self.group_by_availability_zone and not is_redis: + self.push(self.inventory, cluster['PreferredAvailabilityZone'], dest) + if self.nested_groups: + if self.group_by_region: + self.push_group(self.inventory, region, cluster['PreferredAvailabilityZone']) + self.push_group(self.inventory, 'zones', cluster['PreferredAvailabilityZone']) + + # Inventory: Group by node type + if self.group_by_instance_type and not is_redis: + type_name = self.to_safe('type_' + cluster['CacheNodeType']) + self.push(self.inventory, type_name, dest) + if self.nested_groups: + self.push_group(self.inventory, 'types', type_name) + + # Inventory: Group by VPC (information not available in the current + # AWS API version for ElastiCache) + + # Inventory: Group by security group + if self.group_by_security_group and not is_redis: + + # Check for the existence of the 'SecurityGroups' key and also if + # this key has some value. When the cluster is not placed in a SG + # the query can return None here and cause an error. + if 'SecurityGroups' in cluster and cluster['SecurityGroups'] is not None: + for security_group in cluster['SecurityGroups']: + key = self.to_safe("security_group_" + security_group['SecurityGroupId']) + self.push(self.inventory, key, dest) + if self.nested_groups: + self.push_group(self.inventory, 'security_groups', key) + + # Inventory: Group by engine + if self.group_by_elasticache_engine and not is_redis: + self.push(self.inventory, self.to_safe("elasticache_" + cluster['Engine']), dest) + if self.nested_groups: + self.push_group(self.inventory, 'elasticache_engines', self.to_safe(cluster['Engine'])) + + # Inventory: Group by parameter group + if self.group_by_elasticache_parameter_group: + self.push(self.inventory, self.to_safe("elasticache_parameter_group_" + cluster['CacheParameterGroup']['CacheParameterGroupName']), dest) + if self.nested_groups: + self.push_group(self.inventory, 'elasticache_parameter_groups', self.to_safe(cluster['CacheParameterGroup']['CacheParameterGroupName'])) + + # Inventory: Group by replication group + if self.group_by_elasticache_replication_group and 'ReplicationGroupId' in cluster and cluster['ReplicationGroupId']: + self.push(self.inventory, self.to_safe("elasticache_replication_group_" + cluster['ReplicationGroupId']), dest) + if self.nested_groups: + self.push_group(self.inventory, 'elasticache_replication_groups', self.to_safe(cluster['ReplicationGroupId'])) + + # Global Tag: all ElastiCache clusters + self.push(self.inventory, 'elasticache_clusters', cluster['CacheClusterId']) + + host_info = self.get_host_info_dict_from_describe_dict(cluster) + + self.inventory["_meta"]["hostvars"][dest] = host_info + + # Add the nodes + for node in cluster['CacheNodes']: + self.add_elasticache_node(node, cluster, region) + + def add_elasticache_node(self, node, cluster, region): + ''' Adds an ElastiCache node to the inventory and index, as long as + it is addressable ''' + + # Only want available nodes unless all_elasticache_nodes is True + if not self.all_elasticache_nodes and node['CacheNodeStatus'] != 'available': + return + + # Select the best destination address + dest = node['Endpoint']['Address'] + + if not dest: + # Skip nodes we cannot address (e.g. private VPC subnet) + return + + node_id = self.to_safe(cluster['CacheClusterId'] + '_' + node['CacheNodeId']) + + # Add to index + self.index[dest] = [region, node_id] + + # Inventory: Group by node ID (always a group of 1) + if self.group_by_instance_id: + self.inventory[node_id] = [dest] + if self.nested_groups: + self.push_group(self.inventory, 'instances', node_id) + + # Inventory: Group by region + if self.group_by_region: + self.push(self.inventory, region, dest) + if self.nested_groups: + self.push_group(self.inventory, 'regions', region) + + # Inventory: Group by availability zone + if self.group_by_availability_zone: + self.push(self.inventory, cluster['PreferredAvailabilityZone'], dest) + if self.nested_groups: + if self.group_by_region: + self.push_group(self.inventory, region, cluster['PreferredAvailabilityZone']) + self.push_group(self.inventory, 'zones', cluster['PreferredAvailabilityZone']) + + # Inventory: Group by node type + if self.group_by_instance_type: + type_name = self.to_safe('type_' + cluster['CacheNodeType']) + self.push(self.inventory, type_name, dest) + if self.nested_groups: + self.push_group(self.inventory, 'types', type_name) + + # Inventory: Group by VPC (information not available in the current + # AWS API version for ElastiCache) + + # Inventory: Group by security group + if self.group_by_security_group: + + # Check for the existence of the 'SecurityGroups' key and also if + # this key has some value. When the cluster is not placed in a SG + # the query can return None here and cause an error. + if 'SecurityGroups' in cluster and cluster['SecurityGroups'] is not None: + for security_group in cluster['SecurityGroups']: + key = self.to_safe("security_group_" + security_group['SecurityGroupId']) + self.push(self.inventory, key, dest) + if self.nested_groups: + self.push_group(self.inventory, 'security_groups', key) + + # Inventory: Group by engine + if self.group_by_elasticache_engine: + self.push(self.inventory, self.to_safe("elasticache_" + cluster['Engine']), dest) + if self.nested_groups: + self.push_group(self.inventory, 'elasticache_engines', self.to_safe("elasticache_" + cluster['Engine'])) + + # Inventory: Group by parameter group (done at cluster level) + + # Inventory: Group by replication group (done at cluster level) + + # Inventory: Group by ElastiCache Cluster + if self.group_by_elasticache_cluster: + self.push(self.inventory, self.to_safe("elasticache_cluster_" + cluster['CacheClusterId']), dest) + + # Global Tag: all ElastiCache nodes + self.push(self.inventory, 'elasticache_nodes', dest) + + host_info = self.get_host_info_dict_from_describe_dict(node) + + if dest in self.inventory["_meta"]["hostvars"]: + self.inventory["_meta"]["hostvars"][dest].update(host_info) + else: + self.inventory["_meta"]["hostvars"][dest] = host_info + + def add_elasticache_replication_group(self, replication_group, region): + ''' Adds an ElastiCache replication group to the inventory and index ''' + + # Only want available clusters unless all_elasticache_replication_groups is True + if not self.all_elasticache_replication_groups and replication_group['Status'] != 'available': + return + + # Select the best destination address (PrimaryEndpoint) + dest = replication_group['NodeGroups'][0]['PrimaryEndpoint']['Address'] + + if not dest: + # Skip clusters we cannot address (e.g. private VPC subnet) + return + + # Add to index + self.index[dest] = [region, replication_group['ReplicationGroupId']] + + # Inventory: Group by ID (always a group of 1) + if self.group_by_instance_id: + self.inventory[replication_group['ReplicationGroupId']] = [dest] + if self.nested_groups: + self.push_group(self.inventory, 'instances', replication_group['ReplicationGroupId']) + + # Inventory: Group by region + if self.group_by_region: + self.push(self.inventory, region, dest) + if self.nested_groups: + self.push_group(self.inventory, 'regions', region) + + # Inventory: Group by availability zone (doesn't apply to replication groups) + + # Inventory: Group by node type (doesn't apply to replication groups) + + # Inventory: Group by VPC (information not available in the current + # AWS API version for replication groups + + # Inventory: Group by security group (doesn't apply to replication groups) + # Check this value in cluster level + + # Inventory: Group by engine (replication groups are always Redis) + if self.group_by_elasticache_engine: + self.push(self.inventory, 'elasticache_redis', dest) + if self.nested_groups: + self.push_group(self.inventory, 'elasticache_engines', 'redis') + + # Global Tag: all ElastiCache clusters + self.push(self.inventory, 'elasticache_replication_groups', replication_group['ReplicationGroupId']) + + host_info = self.get_host_info_dict_from_describe_dict(replication_group) + + self.inventory["_meta"]["hostvars"][dest] = host_info def get_route53_records(self): ''' Get and store the map of resource records to domain names that @@ -681,7 +1094,6 @@ class Ec2Inventory(object): return list(name_list) - def get_host_info_dict_from_instance(self, instance): instance_vars = {} for key in vars(instance): @@ -727,6 +1139,91 @@ class Ec2Inventory(object): return instance_vars + def get_host_info_dict_from_describe_dict(self, describe_dict): + ''' Parses the dictionary returned by the API call into a flat list + of parameters. This method should be used only when 'describe' is + used directly because Boto doesn't provide specific classes. ''' + + # I really don't agree with prefixing everything with 'ec2' + # because EC2, RDS and ElastiCache are different services. + # I'm just following the pattern used until now to not break any + # compatibility. + + host_info = {} + for key in describe_dict: + value = describe_dict[key] + key = self.to_safe('ec2_' + self.uncammelize(key)) + + # Handle complex types + + # Target: Memcached Cache Clusters + if key == 'ec2_configuration_endpoint' and value: + host_info['ec2_configuration_endpoint_address'] = value['Address'] + host_info['ec2_configuration_endpoint_port'] = value['Port'] + + # Target: Cache Nodes and Redis Cache Clusters (single node) + if key == 'ec2_endpoint' and value: + host_info['ec2_endpoint_address'] = value['Address'] + host_info['ec2_endpoint_port'] = value['Port'] + + # Target: Redis Replication Groups + if key == 'ec2_node_groups' and value: + host_info['ec2_endpoint_address'] = value[0]['PrimaryEndpoint']['Address'] + host_info['ec2_endpoint_port'] = value[0]['PrimaryEndpoint']['Port'] + replica_count = 0 + for node in value[0]['NodeGroupMembers']: + if node['CurrentRole'] == 'primary': + host_info['ec2_primary_cluster_address'] = node['ReadEndpoint']['Address'] + host_info['ec2_primary_cluster_port'] = node['ReadEndpoint']['Port'] + host_info['ec2_primary_cluster_id'] = node['CacheClusterId'] + elif node['CurrentRole'] == 'replica': + host_info['ec2_replica_cluster_address_'+ str(replica_count)] = node['ReadEndpoint']['Address'] + host_info['ec2_replica_cluster_port_'+ str(replica_count)] = node['ReadEndpoint']['Port'] + host_info['ec2_replica_cluster_id_'+ str(replica_count)] = node['CacheClusterId'] + replica_count += 1 + + # Target: Redis Replication Groups + if key == 'ec2_member_clusters' and value: + host_info['ec2_member_clusters'] = ','.join([str(i) for i in value]) + + # Target: All Cache Clusters + elif key == 'ec2_cache_parameter_group': + host_info["ec2_cache_node_ids_to_reboot"] = ','.join([str(i) for i in value['CacheNodeIdsToReboot']]) + host_info['ec2_cache_parameter_group_name'] = value['CacheParameterGroupName'] + host_info['ec2_cache_parameter_apply_status'] = value['ParameterApplyStatus'] + + # Target: Almost everything + elif key == 'ec2_security_groups': + + # Skip if SecurityGroups is None + # (it is possible to have the key defined but no value in it). + if value is not None: + sg_ids = [] + for sg in value: + sg_ids.append(sg['SecurityGroupId']) + host_info["ec2_security_group_ids"] = ','.join([str(i) for i in sg_ids]) + + # Target: Everything + # Preserve booleans and integers + elif type(value) in [int, bool]: + host_info[key] = value + + # Target: Everything + # Sanitize string values + elif isinstance(value, six.string_types): + host_info[key] = value.strip() + + # Target: Everything + # Replace None by an empty string + elif type(value) == type(None): + host_info[key] = '' + + else: + # Remove non-processed complex types + pass + + return host_info + def get_host_info(self): ''' Get variables about a specific host ''' @@ -790,13 +1287,16 @@ class Ec2Inventory(object): cache.write(json_data) cache.close() + def uncammelize(self, key): + temp = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', key) + return re.sub('([a-z0-9])([A-Z])', r'\1_\2', temp).lower() def to_safe(self, word): - ''' Converts 'bad' characters in a string to underscores so they can be - used as Ansible groups ''' - - return re.sub("[^A-Za-z0-9\_]", "_", word) - + ''' Converts 'bad' characters in a string to underscores so they can be used as Ansible groups ''' + regex = "[^A-Za-z0-9\_" + if self.replace_dash_in_groups: + regex += "\-" + return re.sub(regex + "]", "_", word) def json_format_dict(self, data, pretty=False): ''' Converts a dict to a JSON object and dumps it as a formatted @@ -810,3 +1310,4 @@ class Ec2Inventory(object): # Run the script Ec2Inventory() + diff --git a/awx/plugins/inventory/gce.py b/awx/plugins/inventory/gce.py index 5fe3db93f8..b13c194a6e 100755 --- a/awx/plugins/inventory/gce.py +++ b/awx/plugins/inventory/gce.py @@ -66,7 +66,7 @@ Examples: $ ansible -i gce.py us-central1-a -m shell -a "/bin/uname -a" Use the GCE inventory script to print out instance specific information - $ plugins/inventory/gce.py --host my_instance + $ contrib/inventory/gce.py --host my_instance Author: Eric Johnson Version: 0.0.1 @@ -112,9 +112,9 @@ class GceInventory(object): # Just display data for specific host if self.args.host: - print self.json_format_dict(self.node_to_dict( + print(self.json_format_dict(self.node_to_dict( self.get_instance(self.args.host)), - pretty=self.args.pretty) + pretty=self.args.pretty)) sys.exit(0) # Otherwise, assume user wants all instances grouped @@ -237,7 +237,7 @@ class GceInventory(object): '''Gets details about a specific instance ''' try: return self.driver.ex_get_node(instance_name) - except Exception, e: + except Exception as e: return None def group_instances(self): @@ -257,7 +257,10 @@ class GceInventory(object): tags = node.extra['tags'] for t in tags: - tag = 'tag_%s' % t + if t.startswith('group-'): + tag = t[6:] + else: + tag = 'tag_%s' % t if groups.has_key(tag): groups[tag].append(name) else: groups[tag] = [name] diff --git a/awx/plugins/inventory/openstack.py b/awx/plugins/inventory/openstack.py index ae5fa78dce..103be1bee0 100755 --- a/awx/plugins/inventory/openstack.py +++ b/awx/plugins/inventory/openstack.py @@ -52,8 +52,6 @@ class OpenStackInventory(object): def __init__(self, private=False, refresh=False): config_files = os_client_config.config.CONFIG_FILES - if os.environ.get('OPENSTACK_CONFIG_FILE', None): - config_files.insert(0, os.environ['OPENSTACK_CONFIG_FILE']) config_files.append('/etc/ansible/openstack.yml') self.openstack_config = os_client_config.config.OpenStackConfig( config_files) @@ -156,7 +154,8 @@ def main(): elif args.host: inventory.get_host(args.host) except shade.OpenStackCloudException as e: - sys.exit(e.message) + sys.stderr.write('%s\n' % e.message) + sys.exit(1) sys.exit(0) diff --git a/awx/plugins/inventory/rax.py b/awx/plugins/inventory/rax.py index 10b72d322b..0028f54d20 100755 --- a/awx/plugins/inventory/rax.py +++ b/awx/plugins/inventory/rax.py @@ -153,6 +153,8 @@ import warnings import collections import ConfigParser +from six import iteritems + from ansible.constants import get_config, mk_boolean try: @@ -167,6 +169,9 @@ except ImportError: print('pyrax is required for this module') sys.exit(1) +from time import time + + NON_CALLABLES = (basestring, bool, dict, int, list, type(None)) @@ -214,7 +219,7 @@ def host(regions, hostname): print(json.dumps(hostvars, sort_keys=True, indent=4)) -def _list(regions): +def _list_into_cache(regions): groups = collections.defaultdict(list) hostvars = collections.defaultdict(dict) images = {} @@ -242,7 +247,7 @@ def _list(regions): if cs is None: warnings.warn( 'Connecting to Rackspace region "%s" has caused Pyrax to ' - 'return a NoneType. Is this a valid region?' % region, + 'return None. Is this a valid region?' % region, RuntimeWarning) continue for server in cs.servers.list(): @@ -264,7 +269,7 @@ def _list(regions): hostvars[server.name]['rax_region'] = region - for key, value in server.metadata.iteritems(): + for key, value in iteritems(server.metadata): groups['%s_%s_%s' % (prefix, key, value)].append(server.name) groups['instance-%s' % server.id].append(server.name) @@ -334,7 +339,31 @@ def _list(regions): if hostvars: groups['_meta'] = {'hostvars': hostvars} - print(json.dumps(groups, sort_keys=True, indent=4)) + + with open(get_cache_file_path(regions), 'w') as cache_file: + json.dump(groups, cache_file) + + +def get_cache_file_path(regions): + regions_str = '.'.join([reg.strip().lower() for reg in regions]) + ansible_tmp_path = os.path.join(os.path.expanduser("~"), '.ansible', 'tmp') + if not os.path.exists(ansible_tmp_path): + os.makedirs(ansible_tmp_path) + return os.path.join(ansible_tmp_path, + 'ansible-rax-%s-%s.cache' % ( + pyrax.identity.username, regions_str)) + + +def _list(regions, refresh_cache=True): + if (not os.path.exists(get_cache_file_path(regions)) or + refresh_cache or + (time() - os.stat(get_cache_file_path(regions))[-1]) > 600): + # Cache file doesn't exist or older than 10m or refresh cache requested + _list_into_cache(regions) + + with open(get_cache_file_path(regions), 'r') as cache_file: + groups = json.load(cache_file) + print(json.dumps(groups, sort_keys=True, indent=4)) def parse_args(): @@ -344,6 +373,9 @@ def parse_args(): group.add_argument('--list', action='store_true', help='List active servers') group.add_argument('--host', help='List details about the specific host') + parser.add_argument('--refresh-cache', action='store_true', default=False, + help=('Force refresh of cache, making API requests to' + 'RackSpace (default: False - use cache files)')) return parser.parse_args() @@ -382,7 +414,7 @@ def setup(): pyrax.keyring_auth(keyring_username, region=region) else: pyrax.set_credential_file(creds_file, region=region) - except Exception, e: + except Exception as e: sys.stderr.write("%s: %s\n" % (e, e.message)) sys.exit(1) @@ -410,7 +442,7 @@ def main(): args = parse_args() regions = setup() if args.list: - _list(regions) + _list(regions, refresh_cache=args.refresh_cache) elif args.host: host(regions, args.host) sys.exit(0) diff --git a/awx/plugins/inventory/vmware.py b/awx/plugins/inventory/vmware.py index 27330b8bcd..8f723a638d 100755 --- a/awx/plugins/inventory/vmware.py +++ b/awx/plugins/inventory/vmware.py @@ -28,6 +28,8 @@ take precedence over options present in the INI file. An INI file is not required if these options are specified using environment variables. ''' +from __future__ import print_function + import collections import json import logging @@ -37,6 +39,8 @@ import sys import time import ConfigParser +from six import text_type + # Disable logging message trigged by pSphere/suds. try: from logging import NullHandler @@ -95,7 +99,7 @@ class VMwareInventory(object): Saves the value to cache with the name given. ''' if self.config.has_option('defaults', 'cache_dir'): - cache_dir = self.config.get('defaults', 'cache_dir') + cache_dir = os.path.expanduser(self.config.get('defaults', 'cache_dir')) if not os.path.exists(cache_dir): os.makedirs(cache_dir) cache_file = os.path.join(cache_dir, name) @@ -115,7 +119,7 @@ class VMwareInventory(object): else: cache_max_age = 0 cache_stat = os.stat(cache_file) - if (cache_stat.st_mtime + cache_max_age) < time.time(): + if (cache_stat.st_mtime + cache_max_age) >= time.time(): with open(cache_file) as cache: return json.load(cache) return default @@ -147,7 +151,7 @@ class VMwareInventory(object): seen = seen or set() if isinstance(obj, ManagedObject): try: - obj_unicode = unicode(getattr(obj, 'name')) + obj_unicode = text_type(getattr(obj, 'name')) except AttributeError: obj_unicode = () if obj in seen: @@ -164,7 +168,7 @@ class VMwareInventory(object): obj_info = self._get_obj_info(val, depth - 1, seen) if obj_info != (): d[attr] = obj_info - except Exception, e: + except Exception as e: pass return d elif isinstance(obj, SudsObject): @@ -207,8 +211,8 @@ class VMwareInventory(object): host_info[k] = v try: host_info['ipAddress'] = host.config.network.vnic[0].spec.ip.ipAddress - except Exception, e: - print >> sys.stderr, e + except Exception as e: + print(e, file=sys.stderr) host_info = self._flatten_dict(host_info, prefix) if ('%s_ipAddress' % prefix) in host_info: host_info['ansible_ssh_host'] = host_info['%s_ipAddress' % prefix] diff --git a/awx/plugins/inventory/windows_azure.py b/awx/plugins/inventory/windows_azure.py index 921a99cdfc..d566b0c4d3 100755 --- a/awx/plugins/inventory/windows_azure.py +++ b/awx/plugins/inventory/windows_azure.py @@ -51,7 +51,7 @@ try: from azure import WindowsAzureError from azure.servicemanagement import ServiceManagementService except ImportError as e: - print "failed=True msg='`azure` library required for this script'" + print("failed=True msg='`azure` library required for this script'") sys.exit(1) @@ -70,8 +70,8 @@ class AzureInventory(object): # Cache setting defaults. # These can be overridden in settings (see `read_settings`). cache_dir = os.path.expanduser('~') - self.cache_path_cache = '%s/.ansible-azure.cache' % cache_dir - self.cache_path_index = '%s/.ansible-azure.index' % cache_dir + self.cache_path_cache = os.path.join(cache_dir, '.ansible-azure.cache') + self.cache_path_index = os.path.join(cache_dir, '.ansible-azure.index') self.cache_max_age = 0 # Read settings and parse CLI arguments @@ -103,15 +103,13 @@ class AzureInventory(object): # Add the `['_meta']['hostvars']` information. hostvars = {} if len(data) > 0: - for host in set(reduce(lambda x, y: x + y, - [i for i in data.values()])): - if host is not None: - hostvars[host] = self.get_host(host, jsonify=False) + for host in set([h for hosts in data.values() for h in hosts if h]): + hostvars[host] = self.get_host(host, jsonify=False) data['_meta'] = {'hostvars': hostvars} # JSONify the data. data_to_print = self.json_format_dict(data, pretty=True) - print data_to_print + print(data_to_print) def get_host(self, hostname, jsonify=True): """Return information about the given hostname, based on what @@ -153,9 +151,9 @@ class AzureInventory(object): # Cache related if config.has_option('azure', 'cache_path'): - cache_path = os.path.expanduser(config.get('azure', 'cache_path')) - self.cache_path_cache = cache_path + '/ansible-azure.cache' - self.cache_path_index = cache_path + '/ansible-azure.index' + cache_path = os.path.expandvars(os.path.expanduser(config.get('azure', 'cache_path'))) + self.cache_path_cache = os.path.join(cache_path, 'ansible-azure.cache') + self.cache_path_index = os.path.join(cache_path, 'ansible-azure.index') if config.has_option('azure', 'cache_max_age'): self.cache_max_age = config.getint('azure', 'cache_max_age') @@ -197,9 +195,9 @@ class AzureInventory(object): for cloud_service in self.sms.list_hosted_services(): self.add_deployments(cloud_service) except WindowsAzureError as e: - print "Looks like Azure's API is down:" - print - print e + print("Looks like Azure's API is down:") + print("") + print(e) sys.exit(1) def add_deployments(self, cloud_service): @@ -209,12 +207,10 @@ class AzureInventory(object): try: for deployment in self.sms.get_hosted_service_properties(cloud_service.service_name,embed_detail=True).deployments.deployments: self.add_deployment(cloud_service, deployment) - #if deployment.deployment_slot == "Production": - # self.add_deployment(cloud_service, deployment) except WindowsAzureError as e: - print "Looks like Azure's API is down:" - print - print e + print("Looks like Azure's API is down:") + print("") + print(e) sys.exit(1) def add_deployment(self, cloud_service, deployment): diff --git a/awx/settings/defaults.py b/awx/settings/defaults.py index 0e131beb40..6733f0d408 100644 --- a/awx/settings/defaults.py +++ b/awx/settings/defaults.py @@ -2,6 +2,7 @@ # All Rights Reserved. import os +import re # noqa import sys import djcelery from datetime import timedelta @@ -63,7 +64,7 @@ USE_L10N = True USE_TZ = True STATICFILES_DIRS = ( - os.path.join(BASE_DIR, 'ui', 'dist'), + os.path.join(BASE_DIR, 'ui', 'static'), os.path.join(BASE_DIR, 'static'), ) @@ -118,16 +119,32 @@ REMOTE_HOST_HEADERS = ['REMOTE_ADDR', 'REMOTE_HOST'] STDOUT_MAX_BYTES_DISPLAY = 1048576 -TEMPLATE_CONTEXT_PROCESSORS += ( # NOQA +TEMPLATE_CONTEXT_PROCESSORS = ( # NOQA + 'django.contrib.auth.context_processors.auth', + 'django.core.context_processors.debug', + 'django.core.context_processors.i18n', + 'django.core.context_processors.media', + 'django.core.context_processors.static', + 'django.core.context_processors.tz', + 'django.contrib.messages.context_processors.messages', 'django.core.context_processors.request', 'awx.ui.context_processors.settings', 'awx.ui.context_processors.version', + 'social.apps.django_app.context_processors.backends', + 'social.apps.django_app.context_processors.login_redirect', ) -MIDDLEWARE_CLASSES += ( # NOQA +MIDDLEWARE_CLASSES = ( # NOQA + 'django.middleware.common.CommonMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', 'awx.main.middleware.HAMiddleware', 'awx.main.middleware.ActivityStreamMiddleware', + 'awx.sso.middleware.SocialAuthMiddleware', 'crum.CurrentRequestUserMiddleware', + 'awx.main.middleware.AuthTokenTimeoutMiddleware', ) TEMPLATE_DIRS = ( @@ -159,10 +176,12 @@ INSTALLED_APPS = ( 'kombu.transport.django', 'polymorphic', 'taggit', + 'social.apps.django_app.default', 'awx.main', 'awx.api', 'awx.ui', 'awx.fact', + 'awx.sso', ) INTERNAL_IPS = ('127.0.0.1',) @@ -199,16 +218,35 @@ REST_FRAMEWORK = { } AUTHENTICATION_BACKENDS = ( - 'awx.main.backend.LDAPBackend', + 'awx.sso.backends.LDAPBackend', + 'awx.sso.backends.RADIUSBackend', + 'social.backends.google.GoogleOAuth2', + 'social.backends.github.GithubOAuth2', + 'social.backends.github.GithubOrganizationOAuth2', + 'social.backends.github.GithubTeamOAuth2', + 'awx.sso.backends.SAMLAuth', 'django.contrib.auth.backends.ModelBackend', ) # LDAP server (default to None to skip using LDAP authentication). AUTH_LDAP_SERVER_URI = None +# Radius server settings (default to empty string to skip using Radius auth). +RADIUS_SERVER = '' +RADIUS_PORT = 1812 +RADIUS_SECRET = '' + # Seconds before auth tokens expire. AUTH_TOKEN_EXPIRATION = 1800 +# Maximum number of per-user valid, concurrent tokens. +# -1 is unlimited +AUTH_TOKEN_PER_USER = -1 + +# Enable / Disable HTTP Basic Authentication used in the API browser +# Note: Session limits are not enforced when using HTTP Basic Authentication. +AUTH_BASIC_ENABLED = True + # If set, serve only minified JS for UI. USE_MINIFIED_JS = False @@ -307,6 +345,70 @@ CELERYBEAT_SCHEDULE = { }, } +# Social Auth configuration. +SOCIAL_AUTH_STRATEGY = 'social.strategies.django_strategy.DjangoStrategy' +SOCIAL_AUTH_STORAGE = 'social.apps.django_app.default.models.DjangoStorage' +SOCIAL_AUTH_USER_MODEL = AUTH_USER_MODEL # noqa +SOCIAL_AUTH_PIPELINE = ( + 'social.pipeline.social_auth.social_details', + 'social.pipeline.social_auth.social_uid', + 'social.pipeline.social_auth.auth_allowed', + 'social.pipeline.social_auth.social_user', + 'social.pipeline.user.get_username', + 'social.pipeline.social_auth.associate_by_email', + 'social.pipeline.user.create_user', + 'awx.sso.pipeline.check_user_found_or_created', + 'social.pipeline.social_auth.associate_user', + 'social.pipeline.social_auth.load_extra_data', + 'awx.sso.pipeline.set_is_active_for_new_user', + 'social.pipeline.user.user_details', + 'awx.sso.pipeline.prevent_inactive_login', + 'awx.sso.pipeline.update_user_orgs', + 'awx.sso.pipeline.update_user_teams', +) + +SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = '' +SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = '' +SOCIAL_AUTH_GOOGLE_OAUTH2_SCOPE = ['profile'] + +SOCIAL_AUTH_GITHUB_KEY = '' +SOCIAL_AUTH_GITHUB_SECRET = '' +SOCIAL_AUTH_GITHUB_SCOPE = ['user:email', 'read:org'] + +SOCIAL_AUTH_GITHUB_ORG_KEY = '' +SOCIAL_AUTH_GITHUB_ORG_SECRET = '' +SOCIAL_AUTH_GITHUB_ORG_NAME = '' +SOCIAL_AUTH_GITHUB_ORG_SCOPE = ['user:email', 'read:org'] + +SOCIAL_AUTH_GITHUB_TEAM_KEY = '' +SOCIAL_AUTH_GITHUB_TEAM_SECRET = '' +SOCIAL_AUTH_GITHUB_TEAM_ID = '' +SOCIAL_AUTH_GITHUB_TEAM_SCOPE = ['user:email', 'read:org'] + +SOCIAL_AUTH_SAML_SP_ENTITY_ID = '' +SOCIAL_AUTH_SAML_SP_PUBLIC_CERT = '' +SOCIAL_AUTH_SAML_SP_PRIVATE_KEY = '' +SOCIAL_AUTH_SAML_ORG_INFO = {} +SOCIAL_AUTH_SAML_TECHNICAL_CONTACT = {} +SOCIAL_AUTH_SAML_SUPPORT_CONTACT = {} +SOCIAL_AUTH_SAML_ENABLED_IDPS = {} + +SOCIAL_AUTH_LOGIN_URL = '/' +SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/sso/complete/' +SOCIAL_AUTH_LOGIN_ERROR_URL = '/sso/error/' +SOCIAL_AUTH_INACTIVE_USER_URL = '/sso/inactive/' + +SOCIAL_AUTH_RAISE_EXCEPTIONS = False +SOCIAL_AUTH_USERNAME_IS_FULL_EMAIL = False +SOCIAL_AUTH_SLUGIFY_USERNAMES = True +SOCIAL_AUTH_CLEAN_USERNAMES = True + +SOCIAL_AUTH_SANITIZE_REDIRECTS = True +SOCIAL_AUTH_REDIRECT_IS_HTTPS = False + +SOCIAL_AUTH_ORGANIZATION_MAP = {} +SOCIAL_AUTH_TEAM_MAP = {} + # Any ANSIBLE_* settings will be passed to the subprocess environment by the # celery task. @@ -355,6 +457,12 @@ AWX_JOB_TEMPLATE_HISTORY = 10 # The directory in which proot will create new temporary directories for its root AWX_PROOT_BASE_PATH = "/tmp" +# User definable ansible callback plugins +AWX_ANSIBLE_CALLBACK_PLUGINS = "" + +# Enable Pendo on the UI, possible values are 'off', 'anonymous', and 'detailed' +PENDO_TRACKING_STATE = "off" + # Default list of modules allowed for ad hoc commands. AD_HOC_COMMANDS = [ 'command', @@ -473,13 +581,19 @@ VMWARE_EXCLUDE_EMPTY_GROUPS = True # provide a list here. # Source: https://developers.google.com/compute/docs/zones GCE_REGION_CHOICES = [ + ('us-east1-b', 'US East (B)'), + ('us-east1-c', 'US East (C)'), + ('us-east1-d', 'US East (D)'), ('us-central1-a', 'US Central (A)'), ('us-central1-b', 'US Central (B)'), + ('us-central1-c', 'US Central (C)'), ('us-central1-f', 'US Central (F)'), - ('europe-west1-a', 'Europe West (A)'), ('europe-west1-b', 'Europe West (B)'), + ('europe-west1-c', 'Europe West (C)'), + ('europe-west1-d', 'Europe West (D)'), ('asia-east1-a', 'Asia East (A)'), ('asia-east1-b', 'Asia East (B)'), + ('asia-east1-c', 'Asia East (C)'), ] GCE_REGIONS_BLACKLIST = [] @@ -616,7 +730,7 @@ LOGGING = { 'level': 'WARNING', 'class':'logging.handlers.RotatingFileHandler', 'filters': ['require_debug_false'], - 'filename': os.path.join(LOG_ROOT, 'tower_warnings.log'), + 'filename': os.path.join(LOG_ROOT, 'tower.log'), 'maxBytes': 1024 * 1024 * 5, # 5 MB 'backupCount': 5, 'formatter':'simple', @@ -708,7 +822,12 @@ LOGGING = { 'propagate': False, }, 'django_auth_ldap': { - 'handlers': ['null'], + 'handlers': ['console', 'file', 'tower_warnings'], + 'level': 'DEBUG', + }, + 'social': { + 'handlers': ['console', 'file', 'tower_warnings'], + 'level': 'DEBUG', }, } } diff --git a/awx/settings/development.py b/awx/settings/development.py index eec9673ef9..cd25c3214c 100644 --- a/awx/settings/development.py +++ b/awx/settings/development.py @@ -32,6 +32,8 @@ CALLBACK_QUEUE_PORT = "ipc:///tmp/callback_receiver_dev.ipc" # Enable PROOT for tower-qa integration tests AWX_PROOT_ENABLED = True +PENDO_TRACKING_STATE = "off" + # Use Django-Jenkins if installed. Only run tests for awx.main app. try: import django_jenkins @@ -74,10 +76,8 @@ include(optional('/etc/tower/conf.d/*.py'), scope=locals()) # default settings for development. If not present, we can still run using # only the defaults. try: - include( - optional('local_*.py'), - scope=locals(), - ) + include(optional('local_*.py'), scope=locals()) + include('postprocess.py', scope=locals()) except ImportError: traceback.print_exc() sys.exit(1) diff --git a/awx/settings/local_settings.py.docker_compose b/awx/settings/local_settings.py.docker_compose new file mode 100644 index 0000000000..172eeccb91 --- /dev/null +++ b/awx/settings/local_settings.py.docker_compose @@ -0,0 +1,629 @@ +# Copyright (c) 2015 Ansible, Inc. (formerly AnsibleWorks, Inc.) +# All Rights Reserved. + +# Local Django settings for AWX project. Rename to "local_settings.py" and +# edit as needed for your development environment. + +# All variables defined in awx/settings/development.py will already be loaded +# into the global namespace before this file is loaded, to allow for reading +# and updating the default settings as needed. + +############################################################################### +# MISC PROJECT SETTINGS +############################################################################### + +ADMINS = ( + # ('Your Name', 'your_email@domain.com'), +) + +MANAGERS = ADMINS + +# Database settings to use PostgreSQL for development. +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.postgresql_psycopg2', + 'NAME': 'awx-dev', + 'USER': 'awx-dev', + 'PASSWORD': 'AWXsome1', + 'HOST': 'postgres', + 'PORT': '', + } +} + +# Use SQLite for unit tests instead of PostgreSQL. If the lines below are +# commented out, Django will create the test_awx-dev database in PostgreSQL to +# run unit tests. +if len(sys.argv) >= 2 and sys.argv[1] == 'test': + DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(BASE_DIR, 'awx.sqlite3'), + # Test database cannot be :memory: for celery/inventory tests. + 'TEST_NAME': os.path.join(BASE_DIR, 'awx_test.sqlite3'), + } + } + + MONGO_DB = 'system_tracking_test' + +# Celery AMQP configuration. +BROKER_URL = 'redis://redis/' + +# Mongo host configuration +MONGO_HOST = 'mongo' + +# Set True to enable additional logging from the job_event_callback plugin +JOB_CALLBACK_DEBUG = False + +# Absolute filesystem path to the directory to host projects (with playbooks). +# This directory should NOT be web-accessible. +PROJECTS_ROOT = os.path.join(BASE_DIR, 'projects') + +# Absolute filesystem path to the directory for job status stdout +# This directory should not be web-accessible +JOBOUTPUT_ROOT = os.path.join(BASE_DIR, 'job_status') + +# The UUID of the system, for HA. +SYSTEM_UUID = '00000000-0000-0000-0000-000000000000' + +# Local time zone for this installation. Choices can be found here: +# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name +# although not all choices may be available on all operating systems. +# On Unix systems, a value of None will cause Django to use the same +# timezone as the operating system. +# If running in a Windows environment this must be set to the same as your +# system time zone. +TIME_ZONE = 'America/New_York' + +# Language code for this installation. All choices can be found here: +# http://www.i18nguy.com/unicode/language-identifiers.html +LANGUAGE_CODE = 'en-us' + +# SECURITY WARNING: keep the secret key used in production secret! +# Hardcoded values can leak through source control. Consider loading +# the secret key from an environment variable or a file instead. +SECRET_KEY = 'p7z7g1ql4%6+(6nlebb6hdk7sd^&fnjpal308%n%+p^_e6vo1y' + +# HTTP headers and meta keys to search to determine remote host name or IP. Add +# additional items to this list, such as "HTTP_X_FORWARDED_FOR", if behind a +# reverse proxy. +REMOTE_HOST_HEADERS = ['REMOTE_ADDR', 'REMOTE_HOST'] + +# Define additional environment variables to be passed to subprocess started by +# the celery task. +#AWX_TASK_ENV['FOO'] = 'BAR' + +# If set, use -vvv for project updates instead of -v for more output. +# PROJECT_UPDATE_VVV=True + +# Set verbosity for inventory import command when running inventory updates. +# INVENTORY_UPDATE_VERBOSITY=1 + +############################################################################### +# EMAIL SETTINGS +############################################################################### + +# Email address that error messages come from. +SERVER_EMAIL = 'root@localhost' + +# The email backend to use. For possible shortcuts see django.core.mail. +# The default is to use the SMTP backend. +# Third-party backends can be specified by providing a Python path +# to a module that defines an EmailBackend class. +EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' + +# Host for sending email. +EMAIL_HOST = 'localhost' + +# Port for sending email. +EMAIL_PORT = 25 + +# Optional SMTP authentication information for EMAIL_HOST. +EMAIL_HOST_USER = '' +EMAIL_HOST_PASSWORD = '' +EMAIL_USE_TLS = False + +# Default email address to use for various automated correspondence from +# the site managers. +DEFAULT_FROM_EMAIL = 'webmaster@localhost' + +# Subject-line prefix for email messages send with django.core.mail.mail_admins +# or ...mail_managers. Make sure to include the trailing space. +EMAIL_SUBJECT_PREFIX = '[AWX] ' + +############################################################################### +# LOGGING SETTINGS +############################################################################### + +# Enable logging to syslog. Setting level to ERROR captures 500 errors, +# WARNING also logs 4xx responses. + +LOGGING['handlers']['syslog'] = { + 'level': 'WARNING', + 'filters': ['require_debug_false'], + 'class': 'django.utils.log.NullHandler', + 'formatter': 'simple', +} + +# Enable the following lines to also log to a file. +#LOGGING['handlers']['file'] = { +# 'class': 'logging.FileHandler', +# 'filename': os.path.join(BASE_DIR, 'awx.log'), +# 'formatter': 'simple', +#} + +# Enable the following lines to turn on lots of permissions-related logging. +#LOGGING['loggers']['awx.main.access']['propagate'] = True +#LOGGING['loggers']['awx.main.signals']['propagate'] = True +#LOGGING['loggers']['awx.main.permissions']['propagate'] = True + +# Enable the following lines to turn on LDAP auth logging. +#LOGGING['loggers']['django_auth_ldap']['handlers'] = ['console'] +#LOGGING['loggers']['django_auth_ldap']['level'] = 'DEBUG' + +############################################################################### +# LDAP AUTHENTICATION SETTINGS +############################################################################### + +# Refer to django-auth-ldap docs for more details: +# http://pythonhosted.org/django-auth-ldap/authentication.html + +# LDAP server URI, such as "ldap://ldap.example.com:389" (non-SSL) or +# "ldaps://ldap.example.com:636" (SSL). LDAP authentication is disable if this +# parameter is empty. +AUTH_LDAP_SERVER_URI = '' + +# DN of user to bind for all search queries. Normally in the format +# "CN=Some User,OU=Users,DC=example,DC=com" but may also be specified as +# "DOMAIN\username" for Active Directory. +AUTH_LDAP_BIND_DN = '' + +# Password using to bind above user account. +AUTH_LDAP_BIND_PASSWORD = '' + +# Enable TLS when the connection is not using SSL. +AUTH_LDAP_START_TLS = False + +# Imports needed for remaining LDAP configuration. +import ldap +from django_auth_ldap.config import LDAPSearch, LDAPSearchUnion +from django_auth_ldap.config import ActiveDirectoryGroupType + +# LDAP search query to find users. +AUTH_LDAP_USER_SEARCH = LDAPSearch( + 'OU=Users,DC=example,DC=com', # Base DN + ldap.SCOPE_SUBTREE, # SCOPE_BASE, SCOPE_ONELEVEL, SCOPE_SUBTREE + '(sAMAccountName=%(user)s)', # Query +) + +# Alternative to user search, if user DNs are all of the same format. +#AUTH_LDAP_USER_DN_TEMPLATE = 'uid=%(user)s,OU=Users,DC=example,DC=com' + +# Mapping of LDAP to user atrributes (key is user attribute name, value is LDAP +# attribute name). +AUTH_LDAP_USER_ATTR_MAP = { + 'first_name': 'givenName', + 'last_name': 'sn', + 'email': 'mail', +} + +# LDAP search query to find groups. Does not support LDAPSearchUnion. +AUTH_LDAP_GROUP_SEARCH = LDAPSearch( + 'DC=example,DC=com', # Base DN + ldap.SCOPE_SUBTREE, # SCOPE_BASE, SCOPE_ONELEVEL, SCOPE_SUBTREE + '(objectClass=group)', # Query +) +# Type of group returned by the search above. Should be one of the types +# listed at: http://pythonhosted.org/django-auth-ldap/groups.html#types-of-groups +AUTH_LDAP_GROUP_TYPE = ActiveDirectoryGroupType() + +# Group DN required to login. If specified, user must be a member of this +# group to login via LDAP. +#AUTH_LDAP_REQUIRE_GROUP = '' + +# Group DN denied from login. If specified, user will not be allowed to login +# if a member of this group. +#AUTH_LDAP_DENY_GROUP = '' + +# User profile flags updated from group membership (key is user attribute name, +# value is group DN). +AUTH_LDAP_USER_FLAGS_BY_GROUP = { + #'is_superuser': 'CN=Domain Admins,CN=Users,DC=example,DC=com', +} + +# Mapping between organization admins/users and LDAP groups. Keys are +# organization names (will be created if not present). Values are dictionaries +# of options for each organization's membership, where each can contain the +# following parameters: +# - remove: True/False. Defaults to False. Specifies the default for +# remove_admins or remove_users if those parameters aren't explicitly set. +# - admins: None, True/False, string or list/tuple of strings. +# If None, organization admins will not be updated. +# If True/False, all LDAP users will be added/removed as admins. +# If a string or list of strings, specifies the group DN(s). User will be +# added as an org admin if the user is a member of ANY of these groups. +# - remove_admins: True/False. Defaults to False. If True, a user who is not a +# member of the given groups will be removed from the organization's admins. +# - users: None, True/False, string or list/tuple of strings. Same rules apply +# as for admins. +# - remove_users: True/False. Defaults to False. If True, a user who is not a +# member of the given groups will be removed from the organization's users. +AUTH_LDAP_ORGANIZATION_MAP = { + #'Test Org': { + # 'admins': 'CN=Domain Admins,CN=Users,DC=example,DC=com', + # 'users': ['CN=Domain Users,CN=Users,DC=example,DC=com'], + #}, + #'Test Org 2': { + # 'admins': ['CN=Administrators,CN=Builtin,DC=example,DC=com'], + # 'users': True, + #}, +} + +# Mapping between team members (users) and LDAP groups. Keys are team names +# (will be created if not present). Values are dictionaries of options for +# each team's membership, where each can contain the following parameters: +# - organization: string. The name of the organization to which the team +# belongs. The team will be created if the combination of organization and +# team name does not exist. The organization will first be created if it +# does not exist. +# - users: None, True/False, string or list/tuple of strings. +# If None, team members will not be updated. +# If True/False, all LDAP users will be added/removed as team members. +# If a string or list of strings, specifies the group DN(s). User will be +# added as a team member if the user is a member of ANY of these groups. +# - remove: True/False. Defaults to False. If True, a user who is not a member +# of the given groups will be removed from the team. +AUTH_LDAP_TEAM_MAP = { + 'My Team': { + 'organization': 'Test Org', + 'users': ['CN=Domain Users,CN=Users,DC=example,DC=com'], + 'remove': True, + }, + 'Other Team': { + 'organization': 'Test Org 2', + 'users': 'CN=Other Users,CN=Users,DC=example,DC=com', + 'remove': False, + }, +} + +############################################################################### +# SCM TEST SETTINGS +############################################################################### + +# Define these variables to enable more complete testing of project support for +# SCM updates. The test repositories listed do not have to contain any valid +# playbooks. + +try: + path = os.path.expanduser(os.path.expandvars('~/.ssh/id_rsa')) + TEST_SSH_KEY_DATA = file(path, 'rb').read() +except IOError: + TEST_SSH_KEY_DATA = '' + +TEST_GIT_USERNAME = '' +TEST_GIT_PASSWORD = '' +TEST_GIT_KEY_DATA = TEST_SSH_KEY_DATA +TEST_GIT_PUBLIC_HTTPS = 'https://github.com/ansible/ansible.github.com.git' +TEST_GIT_PRIVATE_HTTPS = 'https://github.com/ansible/product-docs.git' +TEST_GIT_PRIVATE_SSH = 'git@github.com:ansible/product-docs.git' + +TEST_HG_USERNAME = '' +TEST_HG_PASSWORD = '' +TEST_HG_KEY_DATA = TEST_SSH_KEY_DATA +TEST_HG_PUBLIC_HTTPS = 'https://bitbucket.org/cchurch/django-hotrunner' +TEST_HG_PRIVATE_HTTPS = '' +TEST_HG_PRIVATE_SSH = '' + +TEST_SVN_USERNAME = '' +TEST_SVN_PASSWORD = '' +TEST_SVN_PUBLIC_HTTPS = 'https://github.com/ansible/ansible.github.com' +TEST_SVN_PRIVATE_HTTPS = 'https://github.com/ansible/product-docs' + +# To test repo access via SSH login to localhost. +import getpass +TEST_SSH_LOOPBACK_USERNAME = getpass.getuser() +TEST_SSH_LOOPBACK_PASSWORD = '' + +############################################################################### +# LDAP TEST SETTINGS +############################################################################### + +# LDAP connection and authentication settings for unit tests only. LDAP tests +# will be skipped if TEST_AUTH_LDAP_SERVER_URI is not configured. + +TEST_AUTH_LDAP_SERVER_URI = '' +TEST_AUTH_LDAP_BIND_DN = '' +TEST_AUTH_LDAP_BIND_PASSWORD = '' +TEST_AUTH_LDAP_START_TLS = False + +# LDAP username/password for testing authentication. +TEST_AUTH_LDAP_USERNAME = '' +TEST_AUTH_LDAP_PASSWORD = '' + +# LDAP search query to find users. +TEST_AUTH_LDAP_USER_SEARCH = LDAPSearch( + 'CN=Users,DC=example,DC=com', + ldap.SCOPE_SUBTREE, + '(sAMAccountName=%(user)s)', +) + +# Alternative to user search. +#TEST_AUTH_LDAP_USER_DN_TEMPLATE = 'sAMAccountName=%(user)s,OU=Users,DC=example,DC=com' + +# Mapping of LDAP attributes to user attributes. +TEST_AUTH_LDAP_USER_ATTR_MAP = { + 'first_name': 'givenName', + 'last_name': 'sn', + 'email': 'mail', +} + +# LDAP search query for finding groups. +TEST_AUTH_LDAP_GROUP_SEARCH = LDAPSearch( + 'DC=example,DC=com', + ldap.SCOPE_SUBTREE, + '(objectClass=group)', +) +# Type of group returned by the search above. +TEST_AUTH_LDAP_GROUP_TYPE = ActiveDirectoryGroupType() + +# Test DNs for a group required to login. User should be a member of the first +# group, but not a member of the second. +TEST_AUTH_LDAP_REQUIRE_GROUP = 'CN=Domain Admins,CN=Users,DC=example,DC=com' +TEST_AUTH_LDAP_REQUIRE_GROUP_FAIL = 'CN=Guest,CN=Users,DC=example,DC=com' + +# Test DNs for a group denied from login. User should not be a member of the +# first group, but should be a member of the second. +TEST_AUTH_LDAP_DENY_GROUP = 'CN=Guest,CN=Users,DC=example,DC=com' +TEST_AUTH_LDAP_DENY_GROUP_FAIL = 'CN=Domain Admins,CN=Users,DC=example,DC=com' + +# User profile flags updated from group membership. Test user should be a +# member of the group. +TEST_AUTH_LDAP_USER_FLAGS_BY_GROUP = { + 'is_superuser': 'CN=Domain Admins,CN=Users,DC=example,DC=com', +} + +# Test mapping between organization admins/users and LDAP groups. +TEST_AUTH_LDAP_ORGANIZATION_MAP = { + 'Test Org': { + 'admins': 'CN=Domain Admins,CN=Users,DC=example,DC=com', + 'users': ['CN=Domain Users,CN=Users,DC=example,DC=com'], + }, + 'Test Org 2': { + 'admins': ['CN=Administrators,CN=Builtin,DC=example,DC=com'], + 'users': True, + }, +} +# Expected results from organization mapping. After login, should user be an +# admin/user in the given organization? +TEST_AUTH_LDAP_ORGANIZATION_MAP_RESULT = { + 'Test Org': {'admins': True, 'users': False}, + 'Test Org 2': {'admins': False, 'users': True}, +} + +# Second test mapping to test remove parameters. +TEST_AUTH_LDAP_ORGANIZATION_MAP_2 = { + 'Test Org': { + 'admins': 'CN=Domain Users,CN=Users,DC=example,DC=com', + 'users': True, + 'remove_admins': True, + 'remove_users': False, + }, + 'Test Org 2': { + 'admins': ['CN=Domain Admins,CN=Users,DC=example,DC=com', + 'CN=Administrators,CN=Builtin,DC=example,DC=com'], + 'users': False, + 'remove': True, + }, +} + +# Expected results from second organization mapping. +TEST_AUTH_LDAP_ORGANIZATION_MAP_2_RESULT = { + 'Test Org': {'admins': False, 'users': True}, + 'Test Org 2': {'admins': True, 'users': False}, +} + +# Test mapping between team users and LDAP groups. +TEST_AUTH_LDAP_TEAM_MAP = { + 'Domain Users Team': { + 'organization': 'Test Org', + 'users': ['CN=Domain Users,CN=Users,DC=example,DC=com'], + 'remove': False, + }, + 'Admins Team': { + 'organization': 'Admins Org', + 'users': 'CN=Domain Admins,CN=Users,DC=example,DC=com', + 'remove': True, + }, + 'Everyone Team': { + 'organization': 'Test Org 2', + 'users': True, + }, +} +# Expected results from team mapping. After login, should user be a member of +# the given team? +TEST_AUTH_LDAP_TEAM_MAP_RESULT = { + 'Domain Users Team': {'users': False}, + 'Admins Team': {'users': True}, + 'Everyone Team': {'users': True}, +} + +# Second test mapping for teams to remove user. +TEST_AUTH_LDAP_TEAM_MAP_2 = { + 'Domain Users Team': { + 'organization': 'Test Org', + 'users': ['CN=Domain Users,CN=Users,DC=example,DC=com'], + 'remove': False, + }, + 'Admins Team': { + 'organization': 'Admins Org', + 'users': 'CN=Administrators,CN=Builtin,DC=example,DC=com', + 'remove': True, + }, + 'Everyone Team': { + 'organization': 'Test Org 2', + 'users': False, + 'remove': False, + }, +} +# Expected results from second team mapping. After login, should user be a +# member of the given team? +TEST_AUTH_LDAP_TEAM_MAP_2_RESULT = { + 'Domain Users Team': {'users': False}, + 'Admins Team': {'users': False}, + 'Everyone Team': {'users': True}, +} + +############################################################################### +# RADIUS AUTH SETTINGS +############################################################################### + +RADIUS_SERVER = '' +RADIUS_PORT = 1812 +RADIUS_SECRET = '' + +############################################################################### +# SOCIAL AUTH SETTINGS +############################################################################### + +SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = '' +SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = '' +#SOCIAL_AUTH_GOOGLE_OAUTH2_SCOPE = ['profile'] +#SOCIAL_AUTH_GOOGLE_OAUTH2_WHITELISTED_DOMAINS = ['example.com'] +#SOCIAL_AUTH_GOOGLE_OAUTH2_AUTH_EXTRA_ARGUMENTS = {'hd': 'example.com'} + +SOCIAL_AUTH_GITHUB_KEY = '' +SOCIAL_AUTH_GITHUB_SECRET = '' + +SOCIAL_AUTH_GITHUB_ORG_KEY = '' +SOCIAL_AUTH_GITHUB_ORG_SECRET = '' +SOCIAL_AUTH_GITHUB_ORG_NAME = '' + +SOCIAL_AUTH_GITHUB_TEAM_KEY = '' +SOCIAL_AUTH_GITHUB_TEAM_SECRET = '' +SOCIAL_AUTH_GITHUB_TEAM_ID = '' + +SOCIAL_AUTH_SAML_SP_ENTITY_ID = '' +SOCIAL_AUTH_SAML_SP_PUBLIC_CERT = '' +SOCIAL_AUTH_SAML_SP_PRIVATE_KEY = '' +SOCIAL_AUTH_SAML_ORG_INFO = { + 'en-US': { + 'name': 'example', + 'displayname': 'Example', + 'url': 'http://www.example.com', + }, +} +SOCIAL_AUTH_SAML_TECHNICAL_CONTACT = { + 'givenName': 'Some User', + 'emailAddress': 'suser@example.com', +} +SOCIAL_AUTH_SAML_SUPPORT_CONTACT = { + 'givenName': 'Some User', + 'emailAddress': 'suser@example.com', +} +SOCIAL_AUTH_SAML_ENABLED_IDPS = { + #'myidp': { + # 'entity_id': 'https://idp.example.com', + # 'url': 'https://myidp.example.com/sso', + # 'x509cert': '', + #}, + #'onelogin': { + # 'entity_id': 'https://app.onelogin.com/saml/metadata/123456', + # 'url': 'https://example.onelogin.com/trust/saml2/http-post/sso/123456', + # 'x509cert': '', + # 'attr_user_permanent_id': 'name_id', + # 'attr_first_name': 'User.FirstName', + # 'attr_last_name': 'User.LastName', + # 'attr_username': 'User.email', + # 'attr_email': 'User.email', + #}, +} + +SOCIAL_AUTH_ORGANIZATION_MAP = { + # Add all users to the default organization. + 'Default': { + 'users': True, + }, + #'Test Org': { + # 'admins': ['admin@example.com'], + # 'users': True, + #}, + #'Test Org 2': { + # 'admins': ['admin@example.com', re.compile(r'^tower-[^@]+*?@.*$], + # 'users': re.compile(r'^[^@].*?@example\.com$'), + #}, +} + +#SOCIAL_AUTH_GOOGLE_OAUTH2_ORGANIZATION_MAP = {} +#SOCIAL_AUTH_GITHUB_ORGANIZATION_MAP = {} +#SOCIAL_AUTH_GITHUB_ORG_ORGANIZATION_MAP = {} +#SOCIAL_AUTH_GITHUB_TEAM_ORGANIZATION_MAP = {} +#SOCIAL_AUTH_SAML_ORGANIZATION_MAP = {} + +SOCIAL_AUTH_TEAM_MAP = { + #'My Team': { + # 'organization': 'Test Org', + # 'users': ['re.compile(r'^[^@]+?@test\.example\.com$')'], + # 'remove': True, + #}, + #'Other Team': { + # 'organization': 'Test Org 2', + # 'users': re.compile(r'^[^@]+?@test2\.example\.com$'), + # 'remove': False, + #}, +} + +#SOCIAL_AUTH_GOOGLE_OAUTH2_TEAM_MAP = {} +#SOCIAL_AUTH_GITHUB_TEAM_MAP = {} +#SOCIAL_AUTH_GITHUB_ORG_TEAM_MAP = {} +#SOCIAL_AUTH_GITHUB_TEAM_TEAM_MAP = {} +#SOCIAL_AUTH_SAML_TEAM_MAP = {} + +# Uncomment the line below (i.e. set SOCIAL_AUTH_USER_FIELDS to an empty list) +# to prevent new user accounts from being created. Only users who have +# previously logged in using social auth or have a user account with a matching +# email address will be able to login. + +#SOCIAL_AUTH_USER_FIELDS = [] + +# It is also possible to add custom functions to the social auth pipeline for +# more advanced organization and team mapping. Use at your own risk. + +#def custom_social_auth_pipeline_function(backend, details, user=None, *args, **kwargs): +# print 'custom:', backend, details, user, args, kwargs + +#SOCIAL_AUTH_PIPELINE += ( +# 'awx.settings.development.custom_social_auth_pipeline_function', +#) + +############################################################################### +# INVENTORY IMPORT TEST SETTINGS +############################################################################### + +# Define these variables to enable more complete testing of inventory import +# from cloud providers. + +# EC2 credentials +TEST_AWS_ACCESS_KEY_ID = '' +TEST_AWS_SECRET_ACCESS_KEY = '' +TEST_AWS_REGIONS = 'all' +# Check IAM STS credentials +TEST_AWS_SECURITY_TOKEN = '' + +# Rackspace credentials +TEST_RACKSPACE_USERNAME = '' +TEST_RACKSPACE_API_KEY = '' +TEST_RACKSPACE_REGIONS = 'all' + +# VMware credentials +TEST_VMWARE_HOST = '' +TEST_VMWARE_USER = '' +TEST_VMWARE_PASSWORD = '' + +# OpenStack credentials +TEST_OPENSTACK_HOST = '' +TEST_OPENSTACK_USER = '' +TEST_OPENSTACK_PASSWORD = '' +TEST_OPENSTACK_PROJECT = '' + +# Azure credentials. +TEST_AZURE_USERNAME = '' +TEST_AZURE_KEY_DATA = '' diff --git a/awx/settings/local_settings.py.example b/awx/settings/local_settings.py.example index 042614c32d..ad41c27600 100644 --- a/awx/settings/local_settings.py.example +++ b/awx/settings/local_settings.py.example @@ -470,6 +470,128 @@ TEST_AUTH_LDAP_TEAM_MAP_2_RESULT = { 'Everyone Team': {'users': True}, } +############################################################################### +# RADIUS AUTH SETTINGS +############################################################################### + +RADIUS_SERVER = '' +RADIUS_PORT = 1812 +RADIUS_SECRET = '' + +############################################################################### +# SOCIAL AUTH SETTINGS +############################################################################### + +SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = '' +SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = '' +#SOCIAL_AUTH_GOOGLE_OAUTH2_SCOPE = ['profile'] +#SOCIAL_AUTH_GOOGLE_OAUTH2_WHITELISTED_DOMAINS = ['example.com'] +#SOCIAL_AUTH_GOOGLE_OAUTH2_AUTH_EXTRA_ARGUMENTS = {'hd': 'example.com'} + +SOCIAL_AUTH_GITHUB_KEY = '' +SOCIAL_AUTH_GITHUB_SECRET = '' + +SOCIAL_AUTH_GITHUB_ORG_KEY = '' +SOCIAL_AUTH_GITHUB_ORG_SECRET = '' +SOCIAL_AUTH_GITHUB_ORG_NAME = '' + +SOCIAL_AUTH_GITHUB_TEAM_KEY = '' +SOCIAL_AUTH_GITHUB_TEAM_SECRET = '' +SOCIAL_AUTH_GITHUB_TEAM_ID = '' + +SOCIAL_AUTH_SAML_SP_ENTITY_ID = '' +SOCIAL_AUTH_SAML_SP_PUBLIC_CERT = '' +SOCIAL_AUTH_SAML_SP_PRIVATE_KEY = '' +SOCIAL_AUTH_SAML_ORG_INFO = { + 'en-US': { + 'name': 'example', + 'displayname': 'Example', + 'url': 'http://www.example.com', + }, +} +SOCIAL_AUTH_SAML_TECHNICAL_CONTACT = { + 'givenName': 'Some User', + 'emailAddress': 'suser@example.com', +} +SOCIAL_AUTH_SAML_SUPPORT_CONTACT = { + 'givenName': 'Some User', + 'emailAddress': 'suser@example.com', +} +SOCIAL_AUTH_SAML_ENABLED_IDPS = { + #'myidp': { + # 'entity_id': 'https://idp.example.com', + # 'url': 'https://myidp.example.com/sso', + # 'x509cert': '', + #}, + #'onelogin': { + # 'entity_id': 'https://app.onelogin.com/saml/metadata/123456', + # 'url': 'https://example.onelogin.com/trust/saml2/http-post/sso/123456', + # 'x509cert': '', + # 'attr_user_permanent_id': 'name_id', + # 'attr_first_name': 'User.FirstName', + # 'attr_last_name': 'User.LastName', + # 'attr_username': 'User.email', + # 'attr_email': 'User.email', + #}, +} + +SOCIAL_AUTH_ORGANIZATION_MAP = { + # Add all users to the default organization. + 'Default': { + 'users': True, + }, + #'Test Org': { + # 'admins': ['admin@example.com'], + # 'users': True, + #}, + #'Test Org 2': { + # 'admins': ['admin@example.com', re.compile(r'^tower-[^@]+*?@.*$], + # 'users': re.compile(r'^[^@].*?@example\.com$'), + #}, +} + +#SOCIAL_AUTH_GOOGLE_OAUTH2_ORGANIZATION_MAP = {} +#SOCIAL_AUTH_GITHUB_ORGANIZATION_MAP = {} +#SOCIAL_AUTH_GITHUB_ORG_ORGANIZATION_MAP = {} +#SOCIAL_AUTH_GITHUB_TEAM_ORGANIZATION_MAP = {} +#SOCIAL_AUTH_SAML_ORGANIZATION_MAP = {} + +SOCIAL_AUTH_TEAM_MAP = { + #'My Team': { + # 'organization': 'Test Org', + # 'users': ['re.compile(r'^[^@]+?@test\.example\.com$')'], + # 'remove': True, + #}, + #'Other Team': { + # 'organization': 'Test Org 2', + # 'users': re.compile(r'^[^@]+?@test2\.example\.com$'), + # 'remove': False, + #}, +} + +#SOCIAL_AUTH_GOOGLE_OAUTH2_TEAM_MAP = {} +#SOCIAL_AUTH_GITHUB_TEAM_MAP = {} +#SOCIAL_AUTH_GITHUB_ORG_TEAM_MAP = {} +#SOCIAL_AUTH_GITHUB_TEAM_TEAM_MAP = {} +#SOCIAL_AUTH_SAML_TEAM_MAP = {} + +# Uncomment the line below (i.e. set SOCIAL_AUTH_USER_FIELDS to an empty list) +# to prevent new user accounts from being created. Only users who have +# previously logged in using social auth or have a user account with a matching +# email address will be able to login. + +#SOCIAL_AUTH_USER_FIELDS = [] + +# It is also possible to add custom functions to the social auth pipeline for +# more advanced organization and team mapping. Use at your own risk. + +#def custom_social_auth_pipeline_function(backend, details, user=None, *args, **kwargs): +# print 'custom:', backend, details, user, args, kwargs + +#SOCIAL_AUTH_PIPELINE += ( +# 'awx.settings.development.custom_social_auth_pipeline_function', +#) + ############################################################################### # INVENTORY IMPORT TEST SETTINGS ############################################################################### @@ -481,6 +603,9 @@ TEST_AUTH_LDAP_TEAM_MAP_2_RESULT = { TEST_AWS_ACCESS_KEY_ID = '' TEST_AWS_SECRET_ACCESS_KEY = '' TEST_AWS_REGIONS = 'all' +# Check IAM STS credentials +TEST_AWS_SECURITY_TOKEN = '' + # Rackspace credentials TEST_RACKSPACE_USERNAME = '' diff --git a/awx/settings/postprocess.py b/awx/settings/postprocess.py new file mode 100644 index 0000000000..544758e04f --- /dev/null +++ b/awx/settings/postprocess.py @@ -0,0 +1,34 @@ +# Copyright (c) 2015 Ansible, Inc. +# All Rights Reserved. + +# flake8: noqa + +# Runs after all configuration files have been loaded to fix/check/update +# settings as needed. + +if not AUTH_LDAP_SERVER_URI: + AUTHENTICATION_BACKENDS = [x for x in AUTHENTICATION_BACKENDS if x != 'awx.sso.backends.LDAPBackend'] + +if not RADIUS_SERVER: + AUTHENTICATION_BACKENDS = [x for x in AUTHENTICATION_BACKENDS if x != 'awx.sso.backends.RADIUSBackend'] + +if not all([SOCIAL_AUTH_GOOGLE_OAUTH2_KEY, SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET]): + AUTHENTICATION_BACKENDS = [x for x in AUTHENTICATION_BACKENDS if x != 'social.backends.google.GoogleOAuth2'] + +if not all([SOCIAL_AUTH_GITHUB_KEY, SOCIAL_AUTH_GITHUB_SECRET]): + AUTHENTICATION_BACKENDS = [x for x in AUTHENTICATION_BACKENDS if x != 'social.backends.github.GithubOAuth2'] + +if not all([SOCIAL_AUTH_GITHUB_ORG_KEY, SOCIAL_AUTH_GITHUB_ORG_SECRET, SOCIAL_AUTH_GITHUB_ORG_NAME]): + AUTHENTICATION_BACKENDS = [x for x in AUTHENTICATION_BACKENDS if x != 'social.backends.github.GithubOrganizationOAuth2'] + +if not all([SOCIAL_AUTH_GITHUB_TEAM_KEY, SOCIAL_AUTH_GITHUB_TEAM_SECRET, SOCIAL_AUTH_GITHUB_TEAM_ID]): + AUTHENTICATION_BACKENDS = [x for x in AUTHENTICATION_BACKENDS if x != 'social.backends.github.GithubTeamOAuth2'] + +if not all([SOCIAL_AUTH_SAML_SP_ENTITY_ID, SOCIAL_AUTH_SAML_SP_PUBLIC_CERT, + SOCIAL_AUTH_SAML_SP_PRIVATE_KEY, SOCIAL_AUTH_SAML_ORG_INFO, + SOCIAL_AUTH_SAML_TECHNICAL_CONTACT, SOCIAL_AUTH_SAML_SUPPORT_CONTACT, + SOCIAL_AUTH_SAML_ENABLED_IDPS]): + AUTHENTICATION_BACKENDS = [x for x in AUTHENTICATION_BACKENDS if x != 'awx.sso.backends.SAMLAuth'] + +if not AUTH_BASIC_ENABLED: + REST_FRAMEWORK['DEFAULT_AUTHENTICATION_CLASSES'] = [x for x in REST_FRAMEWORK['DEFAULT_AUTHENTICATION_CLASSES'] if x != 'rest_framework.authentication.BasicAuthentication'] diff --git a/awx/settings/production.py b/awx/settings/production.py index 32472e8548..397f48070a 100644 --- a/awx/settings/production.py +++ b/awx/settings/production.py @@ -108,11 +108,8 @@ settings_file = os.environ.get('AWX_SETTINGS_FILE', # Attempt to load settings from /etc/tower/settings.py first, followed by # /etc/tower/conf.d/*.py. try: - include( - settings_file, - optional(settings_files), - scope=locals(), - ) + include(settings_file, optional(settings_files), scope=locals()) + include('postprocess.py', scope=locals()) except ImportError: traceback.print_exc() sys.exit(1) diff --git a/awx/sso/__init__.py b/awx/sso/__init__.py new file mode 100644 index 0000000000..e484e62be1 --- /dev/null +++ b/awx/sso/__init__.py @@ -0,0 +1,2 @@ +# Copyright (c) 2015 Ansible, Inc. +# All Rights Reserved. diff --git a/awx/sso/backends.py b/awx/sso/backends.py new file mode 100644 index 0000000000..d033fcab9b --- /dev/null +++ b/awx/sso/backends.py @@ -0,0 +1,232 @@ +# Copyright (c) 2015 Ansible, Inc. +# All Rights Reserved. + +# Python +import logging + +# Django +from django.dispatch import receiver +from django.conf import settings as django_settings + +# django-auth-ldap +from django_auth_ldap.backend import LDAPSettings as BaseLDAPSettings +from django_auth_ldap.backend import LDAPBackend as BaseLDAPBackend +from django_auth_ldap.backend import populate_user + +# radiusauth +from radiusauth.backends import RADIUSBackend as BaseRADIUSBackend + +# social +from social.backends.saml import OID_USERID +from social.backends.saml import SAMLAuth as BaseSAMLAuth +from social.backends.saml import SAMLIdentityProvider as BaseSAMLIdentityProvider + +# Ansible Tower +from awx.api.license import feature_enabled + +logger = logging.getLogger('awx.sso.backends') + + +class LDAPSettings(BaseLDAPSettings): + + defaults = dict(BaseLDAPSettings.defaults.items() + { + 'ORGANIZATION_MAP': {}, + 'TEAM_MAP': {}, + }.items()) + + +class LDAPBackend(BaseLDAPBackend): + ''' + Custom LDAP backend for AWX. + ''' + + settings_prefix = 'AUTH_LDAP_' + + def _get_settings(self): + if self._settings is None: + self._settings = LDAPSettings(self.settings_prefix) + return self._settings + + def _set_settings(self, settings): + self._settings = settings + + settings = property(_get_settings, _set_settings) + + def authenticate(self, username, password): + if not self.settings.SERVER_URI: + return None + if not feature_enabled('ldap'): + logger.error("Unable to authenticate, license does not support LDAP authentication") + return None + return super(LDAPBackend, self).authenticate(username, password) + + def get_user(self, user_id): + if not self.settings.SERVER_URI: + return None + if not feature_enabled('ldap'): + logger.error("Unable to get_user, license does not support LDAP authentication") + return None + return super(LDAPBackend, self).get_user(user_id) + + # Disable any LDAP based authorization / permissions checking. + + def has_perm(self, user, perm, obj=None): + return False + + def has_module_perms(self, user, app_label): + return False + + def get_all_permissions(self, user, obj=None): + return set() + + def get_group_permissions(self, user, obj=None): + return set() + + +class RADIUSBackend(BaseRADIUSBackend): + ''' + Custom Radius backend to verify license status + ''' + + def authenticate(self, username, password): + if not django_settings.RADIUS_SERVER: + return None + if not feature_enabled('enterprise_auth'): + logger.error("Unable to authenticate, license does not support RADIUS authentication") + return None + return super(RADIUSBackend, self).authenticate(username, password) + + def get_user(self, user_id): + if not django_settings.RADIUS_SERVER: + return None + if not feature_enabled('enterprise_auth'): + logger.error("Unable to get_user, license does not support RADIUS authentication") + return None + return super(RADIUSBackend, self).get_user(user_id) + + +class TowerSAMLIdentityProvider(BaseSAMLIdentityProvider): + ''' + Custom Identity Provider to make attributes to what we expect. + ''' + + def get_user_permanent_id(self, attributes): + uid = attributes[self.conf.get('attr_user_permanent_id', OID_USERID)] + if isinstance(uid, basestring): + return uid + return uid[0] + + def get_attr(self, attributes, conf_key, default_attribute): + """ + Get the attribute 'default_attribute' out of the attributes, + unless self.conf[conf_key] overrides the default by specifying + another attribute to use. + """ + key = self.conf.get(conf_key, default_attribute) + value = attributes[key][0] if key in attributes else None + if conf_key in ('attr_first_name', 'attr_last_name', 'attr_username', 'attr_email') and value is None: + logger.warn("Could not map user detail '%s' from SAML attribute '%s'; " + "update SOCIAL_AUTH_SAML_ENABLED_IDPS['%s']['%s'] with the correct SAML attribute.", + conf_key[5:], key, self.name, conf_key) + return unicode(value) if value is not None else value + + +class SAMLAuth(BaseSAMLAuth): + ''' + Custom SAMLAuth backend to verify license status + ''' + + def get_idp(self, idp_name): + idp_config = self.setting('ENABLED_IDPS')[idp_name] + return TowerSAMLIdentityProvider(idp_name, **idp_config) + + def authenticate(self, *args, **kwargs): + if not all([django_settings.SOCIAL_AUTH_SAML_SP_ENTITY_ID, django_settings.SOCIAL_AUTH_SAML_SP_PUBLIC_CERT, + django_settings.SOCIAL_AUTH_SAML_SP_PRIVATE_KEY, django_settings.SOCIAL_AUTH_SAML_ORG_INFO, + django_settings.SOCIAL_AUTH_SAML_TECHNICAL_CONTACT, django_settings.SOCIAL_AUTH_SAML_SUPPORT_CONTACT, + django_settings.SOCIAL_AUTH_SAML_ENABLED_IDPS]): + return None + if not feature_enabled('enterprise_auth'): + logger.error("Unable to authenticate, license does not support SAML authentication") + return None + return super(SAMLAuth, self).authenticate(*args, **kwargs) + + def get_user(self, user_id): + if not all([django_settings.SOCIAL_AUTH_SAML_SP_ENTITY_ID, django_settings.SOCIAL_AUTH_SAML_SP_PUBLIC_CERT, + django_settings.SOCIAL_AUTH_SAML_SP_PRIVATE_KEY, django_settings.SOCIAL_AUTH_SAML_ORG_INFO, + django_settings.SOCIAL_AUTH_SAML_TECHNICAL_CONTACT, django_settings.SOCIAL_AUTH_SAML_SUPPORT_CONTACT, + django_settings.SOCIAL_AUTH_SAML_ENABLED_IDPS]): + return None + if not feature_enabled('enterprise_auth'): + logger.error("Unable to get_user, license does not support SAML authentication") + return None + return super(SAMLAuth, self).get_user(user_id) + + +def _update_m2m_from_groups(user, ldap_user, rel, opts, remove=False): + ''' + Hepler function to update m2m relationship based on LDAP group membership. + ''' + should_add = False + if opts is None: + return + elif not opts: + pass + elif opts is True: + should_add = True + else: + if isinstance(opts, basestring): + opts = [opts] + for group_dn in opts: + if not isinstance(group_dn, basestring): + continue + if ldap_user._get_groups().is_member_of(group_dn): + should_add = True + if should_add: + rel.add(user) + elif remove: + rel.remove(user) + + +@receiver(populate_user) +def on_populate_user(sender, **kwargs): + ''' + Handle signal from LDAP backend to populate the user object. Update user + organization/team memberships according to their LDAP groups. + ''' + from awx.main.models import Organization, Team + user = kwargs['user'] + ldap_user = kwargs['ldap_user'] + backend = ldap_user.backend + + # Update organization membership based on group memberships. + org_map = getattr(backend.settings, 'ORGANIZATION_MAP', {}) + for org_name, org_opts in org_map.items(): + org, created = Organization.objects.get_or_create(name=org_name) + remove = bool(org_opts.get('remove', False)) + admins_opts = org_opts.get('admins', None) + remove_admins = bool(org_opts.get('remove_admins', remove)) + _update_m2m_from_groups(user, ldap_user, org.admins, admins_opts, + remove_admins) + users_opts = org_opts.get('users', None) + remove_users = bool(org_opts.get('remove_users', remove)) + _update_m2m_from_groups(user, ldap_user, org.users, users_opts, + remove_users) + + # Update team membership based on group memberships. + team_map = getattr(backend.settings, 'TEAM_MAP', {}) + for team_name, team_opts in team_map.items(): + if 'organization' not in team_opts: + continue + org, created = Organization.objects.get_or_create(name=team_opts['organization']) + team, created = Team.objects.get_or_create(name=team_name, organization=org) + users_opts = team_opts.get('users', None) + remove = bool(team_opts.get('remove', False)) + _update_m2m_from_groups(user, ldap_user, team.users, users_opts, + remove) + + # Update user profile to store LDAP DN. + profile = user.profile + if profile.ldap_dn != ldap_user.dn: + profile.ldap_dn = ldap_user.dn + profile.save() diff --git a/awx/sso/middleware.py b/awx/sso/middleware.py new file mode 100644 index 0000000000..012bcefd55 --- /dev/null +++ b/awx/sso/middleware.py @@ -0,0 +1,91 @@ +# Copyright (c) 2015 Ansible, Inc. +# All Rights Reserved. + +# Python +import urllib + +# Six +import six + +# Django +from django.contrib.auth import login, logout +from django.shortcuts import redirect +from django.utils.timezone import now + +# Python Social Auth +from social.exceptions import SocialAuthBaseException +from social.utils import social_logger +from social.apps.django_app.middleware import SocialAuthExceptionMiddleware + +# Ansible Tower +from awx.main.models import AuthToken + + +class SocialAuthMiddleware(SocialAuthExceptionMiddleware): + + def process_request(self, request): + token_key = request.COOKIES.get('token', '') + token_key = urllib.quote(urllib.unquote(token_key).strip('"')) + + if not hasattr(request, 'successful_authenticator'): + request.successful_authenticator = None + + if not request.path.startswith('/sso/'): + + # If token isn't present but we still have a user logged in via Django + # sessions, log them out. + if not token_key and request.user and request.user.is_authenticated(): + logout(request) + + # If a token is present, make sure it matches a valid one in the + # database, and log the user via Django session if necessary. + # Otherwise, log the user out via Django sessions. + elif token_key: + + try: + auth_token = AuthToken.objects.filter(key=token_key, expires__gt=now())[0] + except IndexError: + auth_token = None + + if not auth_token and request.user and request.user.is_authenticated(): + logout(request) + elif auth_token and request.user != auth_token.user: + logout(request) + auth_token.user.backend = '' + login(request, auth_token.user) + auth_token.refresh() + + if auth_token and request.user and request.user.is_authenticated(): + request.session.pop('social_auth_error', None) + + def process_exception(self, request, exception): + strategy = getattr(request, 'social_strategy', None) + if strategy is None or self.raise_exception(request, exception): + return + + if isinstance(exception, SocialAuthBaseException) or request.path.startswith('/sso/'): + backend = getattr(request, 'backend', None) + backend_name = getattr(backend, 'name', 'unknown-backend') + full_backend_name = backend_name + try: + idp_name = strategy.request_data()['RelayState'] + full_backend_name = '%s:%s' % (backend_name, idp_name) + except KeyError: + pass + + message = self.get_message(request, exception) + social_logger.error(message) + + url = self.get_redirect_uri(request, exception) + request.session['social_auth_error'] = (full_backend_name, message) + return redirect(url) + + def get_message(self, request, exception): + msg = six.text_type(exception) + if msg and msg[-1] not in '.?!': + msg = msg + '.' + return msg + + def get_redirect_uri(self, request, exception): + strategy = getattr(request, 'social_strategy', None) + return strategy.session_get('next', '') or strategy.setting('LOGIN_ERROR_URL') diff --git a/awx/sso/models.py b/awx/sso/models.py new file mode 100644 index 0000000000..e484e62be1 --- /dev/null +++ b/awx/sso/models.py @@ -0,0 +1,2 @@ +# Copyright (c) 2015 Ansible, Inc. +# All Rights Reserved. diff --git a/awx/sso/pipeline.py b/awx/sso/pipeline.py new file mode 100644 index 0000000000..7000d050ee --- /dev/null +++ b/awx/sso/pipeline.py @@ -0,0 +1,137 @@ +# Copyright (c) 2015 Ansible, Inc. +# All Rights Reserved. + +# Python +import re + +# Python Social Auth +from social.exceptions import AuthException + +# Tower +from awx.api.license import feature_enabled + + +class AuthNotFound(AuthException): + + def __init__(self, backend, email_or_uid, *args, **kwargs): + self.email_or_uid = email_or_uid + super(AuthNotFound, self).__init__(backend, *args, **kwargs) + + def __str__(self): + return 'An account cannot be found for {0}'.format(self.email_or_uid) + + +class AuthInactive(AuthException): + + def __str__(self): + return 'Your account is inactive' + + +def check_user_found_or_created(backend, details, user=None, *args, **kwargs): + if not user: + email_or_uid = details.get('email') or kwargs.get('email') or kwargs.get('uid') or '???' + raise AuthNotFound(backend, email_or_uid) + + +def set_is_active_for_new_user(strategy, details, user=None, *args, **kwargs): + if kwargs.get('is_new', False): + details['is_active'] = True + return {'details': details} + + +def prevent_inactive_login(backend, details, user=None, *args, **kwargs): + if user and not user.is_active: + raise AuthInactive(backend) + + +def _update_m2m_from_expression(user, rel, expr, remove=False): + ''' + Helper function to update m2m relationship based on user matching one or + more expressions. + ''' + should_add = False + if expr is None: + return + elif not expr: + pass + elif expr is True: + should_add = True + else: + if isinstance(expr, (basestring, type(re.compile('')))): + expr = [expr] + for ex in expr: + if isinstance(ex, basestring): + if user.username == ex or user.email == ex: + should_add = True + elif isinstance(ex, type(re.compile(''))): + if ex.match(user.username) or ex.match(user.email): + should_add = True + if should_add: + rel.add(user) + elif remove: + rel.remove(user) + + +def update_user_orgs(backend, details, user=None, *args, **kwargs): + ''' + Update organization memberships for the given user based on mapping rules + defined in settings. + ''' + if not user: + return + from awx.main.models import Organization + multiple_orgs = feature_enabled('multiple_organizations') + org_map = backend.setting('ORGANIZATION_MAP') or {} + for org_name, org_opts in org_map.items(): + + # Get or create the org to update. If the license only allows for one + # org, always use the first active org, unless no org exists. + if multiple_orgs: + org = Organization.objects.get_or_create(name=org_name)[0] + else: + try: + org = Organization.objects.filter(active=True).order_by('pk')[0] + except IndexError: + continue + + # Update org admins from expression(s). + remove = bool(org_opts.get('remove', False)) + admins_expr = org_opts.get('admins', None) + remove_admins = bool(org_opts.get('remove_admins', remove)) + _update_m2m_from_expression(user, org.admins, admins_expr, remove_admins) + + # Update org users from expression(s). + users_expr = org_opts.get('users', None) + remove_users = bool(org_opts.get('remove_users', remove)) + _update_m2m_from_expression(user, org.users, users_expr, remove_users) + + +def update_user_teams(backend, details, user=None, *args, **kwargs): + ''' + Update team memberships for the given user based on mapping rules defined + in settings. + ''' + if not user: + return + from awx.main.models import Organization, Team + multiple_orgs = feature_enabled('multiple_organizations') + team_map = backend.setting('TEAM_MAP') or {} + for team_name, team_opts in team_map.items(): + + # Get or create the org to update. If the license only allows for one + # org, always use the first active org, unless no org exists. + if multiple_orgs: + if 'organization' not in team_opts: + continue + org = Organization.objects.get_or_create(name=team_opts['organization'])[0] + else: + try: + org = Organization.objects.filter(active=True).order_by('pk')[0] + except IndexError: + continue + + # Update team members from expression(s). + team = Team.objects.get_or_create(name=team_name, organization=org)[0] + users_expr = team_opts.get('users', None) + remove = bool(team_opts.get('remove', False)) + _update_m2m_from_expression(user, team.users, users_expr, remove) diff --git a/awx/sso/urls.py b/awx/sso/urls.py new file mode 100644 index 0000000000..876b697146 --- /dev/null +++ b/awx/sso/urls.py @@ -0,0 +1,13 @@ +# Copyright (c) 2015 Ansible, Inc. +# All Rights Reserved. + +# Django +from django.conf.urls import patterns, url + +urlpatterns = patterns( + 'awx.sso.views', + url(r'^complete/$', 'sso_complete', name='sso_complete'), + url(r'^error/$', 'sso_error', name='sso_error'), + url(r'^inactive/$', 'sso_inactive', name='sso_inactive'), + url(r'^metadata/saml/$', 'saml_metadata', name='saml_metadata'), +) diff --git a/awx/sso/views.py b/awx/sso/views.py new file mode 100644 index 0000000000..a75bcd96ae --- /dev/null +++ b/awx/sso/views.py @@ -0,0 +1,84 @@ +# Copyright (c) 2015 Ansible, Inc. +# All Rights Reserved. + +# Python +import urllib + +# Django +from django.core.urlresolvers import reverse +from django.http import HttpResponse +from django.utils.timezone import now, utc +from django.views.generic import View +from django.views.generic.base import RedirectView + +# Django REST Framework +from rest_framework.renderers import JSONRenderer + +# Ansible Tower +from awx.main.models import AuthToken +from awx.api.serializers import UserSerializer + + +class BaseRedirectView(RedirectView): + + def get_redirect_url(self, *args, **kwargs): + last_path = self.request.COOKIES.get('lastPath', '') + last_path = urllib.quote(urllib.unquote(last_path).strip('"')) + url = reverse('ui:index') + if last_path: + return '%s#%s' % (url, last_path) + else: + return url + +sso_error = BaseRedirectView.as_view() +sso_inactive = BaseRedirectView.as_view() + + +class CompleteView(BaseRedirectView): + + def dispatch(self, request, *args, **kwargs): + response = super(CompleteView, self).dispatch(request, *args, **kwargs) + if self.request.user and self.request.user.is_authenticated(): + request_hash = AuthToken.get_request_hash(self.request) + try: + token = AuthToken.objects.filter(user=request.user, + request_hash=request_hash, + expires__gt=now())[0] + token.refresh() + except IndexError: + token = AuthToken.objects.create(user=request.user, + request_hash=request_hash) + request.session['auth_token_key'] = token.key + token_key = urllib.quote('"%s"' % token.key) + response.set_cookie('token', token_key) + token_expires = token.expires.astimezone(utc).strftime('%Y-%m-%dT%H:%M:%S') + token_expires = '%s.%03dZ' % (token_expires, token.expires.microsecond / 1000) + token_expires = urllib.quote('"%s"' % token_expires) + response.set_cookie('token_expires', token_expires) + response.set_cookie('userLoggedIn', 'true') + current_user = UserSerializer(self.request.user) + current_user = JSONRenderer().render(current_user.data) + current_user = urllib.quote('%s' % current_user, '') + response.set_cookie('current_user', current_user) + return response + +sso_complete = CompleteView.as_view() + + +class MetadataView(View): + + def get(self, request, *args, **kwargs): + from social.apps.django_app.utils import load_backend, load_strategy + complete_url = reverse('social:complete', args=('saml', )) + saml_backend = load_backend( + load_strategy(request), + 'saml', + redirect_uri=complete_url, + ) + metadata, errors = saml_backend.generate_metadata_xml() + if not errors: + return HttpResponse(content=metadata, content_type='text/xml') + else: + return HttpResponse(content=str(errors), content_type='text/plain') + +saml_metadata = MetadataView.as_view() diff --git a/awx/ui/static/img/favicon.ico b/awx/static/img/favicon.ico similarity index 100% rename from awx/ui/static/img/favicon.ico rename to awx/static/img/favicon.ico diff --git a/awx/ui/static/img/tower_console_bug.png b/awx/static/img/tower_console_bug.png similarity index 100% rename from awx/ui/static/img/tower_console_bug.png rename to awx/static/img/tower_console_bug.png diff --git a/awx/ui/static/img/tower_console_logo.png b/awx/static/img/tower_console_logo.png similarity index 100% rename from awx/ui/static/img/tower_console_logo.png rename to awx/static/img/tower_console_logo.png diff --git a/awx/templates/rest_framework/api.html b/awx/templates/rest_framework/api.html index baf7013be5..2129ca2bc8 100644 --- a/awx/templates/rest_framework/api.html +++ b/awx/templates/rest_framework/api.html @@ -5,7 +5,7 @@ {% block style %} {{ block.super }} - + + + + + + + + +
+
+

fontcustom contains 2 glyphs:

+ Toggle Preview Characters +
+ + +
+
+ PpPpPpPpPpPpPpPpPpPp +
+
+ 12141618212436486072 +
+
+ + +
+
+ +
+
+ PpPpPpPpPpPpPpPpPpPp +
+
+ 12141618212436486072 +
+
+ + +
+
+ + + +
+ + diff --git a/awx/ui/client/assets/fontcustom/fontcustom.css b/awx/ui/client/assets/fontcustom/fontcustom.css new file mode 100644 index 0000000000..1fead6332d --- /dev/null +++ b/awx/ui/client/assets/fontcustom/fontcustom.css @@ -0,0 +1,43 @@ +/* + Icon Font: fontcustom +*/ + +@font-face { + font-family: "fontcustom"; + src: url("./fontcustom_037607f2fd8b86abb9de4b13a05fde60.eot"); + src: url("./fontcustom_037607f2fd8b86abb9de4b13a05fde60.eot?#iefix") format("embedded-opentype"), + url("./fontcustom_037607f2fd8b86abb9de4b13a05fde60.woff") format("woff"), + url("./fontcustom_037607f2fd8b86abb9de4b13a05fde60.ttf") format("truetype"), + url("./fontcustom_037607f2fd8b86abb9de4b13a05fde60.svg#fontcustom") format("svg"); + font-weight: normal; + font-style: normal; +} + +@media screen and (-webkit-min-device-pixel-ratio:0) { + @font-face { + font-family: "fontcustom"; + src: url("./fontcustom_037607f2fd8b86abb9de4b13a05fde60.svg#fontcustom") format("svg"); + } +} + +[data-icon]:before { content: attr(data-icon); } + +[data-icon]:before, +.icon-google:before, +.icon-saml-02:before { + display: inline-block; + font-family: "fontcustom"; + font-style: normal; + font-weight: normal; + font-variant: normal; + line-height: 1; + text-decoration: inherit; + text-rendering: optimizeLegibility; + text-transform: none; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + font-smoothing: antialiased; +} + +.icon-google:before { content: "\f100"; } +.icon-saml-02:before { content: "\f101"; } diff --git a/awx/ui/client/assets/fontcustom/fontcustom_037607f2fd8b86abb9de4b13a05fde60.eot b/awx/ui/client/assets/fontcustom/fontcustom_037607f2fd8b86abb9de4b13a05fde60.eot new file mode 100644 index 0000000000..2bdff030a7 Binary files /dev/null and b/awx/ui/client/assets/fontcustom/fontcustom_037607f2fd8b86abb9de4b13a05fde60.eot differ diff --git a/awx/ui/client/assets/fontcustom/fontcustom_037607f2fd8b86abb9de4b13a05fde60.svg b/awx/ui/client/assets/fontcustom/fontcustom_037607f2fd8b86abb9de4b13a05fde60.svg new file mode 100644 index 0000000000..dace3c481c --- /dev/null +++ b/awx/ui/client/assets/fontcustom/fontcustom_037607f2fd8b86abb9de4b13a05fde60.svg @@ -0,0 +1,47 @@ + + + + + +Created by FontForge 20150401 at Fri Sep 25 14:52:01 2015 + By John Mitchell +Copyright (c) 2015, John Mitchell + + + + + + + + + + diff --git a/awx/ui/client/assets/fontcustom/fontcustom_037607f2fd8b86abb9de4b13a05fde60.ttf b/awx/ui/client/assets/fontcustom/fontcustom_037607f2fd8b86abb9de4b13a05fde60.ttf new file mode 100644 index 0000000000..edfa1ff528 Binary files /dev/null and b/awx/ui/client/assets/fontcustom/fontcustom_037607f2fd8b86abb9de4b13a05fde60.ttf differ diff --git a/awx/ui/client/assets/fontcustom/fontcustom_037607f2fd8b86abb9de4b13a05fde60.woff b/awx/ui/client/assets/fontcustom/fontcustom_037607f2fd8b86abb9de4b13a05fde60.woff new file mode 100644 index 0000000000..dc683eb4fa Binary files /dev/null and b/awx/ui/client/assets/fontcustom/fontcustom_037607f2fd8b86abb9de4b13a05fde60.woff differ diff --git a/awx/ui/client/assets/fontcustom/new_icons/.fontcustom-manifest.json b/awx/ui/client/assets/fontcustom/new_icons/.fontcustom-manifest.json new file mode 100644 index 0000000000..3f5b945913 --- /dev/null +++ b/awx/ui/client/assets/fontcustom/new_icons/.fontcustom-manifest.json @@ -0,0 +1,54 @@ +{ + "checksum": { + "previous": "037607f2fd8b86abb9de4b13a05fde6090c547d09c5428dac65a185505077e6a", + "current": "037607f2fd8b86abb9de4b13a05fde6090c547d09c5428dac65a185505077e6a" + }, + "fonts": [ + "..//fontcustom_037607f2fd8b86abb9de4b13a05fde60.ttf", + "..//fontcustom_037607f2fd8b86abb9de4b13a05fde60.svg", + "..//fontcustom_037607f2fd8b86abb9de4b13a05fde60.woff", + "..//fontcustom_037607f2fd8b86abb9de4b13a05fde60.eot" + ], + "glyphs": { + "google": { + "codepoint": 61696, + "source": "./google.svg" + }, + "saml-02": { + "codepoint": 61697, + "source": "./saml-02.svg" + } + }, + "options": { + "autowidth": false, + "config": "fontcustom.yml", + "css_selector": ".icon-{{glyph}}", + "debug": false, + "font_ascent": 448, + "font_descent": 64, + "font_design_size": 16, + "font_em": 512, + "font_name": "fontcustom", + "force": false, + "input": { + "templates": ".", + "vectors": "." + }, + "no_hash": false, + "output": { + "css": "../", + "fonts": "../", + "preview": "../" + }, + "preprocessor_path": null, + "quiet": false, + "templates": [ + "css", + "preview" + ] + }, + "templates": [ + "../fontcustom.css", + "../fontcustom-preview.html" + ] +} \ No newline at end of file diff --git a/awx/ui/client/assets/fontcustom/new_icons/fontcustom.yml b/awx/ui/client/assets/fontcustom/new_icons/fontcustom.yml new file mode 100644 index 0000000000..69a38ba71b --- /dev/null +++ b/awx/ui/client/assets/fontcustom/new_icons/fontcustom.yml @@ -0,0 +1,96 @@ +# ============================================================================= +# Font Custom Configuration +# This file should live in the directory where you run `fontcustom compile`. +# For more info, visit . +# ============================================================================= + + +# ----------------------------------------------------------------------------- +# Project Info +# ----------------------------------------------------------------------------- + +# The font's name. Also determines the file names of generated templates. +#font_name: icons + +# Format of CSS selectors. {{glyph}} is substituted for the glyph name. +#css_selector: .i-{{glyph}} + +# Generate fonts without asset-busting hashes. +#no_hash: true + +# Encode WOFF fonts into the generated CSS. +#base64: true + +# Forces compilation, even if inputs have not changed +#force: true + +# Display (possibly useful) debugging messages. +#debug: true + +# Hide status messages. +#quiet: true + + +# ----------------------------------------------------------------------------- +# Input / Output Locations +# You can save generated fonts, CSS, and other files to different locations +# here. Font Custom can also read input vectors and templates from different +# places. +# +# NOTE: +# - Be sure to preserve the whitespace in these YAML hashes. +# - INPUT[:vectors] and OUTPUT[:fonts] are required. Everything else is +# optional. +# - Specify output locations for custom templates by including their file +# names as the key. +# ----------------------------------------------------------------------------- + +#input: +# vectors: my/vectors +# templates: my/templates + +#output: +# fonts: app/assets/fonts +# css: app/assets/stylesheets +# preview: app/views/styleguide +# my-custom-template.yml: path/to/template/output + + +# ----------------------------------------------------------------------------- +# Templates +# A YAML array of templates and files to generate alongside fonts. Custom +# templates should be saved in the INPUT[:templates] directory and referenced +# by their base file name. +# +# For Rails and Compass templates, set `preprocessor_path` as the relative +# path from OUTPUT[:css] to OUTPUT[:fonts]. By default, these are the same +# directory. +# +# Included in Font Custom: preview, css, scss, scss-rails +# Default: css, preview +# ----------------------------------------------------------------------------- + +#templates: +#- scss-rails +#- preview +#- my-custom-template.yml + +#preprocessor_path: ../fonts/ + + +# ----------------------------------------------------------------------------- +# Font Settings (defaults shown) +# ----------------------------------------------------------------------------- + +# Size (in pica points) for which your font is designed. +#font_design_size: 16 + +# The em size. Setting this will scale the entire font to the given size. +#font_em: 512 + +# The font's ascent and descent. Used to calculate the baseline. +#font_ascent: 448 +#font_descent: 64 + +# Horizontally fit glyphs to their individual vector widths. +#autowidth: false diff --git a/awx/ui/client/assets/fontcustom/new_icons/google.svg b/awx/ui/client/assets/fontcustom/new_icons/google.svg new file mode 100644 index 0000000000..530a136d6c --- /dev/null +++ b/awx/ui/client/assets/fontcustom/new_icons/google.svg @@ -0,0 +1,17 @@ + + + + + + diff --git a/awx/ui/client/assets/fontcustom/new_icons/saml-02.svg b/awx/ui/client/assets/fontcustom/new_icons/saml-02.svg new file mode 100644 index 0000000000..1f33a6c8fc --- /dev/null +++ b/awx/ui/client/assets/fontcustom/new_icons/saml-02.svg @@ -0,0 +1,15 @@ + + + + + + diff --git a/awx/ui/static/img/help/add_exception.png b/awx/ui/client/assets/help/add_exception.png similarity index 100% rename from awx/ui/static/img/help/add_exception.png rename to awx/ui/client/assets/help/add_exception.png diff --git a/awx/ui/static/img/help/confirm_exception.png b/awx/ui/client/assets/help/confirm_exception.png similarity index 100% rename from awx/ui/static/img/help/confirm_exception.png rename to awx/ui/client/assets/help/confirm_exception.png diff --git a/awx/ui/static/img/help/groups001.png b/awx/ui/client/assets/help/groups001.png similarity index 100% rename from awx/ui/static/img/help/groups001.png rename to awx/ui/client/assets/help/groups001.png diff --git a/awx/ui/static/img/help/groups002.png b/awx/ui/client/assets/help/groups002.png similarity index 100% rename from awx/ui/static/img/help/groups002.png rename to awx/ui/client/assets/help/groups002.png diff --git a/awx/ui/static/img/help/groups003.png b/awx/ui/client/assets/help/groups003.png similarity index 100% rename from awx/ui/static/img/help/groups003.png rename to awx/ui/client/assets/help/groups003.png diff --git a/awx/ui/static/img/help/groups004.png b/awx/ui/client/assets/help/groups004.png similarity index 100% rename from awx/ui/static/img/help/groups004.png rename to awx/ui/client/assets/help/groups004.png diff --git a/awx/ui/static/img/help/groups005.png b/awx/ui/client/assets/help/groups005.png similarity index 100% rename from awx/ui/static/img/help/groups005.png rename to awx/ui/client/assets/help/groups005.png diff --git a/awx/ui/static/img/help/groups006.png b/awx/ui/client/assets/help/groups006.png similarity index 100% rename from awx/ui/static/img/help/groups006.png rename to awx/ui/client/assets/help/groups006.png diff --git a/awx/ui/static/img/help/groups007.png b/awx/ui/client/assets/help/groups007.png similarity index 100% rename from awx/ui/static/img/help/groups007.png rename to awx/ui/client/assets/help/groups007.png diff --git a/awx/ui/static/img/help/groups008.png b/awx/ui/client/assets/help/groups008.png similarity index 100% rename from awx/ui/static/img/help/groups008.png rename to awx/ui/client/assets/help/groups008.png diff --git a/awx/ui/static/img/help/groups009.png b/awx/ui/client/assets/help/groups009.png similarity index 100% rename from awx/ui/static/img/help/groups009.png rename to awx/ui/client/assets/help/groups009.png diff --git a/awx/ui/static/img/help/groups010.png b/awx/ui/client/assets/help/groups010.png similarity index 100% rename from awx/ui/static/img/help/groups010.png rename to awx/ui/client/assets/help/groups010.png diff --git a/awx/ui/static/img/help/refresh_firefox.png b/awx/ui/client/assets/help/refresh_firefox.png similarity index 100% rename from awx/ui/static/img/help/refresh_firefox.png rename to awx/ui/client/assets/help/refresh_firefox.png diff --git a/awx/ui/static/img/help/socket_indicator.png b/awx/ui/client/assets/help/socket_indicator.png similarity index 100% rename from awx/ui/static/img/help/socket_indicator.png rename to awx/ui/client/assets/help/socket_indicator.png diff --git a/awx/ui/static/img/help/understand_the_risk.png b/awx/ui/client/assets/help/understand_the_risk.png similarity index 100% rename from awx/ui/static/img/help/understand_the_risk.png rename to awx/ui/client/assets/help/understand_the_risk.png diff --git a/awx/ui/static/fonts/merriweather-bold-webfont.woff b/awx/ui/client/assets/merriweather-bold-webfont.woff similarity index 100% rename from awx/ui/static/fonts/merriweather-bold-webfont.woff rename to awx/ui/client/assets/merriweather-bold-webfont.woff diff --git a/awx/ui/static/fonts/merriweather-bold-webfont.woff2 b/awx/ui/client/assets/merriweather-bold-webfont.woff2 similarity index 100% rename from awx/ui/static/fonts/merriweather-bold-webfont.woff2 rename to awx/ui/client/assets/merriweather-bold-webfont.woff2 diff --git a/awx/ui/static/fonts/merriweather-bolditalic-webfont.woff b/awx/ui/client/assets/merriweather-bolditalic-webfont.woff similarity index 100% rename from awx/ui/static/fonts/merriweather-bolditalic-webfont.woff rename to awx/ui/client/assets/merriweather-bolditalic-webfont.woff diff --git a/awx/ui/static/fonts/merriweather-bolditalic-webfont.woff2 b/awx/ui/client/assets/merriweather-bolditalic-webfont.woff2 similarity index 100% rename from awx/ui/static/fonts/merriweather-bolditalic-webfont.woff2 rename to awx/ui/client/assets/merriweather-bolditalic-webfont.woff2 diff --git a/awx/ui/static/fonts/merriweather-heavyitalic-webfont.woff b/awx/ui/client/assets/merriweather-heavyitalic-webfont.woff similarity index 100% rename from awx/ui/static/fonts/merriweather-heavyitalic-webfont.woff rename to awx/ui/client/assets/merriweather-heavyitalic-webfont.woff diff --git a/awx/ui/static/fonts/merriweather-heavyitalic-webfont.woff2 b/awx/ui/client/assets/merriweather-heavyitalic-webfont.woff2 similarity index 100% rename from awx/ui/static/fonts/merriweather-heavyitalic-webfont.woff2 rename to awx/ui/client/assets/merriweather-heavyitalic-webfont.woff2 diff --git a/awx/ui/static/fonts/merriweather-italic-webfont.woff b/awx/ui/client/assets/merriweather-italic-webfont.woff similarity index 100% rename from awx/ui/static/fonts/merriweather-italic-webfont.woff rename to awx/ui/client/assets/merriweather-italic-webfont.woff diff --git a/awx/ui/static/fonts/merriweather-italic-webfont.woff2 b/awx/ui/client/assets/merriweather-italic-webfont.woff2 similarity index 100% rename from awx/ui/static/fonts/merriweather-italic-webfont.woff2 rename to awx/ui/client/assets/merriweather-italic-webfont.woff2 diff --git a/awx/ui/static/fonts/merriweather-lightitalic-webfont.woff b/awx/ui/client/assets/merriweather-lightitalic-webfont.woff similarity index 100% rename from awx/ui/static/fonts/merriweather-lightitalic-webfont.woff rename to awx/ui/client/assets/merriweather-lightitalic-webfont.woff diff --git a/awx/ui/static/fonts/merriweather-lightitalic-webfont.woff2 b/awx/ui/client/assets/merriweather-lightitalic-webfont.woff2 similarity index 100% rename from awx/ui/static/fonts/merriweather-lightitalic-webfont.woff2 rename to awx/ui/client/assets/merriweather-lightitalic-webfont.woff2 diff --git a/awx/ui/static/fonts/merriweather-regular-webfont.woff b/awx/ui/client/assets/merriweather-regular-webfont.woff similarity index 100% rename from awx/ui/static/fonts/merriweather-regular-webfont.woff rename to awx/ui/client/assets/merriweather-regular-webfont.woff diff --git a/awx/ui/static/fonts/merriweather-regular-webfont.woff2 b/awx/ui/client/assets/merriweather-regular-webfont.woff2 similarity index 100% rename from awx/ui/static/fonts/merriweather-regular-webfont.woff2 rename to awx/ui/client/assets/merriweather-regular-webfont.woff2 diff --git a/awx/ui/static/fonts/merriweather_light-webfont.woff b/awx/ui/client/assets/merriweather_light-webfont.woff similarity index 100% rename from awx/ui/static/fonts/merriweather_light-webfont.woff rename to awx/ui/client/assets/merriweather_light-webfont.woff diff --git a/awx/ui/static/fonts/merriweather_light-webfont.woff2 b/awx/ui/client/assets/merriweather_light-webfont.woff2 similarity index 100% rename from awx/ui/static/fonts/merriweather_light-webfont.woff2 rename to awx/ui/client/assets/merriweather_light-webfont.woff2 diff --git a/awx/ui/static/fonts/merriweather_ultrabold-webfont.woff b/awx/ui/client/assets/merriweather_ultrabold-webfont.woff similarity index 100% rename from awx/ui/static/fonts/merriweather_ultrabold-webfont.woff rename to awx/ui/client/assets/merriweather_ultrabold-webfont.woff diff --git a/awx/ui/static/fonts/merriweather_ultrabold-webfont.woff2 b/awx/ui/client/assets/merriweather_ultrabold-webfont.woff2 similarity index 100% rename from awx/ui/static/fonts/merriweather_ultrabold-webfont.woff2 rename to awx/ui/client/assets/merriweather_ultrabold-webfont.woff2 diff --git a/awx/ui/static/fonts/ubuntu-r-webfont.woff b/awx/ui/client/assets/ubuntu-r-webfont.woff similarity index 100% rename from awx/ui/static/fonts/ubuntu-r-webfont.woff rename to awx/ui/client/assets/ubuntu-r-webfont.woff diff --git a/awx/ui/static/fonts/ubuntu.woff2 b/awx/ui/client/assets/ubuntu.woff2 similarity index 100% rename from awx/ui/static/fonts/ubuntu.woff2 rename to awx/ui/client/assets/ubuntu.woff2 diff --git a/awx/ui/static/less/angular-scheduler.less b/awx/ui/client/legacy-styles/angular-scheduler.less similarity index 100% rename from awx/ui/static/less/angular-scheduler.less rename to awx/ui/client/legacy-styles/angular-scheduler.less diff --git a/awx/ui/static/less/animations.less b/awx/ui/client/legacy-styles/animations.less similarity index 100% rename from awx/ui/static/less/animations.less rename to awx/ui/client/legacy-styles/animations.less diff --git a/awx/ui/static/less/ansible-ui.less b/awx/ui/client/legacy-styles/ansible-ui.less similarity index 98% rename from awx/ui/static/less/ansible-ui.less rename to awx/ui/client/legacy-styles/ansible-ui.less index e2a7b6050f..3f08896422 100644 --- a/awx/ui/static/less/ansible-ui.less +++ b/awx/ui/client/legacy-styles/ansible-ui.less @@ -11,17 +11,17 @@ font-family: 'Open Sans'; font-style: normal; font-weight: 400; - src: url(/static/fonts/OpenSans-Regular.ttf); + src: url(/static/assets/OpenSans-Regular.ttf); } @font-face { font-family: 'Open Sans'; font-style: bold; font-weight: 600; - src: url(/static/fonts/OpenSans-Bold.ttf); + src: url(/static/assets/OpenSans-Bold.ttf); } -@import "../js/shared/branding/colors.less"; +@import "src/shared/branding/colors.less"; @import "fonts.less"; @import "main-layout.less"; @import "animations.less"; @@ -41,7 +41,7 @@ @import "survey-maker.less"; @import "portal.less"; @import "text-label.less"; -@import "bootstrap-datepicker.less"; +@import "./bootstrap-datepicker.less"; /* Bootstrap fix that's causing a right margin to appear whenver a modal is opened */ @@ -78,10 +78,6 @@ a.red-txt:active { text-overflow: ellipsis; } -.tooltip { - word-break: break-all; -} - blockquote { font-size: 14px; } @@ -370,10 +366,6 @@ textarea.allowresize { margin-right: -5px; } -.prepend-asterisk--login:before { - margin-right: -2px; -} - .subtitle { font-size: 16px; } @@ -551,14 +543,6 @@ dd { word-break: break-all; } -.login-alert { - margin-bottom: 25px; - font-size: 14px; - font-weight: normal; - color: @blue-link; - text-align: center; -} - .controls { min-height: 15px; } @@ -597,16 +581,6 @@ dd { background-color: @black; } -.modal-header.login-header { - text-align: center; - background-color: @black; - border-left: 1px solid #686868; - border-right: 1px solid #686868; - border-top: 1px solid #686868; - border-top-left-radius: 6px; - border-top-right-radius: 6px; -} - .login-header img { width: 60%; } @@ -2030,3 +2004,12 @@ tr td button i { margin-bottom: 15px; } } + +button.dropdown-toggle, +.input-group-btn { + z-index: 1; +} + +#login-modal-body { + padding-bottom: 5px; +} diff --git a/awx/ui/static/less/bootstrap-datepicker.less b/awx/ui/client/legacy-styles/bootstrap-datepicker.less similarity index 100% rename from awx/ui/static/less/bootstrap-datepicker.less rename to awx/ui/client/legacy-styles/bootstrap-datepicker.less diff --git a/awx/ui/static/less/breadcrumbs.less b/awx/ui/client/legacy-styles/breadcrumbs.less similarity index 100% rename from awx/ui/static/less/breadcrumbs.less rename to awx/ui/client/legacy-styles/breadcrumbs.less diff --git a/awx/ui/static/less/codemirror.less b/awx/ui/client/legacy-styles/codemirror.less similarity index 100% rename from awx/ui/static/less/codemirror.less rename to awx/ui/client/legacy-styles/codemirror.less diff --git a/awx/ui/static/less/dashboard.less b/awx/ui/client/legacy-styles/dashboard.less similarity index 100% rename from awx/ui/static/less/dashboard.less rename to awx/ui/client/legacy-styles/dashboard.less diff --git a/awx/ui/static/less/event-viewer.less b/awx/ui/client/legacy-styles/event-viewer.less similarity index 100% rename from awx/ui/static/less/event-viewer.less rename to awx/ui/client/legacy-styles/event-viewer.less diff --git a/awx/ui/static/less/fonts.less b/awx/ui/client/legacy-styles/fonts.less similarity index 85% rename from awx/ui/static/less/fonts.less rename to awx/ui/client/legacy-styles/fonts.less index 9dcf8cab5b..e75c35f699 100644 --- a/awx/ui/static/less/fonts.less +++ b/awx/ui/client/legacy-styles/fonts.less @@ -1,8 +1,8 @@ .include-font(@family-name; @filename; @weight: normal; @style: normal) { @font-face { font-family: @family-name; - src: url("/static/fonts/@{filename}.woff2") format('woff2'), - url("/static/fonts/@{filename}.woff") format('woff'); + src: url("/static/assets/@{filename}.woff2") format('woff2'), + url("/static/assets/@{filename}.woff") format('woff'); font-weight: @weight; font-style: @style; } diff --git a/awx/ui/static/less/inventory-edit.less b/awx/ui/client/legacy-styles/inventory-edit.less similarity index 100% rename from awx/ui/static/less/inventory-edit.less rename to awx/ui/client/legacy-styles/inventory-edit.less diff --git a/awx/ui/static/less/jPushMenu.less b/awx/ui/client/legacy-styles/jPushMenu.less similarity index 100% rename from awx/ui/static/less/jPushMenu.less rename to awx/ui/client/legacy-styles/jPushMenu.less diff --git a/awx/ui/static/less/job-details.less b/awx/ui/client/legacy-styles/job-details.less similarity index 100% rename from awx/ui/static/less/job-details.less rename to awx/ui/client/legacy-styles/job-details.less diff --git a/awx/ui/static/less/jobs.less b/awx/ui/client/legacy-styles/jobs.less similarity index 100% rename from awx/ui/static/less/jobs.less rename to awx/ui/client/legacy-styles/jobs.less diff --git a/awx/ui/static/less/jquery-ui-overrides.less b/awx/ui/client/legacy-styles/jquery-ui-overrides.less similarity index 100% rename from awx/ui/static/less/jquery-ui-overrides.less rename to awx/ui/client/legacy-styles/jquery-ui-overrides.less diff --git a/awx/ui/static/less/lists.less b/awx/ui/client/legacy-styles/lists.less similarity index 100% rename from awx/ui/static/less/lists.less rename to awx/ui/client/legacy-styles/lists.less diff --git a/awx/ui/static/less/log-viewer.less b/awx/ui/client/legacy-styles/log-viewer.less similarity index 100% rename from awx/ui/static/less/log-viewer.less rename to awx/ui/client/legacy-styles/log-viewer.less diff --git a/awx/ui/static/less/main-layout.less b/awx/ui/client/legacy-styles/main-layout.less similarity index 100% rename from awx/ui/static/less/main-layout.less rename to awx/ui/client/legacy-styles/main-layout.less diff --git a/awx/ui/static/less/portal.less b/awx/ui/client/legacy-styles/portal.less similarity index 100% rename from awx/ui/static/less/portal.less rename to awx/ui/client/legacy-styles/portal.less diff --git a/awx/ui/static/less/stdout.less b/awx/ui/client/legacy-styles/stdout.less similarity index 100% rename from awx/ui/static/less/stdout.less rename to awx/ui/client/legacy-styles/stdout.less diff --git a/awx/ui/static/less/survey-maker.less b/awx/ui/client/legacy-styles/survey-maker.less similarity index 100% rename from awx/ui/static/less/survey-maker.less rename to awx/ui/client/legacy-styles/survey-maker.less diff --git a/awx/ui/static/less/text-label.less b/awx/ui/client/legacy-styles/text-label.less similarity index 70% rename from awx/ui/static/less/text-label.less rename to awx/ui/client/legacy-styles/text-label.less index bb6bbd8242..63aee6c9a3 100644 --- a/awx/ui/static/less/text-label.less +++ b/awx/ui/client/legacy-styles/text-label.less @@ -1,4 +1,4 @@ -@import "../js/shared/text-label.less"; +@import "src/shared/text-label.less"; .host-disabled-label { &:after { diff --git a/awx/ui/static/lib/angular-animate/.bower.json b/awx/ui/client/lib/angular-animate/.bower.json similarity index 53% rename from awx/ui/static/lib/angular-animate/.bower.json rename to awx/ui/client/lib/angular-animate/.bower.json index 50b2bd1f15..27ddb8cc93 100644 --- a/awx/ui/static/lib/angular-animate/.bower.json +++ b/awx/ui/client/lib/angular-animate/.bower.json @@ -1,19 +1,19 @@ { "name": "angular-animate", - "version": "1.2.23", + "version": "1.4.3", "main": "./angular-animate.js", + "ignore": [], "dependencies": { - "angular": "1.2.23" + "angular": "1.4.3" }, "homepage": "https://github.com/angular/bower-angular-animate", - "_release": "1.2.23", + "_release": "1.4.3", "_resolution": { "type": "version", - "tag": "v1.2.23", - "commit": "a5b1e7109e5b9a0276540cdafc92d6fedfec8da5" + "tag": "v1.4.3", + "commit": "4ce2a76359401102d2e0146ccf69e6c060799ff8" }, "_source": "git://github.com/angular/bower-angular-animate.git", - "_target": "~1.2.23", - "_originalSource": "angular-animate", - "_direct": true + "_target": "~1.4.3", + "_originalSource": "angular-animate" } \ No newline at end of file diff --git a/awx/ui/static/lib/angular-animate/README.md b/awx/ui/client/lib/angular-animate/README.md similarity index 74% rename from awx/ui/static/lib/angular-animate/README.md rename to awx/ui/client/lib/angular-animate/README.md index de4c61b895..8313da67c3 100644 --- a/awx/ui/static/lib/angular-animate/README.md +++ b/awx/ui/client/lib/angular-animate/README.md @@ -1,24 +1,38 @@ -# bower-angular-animate +# packaged angular-animate -This repo is for distribution on `bower`. The source for this module is in the +This repo is for distribution on `npm` and `bower`. The source for this module is in the [main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngAnimate). Please file issues and pull requests against that repo. ## Install -Install with `bower`: +You can install this package either with `npm` or with `bower`. + +### npm + +```shell +npm install angular-animate +``` + +Then add `ngAnimate` as a dependency for your app: + +```javascript +angular.module('myApp', [require('angular-animate')]); +``` + +### bower ```shell bower install angular-animate ``` -Add a ` ``` -And add `ngAnimate` as a dependency for your app: +Then add `ngAnimate` as a dependency for your app: ```javascript angular.module('myApp', ['ngAnimate']); @@ -33,7 +47,7 @@ Documentation is available on the The MIT License -Copyright (c) 2010-2012 Google, Inc. http://angularjs.org +Copyright (c) 2010-2015 Google, Inc. http://angularjs.org Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/awx/ui/client/lib/angular-animate/angular-animate.js b/awx/ui/client/lib/angular-animate/angular-animate.js new file mode 100644 index 0000000000..fc0e217f7e --- /dev/null +++ b/awx/ui/client/lib/angular-animate/angular-animate.js @@ -0,0 +1,3721 @@ +/** + * @license AngularJS v1.4.3 + * (c) 2010-2015 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) {'use strict'; + +/* jshint ignore:start */ +var noop = angular.noop; +var extend = angular.extend; +var jqLite = angular.element; +var forEach = angular.forEach; +var isArray = angular.isArray; +var isString = angular.isString; +var isObject = angular.isObject; +var isUndefined = angular.isUndefined; +var isDefined = angular.isDefined; +var isFunction = angular.isFunction; +var isElement = angular.isElement; + +var ELEMENT_NODE = 1; +var COMMENT_NODE = 8; + +var NG_ANIMATE_CLASSNAME = 'ng-animate'; +var NG_ANIMATE_CHILDREN_DATA = '$$ngAnimateChildren'; + +var isPromiseLike = function(p) { + return p && p.then ? true : false; +} + +function assertArg(arg, name, reason) { + if (!arg) { + throw ngMinErr('areq', "Argument '{0}' is {1}", (name || '?'), (reason || "required")); + } + return arg; +} + +function mergeClasses(a,b) { + if (!a && !b) return ''; + if (!a) return b; + if (!b) return a; + if (isArray(a)) a = a.join(' '); + if (isArray(b)) b = b.join(' '); + return a + ' ' + b; +} + +function packageStyles(options) { + var styles = {}; + if (options && (options.to || options.from)) { + styles.to = options.to; + styles.from = options.from; + } + return styles; +} + +function pendClasses(classes, fix, isPrefix) { + var className = ''; + classes = isArray(classes) + ? classes + : classes && isString(classes) && classes.length + ? classes.split(/\s+/) + : []; + forEach(classes, function(klass, i) { + if (klass && klass.length > 0) { + className += (i > 0) ? ' ' : ''; + className += isPrefix ? fix + klass + : klass + fix; + } + }); + return className; +} + +function removeFromArray(arr, val) { + var index = arr.indexOf(val); + if (val >= 0) { + arr.splice(index, 1); + } +} + +function stripCommentsFromElement(element) { + if (element instanceof jqLite) { + switch (element.length) { + case 0: + return []; + break; + + case 1: + // there is no point of stripping anything if the element + // is the only element within the jqLite wrapper. + // (it's important that we retain the element instance.) + if (element[0].nodeType === ELEMENT_NODE) { + return element; + } + break; + + default: + return jqLite(extractElementNode(element)); + break; + } + } + + if (element.nodeType === ELEMENT_NODE) { + return jqLite(element); + } +} + +function extractElementNode(element) { + if (!element[0]) return element; + for (var i = 0; i < element.length; i++) { + var elm = element[i]; + if (elm.nodeType == ELEMENT_NODE) { + return elm; + } + } +} + +function $$addClass($$jqLite, element, className) { + forEach(element, function(elm) { + $$jqLite.addClass(elm, className); + }); +} + +function $$removeClass($$jqLite, element, className) { + forEach(element, function(elm) { + $$jqLite.removeClass(elm, className); + }); +} + +function applyAnimationClassesFactory($$jqLite) { + return function(element, options) { + if (options.addClass) { + $$addClass($$jqLite, element, options.addClass); + options.addClass = null; + } + if (options.removeClass) { + $$removeClass($$jqLite, element, options.removeClass); + options.removeClass = null; + } + } +} + +function prepareAnimationOptions(options) { + options = options || {}; + if (!options.$$prepared) { + var domOperation = options.domOperation || noop; + options.domOperation = function() { + options.$$domOperationFired = true; + domOperation(); + domOperation = noop; + }; + options.$$prepared = true; + } + return options; +} + +function applyAnimationStyles(element, options) { + applyAnimationFromStyles(element, options); + applyAnimationToStyles(element, options); +} + +function applyAnimationFromStyles(element, options) { + if (options.from) { + element.css(options.from); + options.from = null; + } +} + +function applyAnimationToStyles(element, options) { + if (options.to) { + element.css(options.to); + options.to = null; + } +} + +function mergeAnimationOptions(element, target, newOptions) { + var toAdd = (target.addClass || '') + ' ' + (newOptions.addClass || ''); + var toRemove = (target.removeClass || '') + ' ' + (newOptions.removeClass || ''); + var classes = resolveElementClasses(element.attr('class'), toAdd, toRemove); + + extend(target, newOptions); + + if (classes.addClass) { + target.addClass = classes.addClass; + } else { + target.addClass = null; + } + + if (classes.removeClass) { + target.removeClass = classes.removeClass; + } else { + target.removeClass = null; + } + + return target; +} + +function resolveElementClasses(existing, toAdd, toRemove) { + var ADD_CLASS = 1; + var REMOVE_CLASS = -1; + + var flags = {}; + existing = splitClassesToLookup(existing); + + toAdd = splitClassesToLookup(toAdd); + forEach(toAdd, function(value, key) { + flags[key] = ADD_CLASS; + }); + + toRemove = splitClassesToLookup(toRemove); + forEach(toRemove, function(value, key) { + flags[key] = flags[key] === ADD_CLASS ? null : REMOVE_CLASS; + }); + + var classes = { + addClass: '', + removeClass: '' + }; + + forEach(flags, function(val, klass) { + var prop, allow; + if (val === ADD_CLASS) { + prop = 'addClass'; + allow = !existing[klass]; + } else if (val === REMOVE_CLASS) { + prop = 'removeClass'; + allow = existing[klass]; + } + if (allow) { + if (classes[prop].length) { + classes[prop] += ' '; + } + classes[prop] += klass; + } + }); + + function splitClassesToLookup(classes) { + if (isString(classes)) { + classes = classes.split(' '); + } + + var obj = {}; + forEach(classes, function(klass) { + // sometimes the split leaves empty string values + // incase extra spaces were applied to the options + if (klass.length) { + obj[klass] = true; + } + }); + return obj; + } + + return classes; +} + +function getDomNode(element) { + return (element instanceof angular.element) ? element[0] : element; +} + +var $$rAFSchedulerFactory = ['$$rAF', function($$rAF) { + var tickQueue = []; + var cancelFn; + + function scheduler(tasks) { + // we make a copy since RAFScheduler mutates the state + // of the passed in array variable and this would be difficult + // to track down on the outside code + tickQueue.push([].concat(tasks)); + nextTick(); + } + + /* waitUntilQuiet does two things: + * 1. It will run the FINAL `fn` value only when an uncancelled RAF has passed through + * 2. It will delay the next wave of tasks from running until the quiet `fn` has run. + * + * The motivation here is that animation code can request more time from the scheduler + * before the next wave runs. This allows for certain DOM properties such as classes to + * be resolved in time for the next animation to run. + */ + scheduler.waitUntilQuiet = function(fn) { + if (cancelFn) cancelFn(); + + cancelFn = $$rAF(function() { + cancelFn = null; + fn(); + nextTick(); + }); + }; + + return scheduler; + + function nextTick() { + if (!tickQueue.length) return; + + var updatedQueue = []; + for (var i = 0; i < tickQueue.length; i++) { + var innerQueue = tickQueue[i]; + runNextTask(innerQueue); + if (innerQueue.length) { + updatedQueue.push(innerQueue); + } + } + tickQueue = updatedQueue; + + if (!cancelFn) { + $$rAF(function() { + if (!cancelFn) nextTick(); + }); + } + } + + function runNextTask(tasks) { + var nextTask = tasks.shift(); + nextTask(); + } +}]; + +var $$AnimateChildrenDirective = [function() { + return function(scope, element, attrs) { + var val = attrs.ngAnimateChildren; + if (angular.isString(val) && val.length === 0) { //empty attribute + element.data(NG_ANIMATE_CHILDREN_DATA, true); + } else { + attrs.$observe('ngAnimateChildren', function(value) { + value = value === 'on' || value === 'true'; + element.data(NG_ANIMATE_CHILDREN_DATA, value); + }); + } + }; +}]; + +/** + * @ngdoc service + * @name $animateCss + * @kind object + * + * @description + * The `$animateCss` service is a useful utility to trigger customized CSS-based transitions/keyframes + * from a JavaScript-based animation or directly from a directive. The purpose of `$animateCss` is NOT + * to side-step how `$animate` and ngAnimate work, but the goal is to allow pre-existing animations or + * directives to create more complex animations that can be purely driven using CSS code. + * + * Note that only browsers that support CSS transitions and/or keyframe animations are capable of + * rendering animations triggered via `$animateCss` (bad news for IE9 and lower). + * + * ## Usage + * Once again, `$animateCss` is designed to be used inside of a registered JavaScript animation that + * is powered by ngAnimate. It is possible to use `$animateCss` directly inside of a directive, however, + * any automatic control over cancelling animations and/or preventing animations from being run on + * child elements will not be handled by Angular. For this to work as expected, please use `$animate` to + * trigger the animation and then setup a JavaScript animation that injects `$animateCss` to trigger + * the CSS animation. + * + * The example below shows how we can create a folding animation on an element using `ng-if`: + * + * ```html + * + *
+ * This element will go BOOM + *
+ * + * ``` + * + * Now we create the **JavaScript animation** that will trigger the CSS transition: + * + * ```js + * ngModule.animation('.fold-animation', ['$animateCss', function($animateCss) { + * return { + * enter: function(element, doneFn) { + * var height = element[0].offsetHeight; + * return $animateCss(element, { + * from: { height:'0px' }, + * to: { height:height + 'px' }, + * duration: 1 // one second + * }); + * } + * } + * }]); + * ``` + * + * ## More Advanced Uses + * + * `$animateCss` is the underlying code that ngAnimate uses to power **CSS-based animations** behind the scenes. Therefore CSS hooks + * like `.ng-EVENT`, `.ng-EVENT-active`, `.ng-EVENT-stagger` are all features that can be triggered using `$animateCss` via JavaScript code. + * + * This also means that just about any combination of adding classes, removing classes, setting styles, dynamically setting a keyframe animation, + * applying a hardcoded duration or delay value, changing the animation easing or applying a stagger animation are all options that work with + * `$animateCss`. The service itself is smart enough to figure out the combination of options and examine the element styling properties in order + * to provide a working animation that will run in CSS. + * + * The example below showcases a more advanced version of the `.fold-animation` from the example above: + * + * ```js + * ngModule.animation('.fold-animation', ['$animateCss', function($animateCss) { + * return { + * enter: function(element, doneFn) { + * var height = element[0].offsetHeight; + * return $animateCss(element, { + * addClass: 'red large-text pulse-twice', + * easing: 'ease-out', + * from: { height:'0px' }, + * to: { height:height + 'px' }, + * duration: 1 // one second + * }); + * } + * } + * }]); + * ``` + * + * Since we're adding/removing CSS classes then the CSS transition will also pick those up: + * + * ```css + * /* since a hardcoded duration value of 1 was provided in the JavaScript animation code, + * the CSS classes below will be transitioned despite them being defined as regular CSS classes */ + * .red { background:red; } + * .large-text { font-size:20px; } + * + * /* we can also use a keyframe animation and $animateCss will make it work alongside the transition */ + * .pulse-twice { + * animation: 0.5s pulse linear 2; + * -webkit-animation: 0.5s pulse linear 2; + * } + * + * @keyframes pulse { + * from { transform: scale(0.5); } + * to { transform: scale(1.5); } + * } + * + * @-webkit-keyframes pulse { + * from { -webkit-transform: scale(0.5); } + * to { -webkit-transform: scale(1.5); } + * } + * ``` + * + * Given this complex combination of CSS classes, styles and options, `$animateCss` will figure everything out and make the animation happen. + * + * ## How the Options are handled + * + * `$animateCss` is very versatile and intelligent when it comes to figuring out what configurations to apply to the element to ensure the animation + * works with the options provided. Say for example we were adding a class that contained a keyframe value and we wanted to also animate some inline + * styles using the `from` and `to` properties. + * + * ```js + * var animator = $animateCss(element, { + * from: { background:'red' }, + * to: { background:'blue' } + * }); + * animator.start(); + * ``` + * + * ```css + * .rotating-animation { + * animation:0.5s rotate linear; + * -webkit-animation:0.5s rotate linear; + * } + * + * @keyframes rotate { + * from { transform: rotate(0deg); } + * to { transform: rotate(360deg); } + * } + * + * @-webkit-keyframes rotate { + * from { -webkit-transform: rotate(0deg); } + * to { -webkit-transform: rotate(360deg); } + * } + * ``` + * + * The missing pieces here are that we do not have a transition set (within the CSS code nor within the `$animateCss` options) and the duration of the animation is + * going to be detected from what the keyframe styles on the CSS class are. In this event, `$animateCss` will automatically create an inline transition + * style matching the duration detected from the keyframe style (which is present in the CSS class that is being added) and then prepare both the transition + * and keyframe animations to run in parallel on the element. Then when the animation is underway the provided `from` and `to` CSS styles will be applied + * and spread across the transition and keyframe animation. + * + * ## What is returned + * + * `$animateCss` works in two stages: a preparation phase and an animation phase. Therefore when `$animateCss` is first called it will NOT actually + * start the animation. All that is going on here is that the element is being prepared for the animation (which means that the generated CSS classes are + * added and removed on the element). Once `$animateCss` is called it will return an object with the following properties: + * + * ```js + * var animator = $animateCss(element, { ... }); + * ``` + * + * Now what do the contents of our `animator` variable look like: + * + * ```js + * { + * // starts the animation + * start: Function, + * + * // ends (aborts) the animation + * end: Function + * } + * ``` + * + * To actually start the animation we need to run `animation.start()` which will then return a promise that we can hook into to detect when the animation ends. + * If we choose not to run the animation then we MUST run `animation.end()` to perform a cleanup on the element (since some CSS classes and stlyes may have been + * applied to the element during the preparation phase). Note that all other properties such as duration, delay, transitions and keyframes are just properties + * and that changing them will not reconfigure the parameters of the animation. + * + * ### runner.done() vs runner.then() + * It is documented that `animation.start()` will return a promise object and this is true, however, there is also an additional method available on the + * runner called `.done(callbackFn)`. The done method works the same as `.finally(callbackFn)`, however, it does **not trigger a digest to occur**. + * Therefore, for performance reasons, it's always best to use `runner.done(callback)` instead of `runner.then()`, `runner.catch()` or `runner.finally()` + * unless you really need a digest to kick off afterwards. + * + * Keep in mind that, to make this easier, ngAnimate has tweaked the JS animations API to recognize when a runner instance is returned from $animateCss + * (so there is no need to call `runner.done(doneFn)` inside of your JavaScript animation code). + * Check the {@link ngAnimate.$animateCss#usage animation code above} to see how this works. + * + * @param {DOMElement} element the element that will be animated + * @param {object} options the animation-related options that will be applied during the animation + * + * * `event` - The DOM event (e.g. enter, leave, move). When used, a generated CSS class of `ng-EVENT` and `ng-EVENT-active` will be applied + * to the element during the animation. Multiple events can be provided when spaces are used as a separator. (Note that this will not perform any DOM operation.) + * * `easing` - The CSS easing value that will be applied to the transition or keyframe animation (or both). + * * `transition` - The raw CSS transition style that will be used (e.g. `1s linear all`). + * * `keyframeStyle` - The raw CSS keyframe animation style that will be used (e.g. `1s my_animation linear`). + * * `from` - The starting CSS styles (a key/value object) that will be applied at the start of the animation. + * * `to` - The ending CSS styles (a key/value object) that will be applied across the animation via a CSS transition. + * * `addClass` - A space separated list of CSS classes that will be added to the element and spread across the animation. + * * `removeClass` - A space separated list of CSS classes that will be removed from the element and spread across the animation. + * * `duration` - A number value representing the total duration of the transition and/or keyframe (note that a value of 1 is 1000ms). If a value of `0` + * is provided then the animation will be skipped entirely. + * * `delay` - A number value representing the total delay of the transition and/or keyframe (note that a value of 1 is 1000ms). If a value of `true` is + * used then whatever delay value is detected from the CSS classes will be mirrored on the elements styles (e.g. by setting delay true then the style value + * of the element will be `transition-delay: DETECTED_VALUE`). Using `true` is useful when you want the CSS classes and inline styles to all share the same + * CSS delay value. + * * `stagger` - A numeric time value representing the delay between successively animated elements + * ({@link ngAnimate#css-staggering-animations Click here to learn how CSS-based staggering works in ngAnimate.}) + * * `staggerIndex` - The numeric index representing the stagger item (e.g. a value of 5 is equal to the sixth item in the stagger; therefore when a + * `stagger` option value of `0.1` is used then there will be a stagger delay of `600ms`) + * `applyClassesEarly` - Whether or not the classes being added or removed will be used when detecting the animation. This is set by `$animate` when enter/leave/move animations are fired to ensure that the CSS classes are resolved in time. (Note that this will prevent any transitions from occuring on the classes being added and removed.) + * + * @return {object} an object with start and end methods and details about the animation. + * + * * `start` - The method to start the animation. This will return a `Promise` when called. + * * `end` - This method will cancel the animation and remove all applied CSS classes and styles. + */ + +// Detect proper transitionend/animationend event names. +var CSS_PREFIX = '', TRANSITION_PROP, TRANSITIONEND_EVENT, ANIMATION_PROP, ANIMATIONEND_EVENT; + +// If unprefixed events are not supported but webkit-prefixed are, use the latter. +// Otherwise, just use W3C names, browsers not supporting them at all will just ignore them. +// Note: Chrome implements `window.onwebkitanimationend` and doesn't implement `window.onanimationend` +// but at the same time dispatches the `animationend` event and not `webkitAnimationEnd`. +// Register both events in case `window.onanimationend` is not supported because of that, +// do the same for `transitionend` as Safari is likely to exhibit similar behavior. +// Also, the only modern browser that uses vendor prefixes for transitions/keyframes is webkit +// therefore there is no reason to test anymore for other vendor prefixes: +// http://caniuse.com/#search=transition +if (window.ontransitionend === undefined && window.onwebkittransitionend !== undefined) { + CSS_PREFIX = '-webkit-'; + TRANSITION_PROP = 'WebkitTransition'; + TRANSITIONEND_EVENT = 'webkitTransitionEnd transitionend'; +} else { + TRANSITION_PROP = 'transition'; + TRANSITIONEND_EVENT = 'transitionend'; +} + +if (window.onanimationend === undefined && window.onwebkitanimationend !== undefined) { + CSS_PREFIX = '-webkit-'; + ANIMATION_PROP = 'WebkitAnimation'; + ANIMATIONEND_EVENT = 'webkitAnimationEnd animationend'; +} else { + ANIMATION_PROP = 'animation'; + ANIMATIONEND_EVENT = 'animationend'; +} + +var DURATION_KEY = 'Duration'; +var PROPERTY_KEY = 'Property'; +var DELAY_KEY = 'Delay'; +var TIMING_KEY = 'TimingFunction'; +var ANIMATION_ITERATION_COUNT_KEY = 'IterationCount'; +var ANIMATION_PLAYSTATE_KEY = 'PlayState'; +var ELAPSED_TIME_MAX_DECIMAL_PLACES = 3; +var CLOSING_TIME_BUFFER = 1.5; +var ONE_SECOND = 1000; +var BASE_TEN = 10; + +var SAFE_FAST_FORWARD_DURATION_VALUE = 9999; + +var ANIMATION_DELAY_PROP = ANIMATION_PROP + DELAY_KEY; +var ANIMATION_DURATION_PROP = ANIMATION_PROP + DURATION_KEY; + +var TRANSITION_DELAY_PROP = TRANSITION_PROP + DELAY_KEY; +var TRANSITION_DURATION_PROP = TRANSITION_PROP + DURATION_KEY; + +var DETECT_CSS_PROPERTIES = { + transitionDuration: TRANSITION_DURATION_PROP, + transitionDelay: TRANSITION_DELAY_PROP, + transitionProperty: TRANSITION_PROP + PROPERTY_KEY, + animationDuration: ANIMATION_DURATION_PROP, + animationDelay: ANIMATION_DELAY_PROP, + animationIterationCount: ANIMATION_PROP + ANIMATION_ITERATION_COUNT_KEY +}; + +var DETECT_STAGGER_CSS_PROPERTIES = { + transitionDuration: TRANSITION_DURATION_PROP, + transitionDelay: TRANSITION_DELAY_PROP, + animationDuration: ANIMATION_DURATION_PROP, + animationDelay: ANIMATION_DELAY_PROP +}; + +function computeCssStyles($window, element, properties) { + var styles = Object.create(null); + var detectedStyles = $window.getComputedStyle(element) || {}; + forEach(properties, function(formalStyleName, actualStyleName) { + var val = detectedStyles[formalStyleName]; + if (val) { + var c = val.charAt(0); + + // only numerical-based values have a negative sign or digit as the first value + if (c === '-' || c === '+' || c >= 0) { + val = parseMaxTime(val); + } + + // by setting this to null in the event that the delay is not set or is set directly as 0 + // then we can still allow for zegative values to be used later on and not mistake this + // value for being greater than any other negative value. + if (val === 0) { + val = null; + } + styles[actualStyleName] = val; + } + }); + + return styles; +} + +function parseMaxTime(str) { + var maxValue = 0; + var values = str.split(/\s*,\s*/); + forEach(values, function(value) { + // it's always safe to consider only second values and omit `ms` values since + // getComputedStyle will always handle the conversion for us + if (value.charAt(value.length - 1) == 's') { + value = value.substring(0, value.length - 1); + } + value = parseFloat(value) || 0; + maxValue = maxValue ? Math.max(value, maxValue) : value; + }); + return maxValue; +} + +function truthyTimingValue(val) { + return val === 0 || val != null; +} + +function getCssTransitionDurationStyle(duration, applyOnlyDuration) { + var style = TRANSITION_PROP; + var value = duration + 's'; + if (applyOnlyDuration) { + style += DURATION_KEY; + } else { + value += ' linear all'; + } + return [style, value]; +} + +function getCssKeyframeDurationStyle(duration) { + return [ANIMATION_DURATION_PROP, duration + 's']; +} + +function getCssDelayStyle(delay, isKeyframeAnimation) { + var prop = isKeyframeAnimation ? ANIMATION_DELAY_PROP : TRANSITION_DELAY_PROP; + return [prop, delay + 's']; +} + +function blockTransitions(node, duration) { + // we use a negative delay value since it performs blocking + // yet it doesn't kill any existing transitions running on the + // same element which makes this safe for class-based animations + var value = duration ? '-' + duration + 's' : ''; + applyInlineStyle(node, [TRANSITION_DELAY_PROP, value]); + return [TRANSITION_DELAY_PROP, value]; +} + +function blockKeyframeAnimations(node, applyBlock) { + var value = applyBlock ? 'paused' : ''; + var key = ANIMATION_PROP + ANIMATION_PLAYSTATE_KEY; + applyInlineStyle(node, [key, value]); + return [key, value]; +} + +function applyInlineStyle(node, styleTuple) { + var prop = styleTuple[0]; + var value = styleTuple[1]; + node.style[prop] = value; +} + +function createLocalCacheLookup() { + var cache = Object.create(null); + return { + flush: function() { + cache = Object.create(null); + }, + + count: function(key) { + var entry = cache[key]; + return entry ? entry.total : 0; + }, + + get: function(key) { + var entry = cache[key]; + return entry && entry.value; + }, + + put: function(key, value) { + if (!cache[key]) { + cache[key] = { total: 1, value: value }; + } else { + cache[key].total++; + } + } + }; +} + +var $AnimateCssProvider = ['$animateProvider', function($animateProvider) { + var gcsLookup = createLocalCacheLookup(); + var gcsStaggerLookup = createLocalCacheLookup(); + + this.$get = ['$window', '$$jqLite', '$$AnimateRunner', '$timeout', + '$document', '$sniffer', '$$rAFScheduler', + function($window, $$jqLite, $$AnimateRunner, $timeout, + $document, $sniffer, $$rAFScheduler) { + + var applyAnimationClasses = applyAnimationClassesFactory($$jqLite); + + var parentCounter = 0; + function gcsHashFn(node, extraClasses) { + var KEY = "$$ngAnimateParentKey"; + var parentNode = node.parentNode; + var parentID = parentNode[KEY] || (parentNode[KEY] = ++parentCounter); + return parentID + '-' + node.getAttribute('class') + '-' + extraClasses; + } + + function computeCachedCssStyles(node, className, cacheKey, properties) { + var timings = gcsLookup.get(cacheKey); + + if (!timings) { + timings = computeCssStyles($window, node, properties); + if (timings.animationIterationCount === 'infinite') { + timings.animationIterationCount = 1; + } + } + + // we keep putting this in multiple times even though the value and the cacheKey are the same + // because we're keeping an interal tally of how many duplicate animations are detected. + gcsLookup.put(cacheKey, timings); + return timings; + } + + function computeCachedCssStaggerStyles(node, className, cacheKey, properties) { + var stagger; + + // if we have one or more existing matches of matching elements + // containing the same parent + CSS styles (which is how cacheKey works) + // then staggering is possible + if (gcsLookup.count(cacheKey) > 0) { + stagger = gcsStaggerLookup.get(cacheKey); + + if (!stagger) { + var staggerClassName = pendClasses(className, '-stagger'); + + $$jqLite.addClass(node, staggerClassName); + + stagger = computeCssStyles($window, node, properties); + + // force the conversion of a null value to zero incase not set + stagger.animationDuration = Math.max(stagger.animationDuration, 0); + stagger.transitionDuration = Math.max(stagger.transitionDuration, 0); + + $$jqLite.removeClass(node, staggerClassName); + + gcsStaggerLookup.put(cacheKey, stagger); + } + } + + return stagger || {}; + } + + var bod = getDomNode($document).body; + var rafWaitQueue = []; + function waitUntilQuiet(callback) { + rafWaitQueue.push(callback); + $$rAFScheduler.waitUntilQuiet(function() { + gcsLookup.flush(); + gcsStaggerLookup.flush(); + + //the line below will force the browser to perform a repaint so + //that all the animated elements within the animation frame will + //be properly updated and drawn on screen. This is required to + //ensure that the preparation animation is properly flushed so that + //the active state picks up from there. DO NOT REMOVE THIS LINE. + //DO NOT OPTIMIZE THIS LINE. THE MINIFIER WILL REMOVE IT OTHERWISE WHICH + //WILL RESULT IN AN UNPREDICTABLE BUG THAT IS VERY HARD TO TRACK DOWN AND + //WILL TAKE YEARS AWAY FROM YOUR LIFE. + var width = bod.offsetWidth + 1; + + // we use a for loop to ensure that if the queue is changed + // during this looping then it will consider new requests + for (var i = 0; i < rafWaitQueue.length; i++) { + rafWaitQueue[i](width); + } + rafWaitQueue.length = 0; + }); + } + + return init; + + function computeTimings(node, className, cacheKey) { + var timings = computeCachedCssStyles(node, className, cacheKey, DETECT_CSS_PROPERTIES); + var aD = timings.animationDelay; + var tD = timings.transitionDelay; + timings.maxDelay = aD && tD + ? Math.max(aD, tD) + : (aD || tD); + timings.maxDuration = Math.max( + timings.animationDuration * timings.animationIterationCount, + timings.transitionDuration); + + return timings; + } + + function init(element, options) { + var node = getDomNode(element); + if (!node || !node.parentNode) { + return closeAndReturnNoopAnimator(); + } + + options = prepareAnimationOptions(options); + + var temporaryStyles = []; + var classes = element.attr('class'); + var styles = packageStyles(options); + var animationClosed; + var animationPaused; + var animationCompleted; + var runner; + var runnerHost; + var maxDelay; + var maxDelayTime; + var maxDuration; + var maxDurationTime; + + if (options.duration === 0 || (!$sniffer.animations && !$sniffer.transitions)) { + return closeAndReturnNoopAnimator(); + } + + var method = options.event && isArray(options.event) + ? options.event.join(' ') + : options.event; + + var isStructural = method && options.structural; + var structuralClassName = ''; + var addRemoveClassName = ''; + + if (isStructural) { + structuralClassName = pendClasses(method, 'ng-', true); + } else if (method) { + structuralClassName = method; + } + + if (options.addClass) { + addRemoveClassName += pendClasses(options.addClass, '-add'); + } + + if (options.removeClass) { + if (addRemoveClassName.length) { + addRemoveClassName += ' '; + } + addRemoveClassName += pendClasses(options.removeClass, '-remove'); + } + + // there may be a situation where a structural animation is combined together + // with CSS classes that need to resolve before the animation is computed. + // However this means that there is no explicit CSS code to block the animation + // from happening (by setting 0s none in the class name). If this is the case + // we need to apply the classes before the first rAF so we know to continue if + // there actually is a detected transition or keyframe animation + if (options.applyClassesEarly && addRemoveClassName.length) { + applyAnimationClasses(element, options); + addRemoveClassName = ''; + } + + var setupClasses = [structuralClassName, addRemoveClassName].join(' ').trim(); + var fullClassName = classes + ' ' + setupClasses; + var activeClasses = pendClasses(setupClasses, '-active'); + var hasToStyles = styles.to && Object.keys(styles.to).length > 0; + var containsKeyframeAnimation = (options.keyframeStyle || '').length > 0; + + // there is no way we can trigger an animation if no styles and + // no classes are being applied which would then trigger a transition, + // unless there a is raw keyframe value that is applied to the element. + if (!containsKeyframeAnimation + && !hasToStyles + && !setupClasses) { + return closeAndReturnNoopAnimator(); + } + + var cacheKey, stagger; + if (options.stagger > 0) { + var staggerVal = parseFloat(options.stagger); + stagger = { + transitionDelay: staggerVal, + animationDelay: staggerVal, + transitionDuration: 0, + animationDuration: 0 + }; + } else { + cacheKey = gcsHashFn(node, fullClassName); + stagger = computeCachedCssStaggerStyles(node, setupClasses, cacheKey, DETECT_STAGGER_CSS_PROPERTIES); + } + + $$jqLite.addClass(element, setupClasses); + + var applyOnlyDuration; + + if (options.transitionStyle) { + var transitionStyle = [TRANSITION_PROP, options.transitionStyle]; + applyInlineStyle(node, transitionStyle); + temporaryStyles.push(transitionStyle); + } + + if (options.duration >= 0) { + applyOnlyDuration = node.style[TRANSITION_PROP].length > 0; + var durationStyle = getCssTransitionDurationStyle(options.duration, applyOnlyDuration); + + // we set the duration so that it will be picked up by getComputedStyle later + applyInlineStyle(node, durationStyle); + temporaryStyles.push(durationStyle); + } + + if (options.keyframeStyle) { + var keyframeStyle = [ANIMATION_PROP, options.keyframeStyle]; + applyInlineStyle(node, keyframeStyle); + temporaryStyles.push(keyframeStyle); + } + + var itemIndex = stagger + ? options.staggerIndex >= 0 + ? options.staggerIndex + : gcsLookup.count(cacheKey) + : 0; + + var isFirst = itemIndex === 0; + + // this is a pre-emptive way of forcing the setup classes to be added and applied INSTANTLY + // without causing any combination of transitions to kick in. By adding a negative delay value + // it forces the setup class' transition to end immediately. We later then remove the negative + // transition delay to allow for the transition to naturally do it's thing. The beauty here is + // that if there is no transition defined then nothing will happen and this will also allow + // other transitions to be stacked on top of each other without any chopping them out. + if (isFirst) { + blockTransitions(node, SAFE_FAST_FORWARD_DURATION_VALUE); + } + + var timings = computeTimings(node, fullClassName, cacheKey); + var relativeDelay = timings.maxDelay; + maxDelay = Math.max(relativeDelay, 0); + maxDuration = timings.maxDuration; + + var flags = {}; + flags.hasTransitions = timings.transitionDuration > 0; + flags.hasAnimations = timings.animationDuration > 0; + flags.hasTransitionAll = flags.hasTransitions && timings.transitionProperty == 'all'; + flags.applyTransitionDuration = hasToStyles && ( + (flags.hasTransitions && !flags.hasTransitionAll) + || (flags.hasAnimations && !flags.hasTransitions)); + flags.applyAnimationDuration = options.duration && flags.hasAnimations; + flags.applyTransitionDelay = truthyTimingValue(options.delay) && (flags.applyTransitionDuration || flags.hasTransitions); + flags.applyAnimationDelay = truthyTimingValue(options.delay) && flags.hasAnimations; + flags.recalculateTimingStyles = addRemoveClassName.length > 0; + + if (flags.applyTransitionDuration || flags.applyAnimationDuration) { + maxDuration = options.duration ? parseFloat(options.duration) : maxDuration; + + if (flags.applyTransitionDuration) { + flags.hasTransitions = true; + timings.transitionDuration = maxDuration; + applyOnlyDuration = node.style[TRANSITION_PROP + PROPERTY_KEY].length > 0; + temporaryStyles.push(getCssTransitionDurationStyle(maxDuration, applyOnlyDuration)); + } + + if (flags.applyAnimationDuration) { + flags.hasAnimations = true; + timings.animationDuration = maxDuration; + temporaryStyles.push(getCssKeyframeDurationStyle(maxDuration)); + } + } + + if (maxDuration === 0 && !flags.recalculateTimingStyles) { + return closeAndReturnNoopAnimator(); + } + + // we need to recalculate the delay value since we used a pre-emptive negative + // delay value and the delay value is required for the final event checking. This + // property will ensure that this will happen after the RAF phase has passed. + if (options.duration == null && timings.transitionDuration > 0) { + flags.recalculateTimingStyles = flags.recalculateTimingStyles || isFirst; + } + + maxDelayTime = maxDelay * ONE_SECOND; + maxDurationTime = maxDuration * ONE_SECOND; + if (!options.skipBlocking) { + flags.blockTransition = timings.transitionDuration > 0; + flags.blockKeyframeAnimation = timings.animationDuration > 0 && + stagger.animationDelay > 0 && + stagger.animationDuration === 0; + } + + applyAnimationFromStyles(element, options); + if (!flags.blockTransition) { + blockTransitions(node, false); + } + + applyBlocking(maxDuration); + + // TODO(matsko): for 1.5 change this code to have an animator object for better debugging + return { + $$willAnimate: true, + end: endFn, + start: function() { + if (animationClosed) return; + + runnerHost = { + end: endFn, + cancel: cancelFn, + resume: null, //this will be set during the start() phase + pause: null + }; + + runner = new $$AnimateRunner(runnerHost); + + waitUntilQuiet(start); + + // we don't have access to pause/resume the animation + // since it hasn't run yet. AnimateRunner will therefore + // set noop functions for resume and pause and they will + // later be overridden once the animation is triggered + return runner; + } + }; + + function endFn() { + close(); + } + + function cancelFn() { + close(true); + } + + function close(rejected) { // jshint ignore:line + // if the promise has been called already then we shouldn't close + // the animation again + if (animationClosed || (animationCompleted && animationPaused)) return; + animationClosed = true; + animationPaused = false; + + $$jqLite.removeClass(element, setupClasses); + $$jqLite.removeClass(element, activeClasses); + + blockKeyframeAnimations(node, false); + blockTransitions(node, false); + + forEach(temporaryStyles, function(entry) { + // There is only one way to remove inline style properties entirely from elements. + // By using `removeProperty` this works, but we need to convert camel-cased CSS + // styles down to hyphenated values. + node.style[entry[0]] = ''; + }); + + applyAnimationClasses(element, options); + applyAnimationStyles(element, options); + + // the reason why we have this option is to allow a synchronous closing callback + // that is fired as SOON as the animation ends (when the CSS is removed) or if + // the animation never takes off at all. A good example is a leave animation since + // the element must be removed just after the animation is over or else the element + // will appear on screen for one animation frame causing an overbearing flicker. + if (options.onDone) { + options.onDone(); + } + + // if the preparation function fails then the promise is not setup + if (runner) { + runner.complete(!rejected); + } + } + + function applyBlocking(duration) { + if (flags.blockTransition) { + blockTransitions(node, duration); + } + + if (flags.blockKeyframeAnimation) { + blockKeyframeAnimations(node, !!duration); + } + } + + function closeAndReturnNoopAnimator() { + runner = new $$AnimateRunner({ + end: endFn, + cancel: cancelFn + }); + + close(); + + return { + $$willAnimate: false, + start: function() { + return runner; + }, + end: endFn + }; + } + + function start() { + if (animationClosed) return; + if (!node.parentNode) { + close(); + return; + } + + var startTime, events = []; + + // even though we only pause keyframe animations here the pause flag + // will still happen when transitions are used. Only the transition will + // not be paused since that is not possible. If the animation ends when + // paused then it will not complete until unpaused or cancelled. + var playPause = function(playAnimation) { + if (!animationCompleted) { + animationPaused = !playAnimation; + if (timings.animationDuration) { + var value = blockKeyframeAnimations(node, animationPaused); + animationPaused + ? temporaryStyles.push(value) + : removeFromArray(temporaryStyles, value); + } + } else if (animationPaused && playAnimation) { + animationPaused = false; + close(); + } + }; + + // checking the stagger duration prevents an accidently cascade of the CSS delay style + // being inherited from the parent. If the transition duration is zero then we can safely + // rely that the delay value is an intential stagger delay style. + var maxStagger = itemIndex > 0 + && ((timings.transitionDuration && stagger.transitionDuration === 0) || + (timings.animationDuration && stagger.animationDuration === 0)) + && Math.max(stagger.animationDelay, stagger.transitionDelay); + if (maxStagger) { + $timeout(triggerAnimationStart, + Math.floor(maxStagger * itemIndex * ONE_SECOND), + false); + } else { + triggerAnimationStart(); + } + + // this will decorate the existing promise runner with pause/resume methods + runnerHost.resume = function() { + playPause(true); + }; + + runnerHost.pause = function() { + playPause(false); + }; + + function triggerAnimationStart() { + // just incase a stagger animation kicks in when the animation + // itself was cancelled entirely + if (animationClosed) return; + + applyBlocking(false); + + forEach(temporaryStyles, function(entry) { + var key = entry[0]; + var value = entry[1]; + node.style[key] = value; + }); + + applyAnimationClasses(element, options); + $$jqLite.addClass(element, activeClasses); + + if (flags.recalculateTimingStyles) { + fullClassName = node.className + ' ' + setupClasses; + cacheKey = gcsHashFn(node, fullClassName); + + timings = computeTimings(node, fullClassName, cacheKey); + relativeDelay = timings.maxDelay; + maxDelay = Math.max(relativeDelay, 0); + maxDuration = timings.maxDuration; + + if (maxDuration === 0) { + close(); + return; + } + + flags.hasTransitions = timings.transitionDuration > 0; + flags.hasAnimations = timings.animationDuration > 0; + } + + if (flags.applyTransitionDelay || flags.applyAnimationDelay) { + relativeDelay = typeof options.delay !== "boolean" && truthyTimingValue(options.delay) + ? parseFloat(options.delay) + : relativeDelay; + + maxDelay = Math.max(relativeDelay, 0); + + var delayStyle; + if (flags.applyTransitionDelay) { + timings.transitionDelay = relativeDelay; + delayStyle = getCssDelayStyle(relativeDelay); + temporaryStyles.push(delayStyle); + node.style[delayStyle[0]] = delayStyle[1]; + } + + if (flags.applyAnimationDelay) { + timings.animationDelay = relativeDelay; + delayStyle = getCssDelayStyle(relativeDelay, true); + temporaryStyles.push(delayStyle); + node.style[delayStyle[0]] = delayStyle[1]; + } + } + + maxDelayTime = maxDelay * ONE_SECOND; + maxDurationTime = maxDuration * ONE_SECOND; + + if (options.easing) { + var easeProp, easeVal = options.easing; + if (flags.hasTransitions) { + easeProp = TRANSITION_PROP + TIMING_KEY; + temporaryStyles.push([easeProp, easeVal]); + node.style[easeProp] = easeVal; + } + if (flags.hasAnimations) { + easeProp = ANIMATION_PROP + TIMING_KEY; + temporaryStyles.push([easeProp, easeVal]); + node.style[easeProp] = easeVal; + } + } + + if (timings.transitionDuration) { + events.push(TRANSITIONEND_EVENT); + } + + if (timings.animationDuration) { + events.push(ANIMATIONEND_EVENT); + } + + startTime = Date.now(); + element.on(events.join(' '), onAnimationProgress); + $timeout(onAnimationExpired, maxDelayTime + CLOSING_TIME_BUFFER * maxDurationTime); + + applyAnimationToStyles(element, options); + } + + function onAnimationExpired() { + // although an expired animation is a failed animation, getting to + // this outcome is very easy if the CSS code screws up. Therefore we + // should still continue normally as if the animation completed correctly. + close(); + } + + function onAnimationProgress(event) { + event.stopPropagation(); + var ev = event.originalEvent || event; + var timeStamp = ev.$manualTimeStamp || ev.timeStamp || Date.now(); + + /* Firefox (or possibly just Gecko) likes to not round values up + * when a ms measurement is used for the animation */ + var elapsedTime = parseFloat(ev.elapsedTime.toFixed(ELAPSED_TIME_MAX_DECIMAL_PLACES)); + + /* $manualTimeStamp is a mocked timeStamp value which is set + * within browserTrigger(). This is only here so that tests can + * mock animations properly. Real events fallback to event.timeStamp, + * or, if they don't, then a timeStamp is automatically created for them. + * We're checking to see if the timeStamp surpasses the expected delay, + * but we're using elapsedTime instead of the timeStamp on the 2nd + * pre-condition since animations sometimes close off early */ + if (Math.max(timeStamp - startTime, 0) >= maxDelayTime && elapsedTime >= maxDuration) { + // we set this flag to ensure that if the transition is paused then, when resumed, + // the animation will automatically close itself since transitions cannot be paused. + animationCompleted = true; + close(); + } + } + } + } + }]; +}]; + +var $$AnimateCssDriverProvider = ['$$animationProvider', function($$animationProvider) { + $$animationProvider.drivers.push('$$animateCssDriver'); + + var NG_ANIMATE_SHIM_CLASS_NAME = 'ng-animate-shim'; + var NG_ANIMATE_ANCHOR_CLASS_NAME = 'ng-anchor'; + + var NG_OUT_ANCHOR_CLASS_NAME = 'ng-anchor-out'; + var NG_IN_ANCHOR_CLASS_NAME = 'ng-anchor-in'; + + this.$get = ['$animateCss', '$rootScope', '$$AnimateRunner', '$rootElement', '$document', '$sniffer', + function($animateCss, $rootScope, $$AnimateRunner, $rootElement, $document, $sniffer) { + + // only browsers that support these properties can render animations + if (!$sniffer.animations && !$sniffer.transitions) return noop; + + var bodyNode = getDomNode($document).body; + var rootNode = getDomNode($rootElement); + + var rootBodyElement = jqLite(bodyNode.parentNode === rootNode ? bodyNode : rootNode); + + return function initDriverFn(animationDetails) { + return animationDetails.from && animationDetails.to + ? prepareFromToAnchorAnimation(animationDetails.from, + animationDetails.to, + animationDetails.classes, + animationDetails.anchors) + : prepareRegularAnimation(animationDetails); + }; + + function filterCssClasses(classes) { + //remove all the `ng-` stuff + return classes.replace(/\bng-\S+\b/g, ''); + } + + function getUniqueValues(a, b) { + if (isString(a)) a = a.split(' '); + if (isString(b)) b = b.split(' '); + return a.filter(function(val) { + return b.indexOf(val) === -1; + }).join(' '); + } + + function prepareAnchoredAnimation(classes, outAnchor, inAnchor) { + var clone = jqLite(getDomNode(outAnchor).cloneNode(true)); + var startingClasses = filterCssClasses(getClassVal(clone)); + + outAnchor.addClass(NG_ANIMATE_SHIM_CLASS_NAME); + inAnchor.addClass(NG_ANIMATE_SHIM_CLASS_NAME); + + clone.addClass(NG_ANIMATE_ANCHOR_CLASS_NAME); + + rootBodyElement.append(clone); + + var animatorIn, animatorOut = prepareOutAnimation(); + + // the user may not end up using the `out` animation and + // only making use of the `in` animation or vice-versa. + // In either case we should allow this and not assume the + // animation is over unless both animations are not used. + if (!animatorOut) { + animatorIn = prepareInAnimation(); + if (!animatorIn) { + return end(); + } + } + + var startingAnimator = animatorOut || animatorIn; + + return { + start: function() { + var runner; + + var currentAnimation = startingAnimator.start(); + currentAnimation.done(function() { + currentAnimation = null; + if (!animatorIn) { + animatorIn = prepareInAnimation(); + if (animatorIn) { + currentAnimation = animatorIn.start(); + currentAnimation.done(function() { + currentAnimation = null; + end(); + runner.complete(); + }); + return currentAnimation; + } + } + // in the event that there is no `in` animation + end(); + runner.complete(); + }); + + runner = new $$AnimateRunner({ + end: endFn, + cancel: endFn + }); + + return runner; + + function endFn() { + if (currentAnimation) { + currentAnimation.end(); + } + } + } + }; + + function calculateAnchorStyles(anchor) { + var styles = {}; + + var coords = getDomNode(anchor).getBoundingClientRect(); + + // we iterate directly since safari messes up and doesn't return + // all the keys for the coods object when iterated + forEach(['width','height','top','left'], function(key) { + var value = coords[key]; + switch (key) { + case 'top': + value += bodyNode.scrollTop; + break; + case 'left': + value += bodyNode.scrollLeft; + break; + } + styles[key] = Math.floor(value) + 'px'; + }); + return styles; + } + + function prepareOutAnimation() { + var animator = $animateCss(clone, { + addClass: NG_OUT_ANCHOR_CLASS_NAME, + delay: true, + from: calculateAnchorStyles(outAnchor) + }); + + // read the comment within `prepareRegularAnimation` to understand + // why this check is necessary + return animator.$$willAnimate ? animator : null; + } + + function getClassVal(element) { + return element.attr('class') || ''; + } + + function prepareInAnimation() { + var endingClasses = filterCssClasses(getClassVal(inAnchor)); + var toAdd = getUniqueValues(endingClasses, startingClasses); + var toRemove = getUniqueValues(startingClasses, endingClasses); + + var animator = $animateCss(clone, { + to: calculateAnchorStyles(inAnchor), + addClass: NG_IN_ANCHOR_CLASS_NAME + ' ' + toAdd, + removeClass: NG_OUT_ANCHOR_CLASS_NAME + ' ' + toRemove, + delay: true + }); + + // read the comment within `prepareRegularAnimation` to understand + // why this check is necessary + return animator.$$willAnimate ? animator : null; + } + + function end() { + clone.remove(); + outAnchor.removeClass(NG_ANIMATE_SHIM_CLASS_NAME); + inAnchor.removeClass(NG_ANIMATE_SHIM_CLASS_NAME); + } + } + + function prepareFromToAnchorAnimation(from, to, classes, anchors) { + var fromAnimation = prepareRegularAnimation(from); + var toAnimation = prepareRegularAnimation(to); + + var anchorAnimations = []; + forEach(anchors, function(anchor) { + var outElement = anchor['out']; + var inElement = anchor['in']; + var animator = prepareAnchoredAnimation(classes, outElement, inElement); + if (animator) { + anchorAnimations.push(animator); + } + }); + + // no point in doing anything when there are no elements to animate + if (!fromAnimation && !toAnimation && anchorAnimations.length === 0) return; + + return { + start: function() { + var animationRunners = []; + + if (fromAnimation) { + animationRunners.push(fromAnimation.start()); + } + + if (toAnimation) { + animationRunners.push(toAnimation.start()); + } + + forEach(anchorAnimations, function(animation) { + animationRunners.push(animation.start()); + }); + + var runner = new $$AnimateRunner({ + end: endFn, + cancel: endFn // CSS-driven animations cannot be cancelled, only ended + }); + + $$AnimateRunner.all(animationRunners, function(status) { + runner.complete(status); + }); + + return runner; + + function endFn() { + forEach(animationRunners, function(runner) { + runner.end(); + }); + } + } + }; + } + + function prepareRegularAnimation(animationDetails) { + var element = animationDetails.element; + var options = animationDetails.options || {}; + + if (animationDetails.structural) { + // structural animations ensure that the CSS classes are always applied + // before the detection starts. + options.structural = options.applyClassesEarly = true; + + // we special case the leave animation since we want to ensure that + // the element is removed as soon as the animation is over. Otherwise + // a flicker might appear or the element may not be removed at all + options.event = animationDetails.event; + if (options.event === 'leave') { + options.onDone = options.domOperation; + } + } else { + options.event = null; + } + + var animator = $animateCss(element, options); + + // the driver lookup code inside of $$animation attempts to spawn a + // driver one by one until a driver returns a.$$willAnimate animator object. + // $animateCss will always return an object, however, it will pass in + // a flag as a hint as to whether an animation was detected or not + return animator.$$willAnimate ? animator : null; + } + }]; +}]; + +// TODO(matsko): use caching here to speed things up for detection +// TODO(matsko): add documentation +// by the time... + +var $$AnimateJsProvider = ['$animateProvider', function($animateProvider) { + this.$get = ['$injector', '$$AnimateRunner', '$$rAFMutex', '$$jqLite', + function($injector, $$AnimateRunner, $$rAFMutex, $$jqLite) { + + var applyAnimationClasses = applyAnimationClassesFactory($$jqLite); + // $animateJs(element, 'enter'); + return function(element, event, classes, options) { + // the `classes` argument is optional and if it is not used + // then the classes will be resolved from the element's className + // property as well as options.addClass/options.removeClass. + if (arguments.length === 3 && isObject(classes)) { + options = classes; + classes = null; + } + + options = prepareAnimationOptions(options); + if (!classes) { + classes = element.attr('class') || ''; + if (options.addClass) { + classes += ' ' + options.addClass; + } + if (options.removeClass) { + classes += ' ' + options.removeClass; + } + } + + var classesToAdd = options.addClass; + var classesToRemove = options.removeClass; + + // the lookupAnimations function returns a series of animation objects that are + // matched up with one or more of the CSS classes. These animation objects are + // defined via the module.animation factory function. If nothing is detected then + // we don't return anything which then makes $animation query the next driver. + var animations = lookupAnimations(classes); + var before, after; + if (animations.length) { + var afterFn, beforeFn; + if (event == 'leave') { + beforeFn = 'leave'; + afterFn = 'afterLeave'; // TODO(matsko): get rid of this + } else { + beforeFn = 'before' + event.charAt(0).toUpperCase() + event.substr(1); + afterFn = event; + } + + if (event !== 'enter' && event !== 'move') { + before = packageAnimations(element, event, options, animations, beforeFn); + } + after = packageAnimations(element, event, options, animations, afterFn); + } + + // no matching animations + if (!before && !after) return; + + function applyOptions() { + options.domOperation(); + applyAnimationClasses(element, options); + } + + return { + start: function() { + var closeActiveAnimations; + var chain = []; + + if (before) { + chain.push(function(fn) { + closeActiveAnimations = before(fn); + }); + } + + if (chain.length) { + chain.push(function(fn) { + applyOptions(); + fn(true); + }); + } else { + applyOptions(); + } + + if (after) { + chain.push(function(fn) { + closeActiveAnimations = after(fn); + }); + } + + var animationClosed = false; + var runner = new $$AnimateRunner({ + end: function() { + endAnimations(); + }, + cancel: function() { + endAnimations(true); + } + }); + + $$AnimateRunner.chain(chain, onComplete); + return runner; + + function onComplete(success) { + animationClosed = true; + applyOptions(); + applyAnimationStyles(element, options); + runner.complete(success); + } + + function endAnimations(cancelled) { + if (!animationClosed) { + (closeActiveAnimations || noop)(cancelled); + onComplete(cancelled); + } + } + } + }; + + function executeAnimationFn(fn, element, event, options, onDone) { + var args; + switch (event) { + case 'animate': + args = [element, options.from, options.to, onDone]; + break; + + case 'setClass': + args = [element, classesToAdd, classesToRemove, onDone]; + break; + + case 'addClass': + args = [element, classesToAdd, onDone]; + break; + + case 'removeClass': + args = [element, classesToRemove, onDone]; + break; + + default: + args = [element, onDone]; + break; + } + + args.push(options); + + var value = fn.apply(fn, args); + if (value) { + if (isFunction(value.start)) { + value = value.start(); + } + + if (value instanceof $$AnimateRunner) { + value.done(onDone); + } else if (isFunction(value)) { + // optional onEnd / onCancel callback + return value; + } + } + + return noop; + } + + function groupEventedAnimations(element, event, options, animations, fnName) { + var operations = []; + forEach(animations, function(ani) { + var animation = ani[fnName]; + if (!animation) return; + + // note that all of these animations will run in parallel + operations.push(function() { + var runner; + var endProgressCb; + + var resolved = false; + var onAnimationComplete = function(rejected) { + if (!resolved) { + resolved = true; + (endProgressCb || noop)(rejected); + runner.complete(!rejected); + } + }; + + runner = new $$AnimateRunner({ + end: function() { + onAnimationComplete(); + }, + cancel: function() { + onAnimationComplete(true); + } + }); + + endProgressCb = executeAnimationFn(animation, element, event, options, function(result) { + var cancelled = result === false; + onAnimationComplete(cancelled); + }); + + return runner; + }); + }); + + return operations; + } + + function packageAnimations(element, event, options, animations, fnName) { + var operations = groupEventedAnimations(element, event, options, animations, fnName); + if (operations.length === 0) { + var a,b; + if (fnName === 'beforeSetClass') { + a = groupEventedAnimations(element, 'removeClass', options, animations, 'beforeRemoveClass'); + b = groupEventedAnimations(element, 'addClass', options, animations, 'beforeAddClass'); + } else if (fnName === 'setClass') { + a = groupEventedAnimations(element, 'removeClass', options, animations, 'removeClass'); + b = groupEventedAnimations(element, 'addClass', options, animations, 'addClass'); + } + + if (a) { + operations = operations.concat(a); + } + if (b) { + operations = operations.concat(b); + } + } + + if (operations.length === 0) return; + + // TODO(matsko): add documentation + return function startAnimation(callback) { + var runners = []; + if (operations.length) { + forEach(operations, function(animateFn) { + runners.push(animateFn()); + }); + } + + runners.length ? $$AnimateRunner.all(runners, callback) : callback(); + + return function endFn(reject) { + forEach(runners, function(runner) { + reject ? runner.cancel() : runner.end(); + }); + }; + }; + } + }; + + function lookupAnimations(classes) { + classes = isArray(classes) ? classes : classes.split(' '); + var matches = [], flagMap = {}; + for (var i=0; i < classes.length; i++) { + var klass = classes[i], + animationFactory = $animateProvider.$$registeredAnimations[klass]; + if (animationFactory && !flagMap[klass]) { + matches.push($injector.get(animationFactory)); + flagMap[klass] = true; + } + } + return matches; + } + }]; +}]; + +var $$AnimateJsDriverProvider = ['$$animationProvider', function($$animationProvider) { + $$animationProvider.drivers.push('$$animateJsDriver'); + this.$get = ['$$animateJs', '$$AnimateRunner', function($$animateJs, $$AnimateRunner) { + return function initDriverFn(animationDetails) { + if (animationDetails.from && animationDetails.to) { + var fromAnimation = prepareAnimation(animationDetails.from); + var toAnimation = prepareAnimation(animationDetails.to); + if (!fromAnimation && !toAnimation) return; + + return { + start: function() { + var animationRunners = []; + + if (fromAnimation) { + animationRunners.push(fromAnimation.start()); + } + + if (toAnimation) { + animationRunners.push(toAnimation.start()); + } + + $$AnimateRunner.all(animationRunners, done); + + var runner = new $$AnimateRunner({ + end: endFnFactory(), + cancel: endFnFactory() + }); + + return runner; + + function endFnFactory() { + return function() { + forEach(animationRunners, function(runner) { + // at this point we cannot cancel animations for groups just yet. 1.5+ + runner.end(); + }); + }; + } + + function done(status) { + runner.complete(status); + } + } + }; + } else { + return prepareAnimation(animationDetails); + } + }; + + function prepareAnimation(animationDetails) { + // TODO(matsko): make sure to check for grouped animations and delegate down to normal animations + var element = animationDetails.element; + var event = animationDetails.event; + var options = animationDetails.options; + var classes = animationDetails.classes; + return $$animateJs(element, event, classes, options); + } + }]; +}]; + +var NG_ANIMATE_ATTR_NAME = 'data-ng-animate'; +var NG_ANIMATE_PIN_DATA = '$ngAnimatePin'; +var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) { + var PRE_DIGEST_STATE = 1; + var RUNNING_STATE = 2; + + var rules = this.rules = { + skip: [], + cancel: [], + join: [] + }; + + function isAllowed(ruleType, element, currentAnimation, previousAnimation) { + return rules[ruleType].some(function(fn) { + return fn(element, currentAnimation, previousAnimation); + }); + } + + function hasAnimationClasses(options, and) { + options = options || {}; + var a = (options.addClass || '').length > 0; + var b = (options.removeClass || '').length > 0; + return and ? a && b : a || b; + } + + rules.join.push(function(element, newAnimation, currentAnimation) { + // if the new animation is class-based then we can just tack that on + return !newAnimation.structural && hasAnimationClasses(newAnimation.options); + }); + + rules.skip.push(function(element, newAnimation, currentAnimation) { + // there is no need to animate anything if no classes are being added and + // there is no structural animation that will be triggered + return !newAnimation.structural && !hasAnimationClasses(newAnimation.options); + }); + + rules.skip.push(function(element, newAnimation, currentAnimation) { + // why should we trigger a new structural animation if the element will + // be removed from the DOM anyway? + return currentAnimation.event == 'leave' && newAnimation.structural; + }); + + rules.skip.push(function(element, newAnimation, currentAnimation) { + // if there is a current animation then skip the class-based animation + return currentAnimation.structural && !newAnimation.structural; + }); + + rules.cancel.push(function(element, newAnimation, currentAnimation) { + // there can never be two structural animations running at the same time + return currentAnimation.structural && newAnimation.structural; + }); + + rules.cancel.push(function(element, newAnimation, currentAnimation) { + // if the previous animation is already running, but the new animation will + // be triggered, but the new animation is structural + return currentAnimation.state === RUNNING_STATE && newAnimation.structural; + }); + + rules.cancel.push(function(element, newAnimation, currentAnimation) { + var nO = newAnimation.options; + var cO = currentAnimation.options; + + // if the exact same CSS class is added/removed then it's safe to cancel it + return (nO.addClass && nO.addClass === cO.removeClass) || (nO.removeClass && nO.removeClass === cO.addClass); + }); + + this.$get = ['$$rAF', '$rootScope', '$rootElement', '$document', '$$HashMap', + '$$animation', '$$AnimateRunner', '$templateRequest', '$$jqLite', + function($$rAF, $rootScope, $rootElement, $document, $$HashMap, + $$animation, $$AnimateRunner, $templateRequest, $$jqLite) { + + var activeAnimationsLookup = new $$HashMap(); + var disabledElementsLookup = new $$HashMap(); + + var animationsEnabled = null; + + // Wait until all directive and route-related templates are downloaded and + // compiled. The $templateRequest.totalPendingRequests variable keeps track of + // all of the remote templates being currently downloaded. If there are no + // templates currently downloading then the watcher will still fire anyway. + var deregisterWatch = $rootScope.$watch( + function() { return $templateRequest.totalPendingRequests === 0; }, + function(isEmpty) { + if (!isEmpty) return; + deregisterWatch(); + + // Now that all templates have been downloaded, $animate will wait until + // the post digest queue is empty before enabling animations. By having two + // calls to $postDigest calls we can ensure that the flag is enabled at the + // very end of the post digest queue. Since all of the animations in $animate + // use $postDigest, it's important that the code below executes at the end. + // This basically means that the page is fully downloaded and compiled before + // any animations are triggered. + $rootScope.$$postDigest(function() { + $rootScope.$$postDigest(function() { + // we check for null directly in the event that the application already called + // .enabled() with whatever arguments that it provided it with + if (animationsEnabled === null) { + animationsEnabled = true; + } + }); + }); + } + ); + + var bodyElement = jqLite($document[0].body); + + var callbackRegistry = {}; + + // remember that the classNameFilter is set during the provider/config + // stage therefore we can optimize here and setup a helper function + var classNameFilter = $animateProvider.classNameFilter(); + var isAnimatableClassName = !classNameFilter + ? function() { return true; } + : function(className) { + return classNameFilter.test(className); + }; + + var applyAnimationClasses = applyAnimationClassesFactory($$jqLite); + + function normalizeAnimationOptions(element, options) { + return mergeAnimationOptions(element, options, {}); + } + + function findCallbacks(element, event) { + var targetNode = getDomNode(element); + + var matches = []; + var entries = callbackRegistry[event]; + if (entries) { + forEach(entries, function(entry) { + if (entry.node.contains(targetNode)) { + matches.push(entry.callback); + } + }); + } + + return matches; + } + + function triggerCallback(event, element, phase, data) { + $$rAF(function() { + forEach(findCallbacks(element, event), function(callback) { + callback(element, phase, data); + }); + }); + } + + return { + on: function(event, container, callback) { + var node = extractElementNode(container); + callbackRegistry[event] = callbackRegistry[event] || []; + callbackRegistry[event].push({ + node: node, + callback: callback + }); + }, + + off: function(event, container, callback) { + var entries = callbackRegistry[event]; + if (!entries) return; + + callbackRegistry[event] = arguments.length === 1 + ? null + : filterFromRegistry(entries, container, callback); + + function filterFromRegistry(list, matchContainer, matchCallback) { + var containerNode = extractElementNode(matchContainer); + return list.filter(function(entry) { + var isMatch = entry.node === containerNode && + (!matchCallback || entry.callback === matchCallback); + return !isMatch; + }); + } + }, + + pin: function(element, parentElement) { + assertArg(isElement(element), 'element', 'not an element'); + assertArg(isElement(parentElement), 'parentElement', 'not an element'); + element.data(NG_ANIMATE_PIN_DATA, parentElement); + }, + + push: function(element, event, options, domOperation) { + options = options || {}; + options.domOperation = domOperation; + return queueAnimation(element, event, options); + }, + + // this method has four signatures: + // () - global getter + // (bool) - global setter + // (element) - element getter + // (element, bool) - element setter + enabled: function(element, bool) { + var argCount = arguments.length; + + if (argCount === 0) { + // () - Global getter + bool = !!animationsEnabled; + } else { + var hasElement = isElement(element); + + if (!hasElement) { + // (bool) - Global setter + bool = animationsEnabled = !!element; + } else { + var node = getDomNode(element); + var recordExists = disabledElementsLookup.get(node); + + if (argCount === 1) { + // (element) - Element getter + bool = !recordExists; + } else { + // (element, bool) - Element setter + bool = !!bool; + if (!bool) { + disabledElementsLookup.put(node, true); + } else if (recordExists) { + disabledElementsLookup.remove(node); + } + } + } + } + + return bool; + } + }; + + function queueAnimation(element, event, options) { + var node, parent; + element = stripCommentsFromElement(element); + if (element) { + node = getDomNode(element); + parent = element.parent(); + } + + options = prepareAnimationOptions(options); + + // we create a fake runner with a working promise. + // These methods will become available after the digest has passed + var runner = new $$AnimateRunner(); + + // there are situations where a directive issues an animation for + // a jqLite wrapper that contains only comment nodes... If this + // happens then there is no way we can perform an animation + if (!node) { + close(); + return runner; + } + + if (isArray(options.addClass)) { + options.addClass = options.addClass.join(' '); + } + + if (isArray(options.removeClass)) { + options.removeClass = options.removeClass.join(' '); + } + + if (options.from && !isObject(options.from)) { + options.from = null; + } + + if (options.to && !isObject(options.to)) { + options.to = null; + } + + var className = [node.className, options.addClass, options.removeClass].join(' '); + if (!isAnimatableClassName(className)) { + close(); + return runner; + } + + var isStructural = ['enter', 'move', 'leave'].indexOf(event) >= 0; + + // this is a hard disable of all animations for the application or on + // the element itself, therefore there is no need to continue further + // past this point if not enabled + var skipAnimations = !animationsEnabled || disabledElementsLookup.get(node); + var existingAnimation = (!skipAnimations && activeAnimationsLookup.get(node)) || {}; + var hasExistingAnimation = !!existingAnimation.state; + + // there is no point in traversing the same collection of parent ancestors if a followup + // animation will be run on the same element that already did all that checking work + if (!skipAnimations && (!hasExistingAnimation || existingAnimation.state != PRE_DIGEST_STATE)) { + skipAnimations = !areAnimationsAllowed(element, parent, event); + } + + if (skipAnimations) { + close(); + return runner; + } + + if (isStructural) { + closeChildAnimations(element); + } + + var newAnimation = { + structural: isStructural, + element: element, + event: event, + close: close, + options: options, + runner: runner + }; + + if (hasExistingAnimation) { + var skipAnimationFlag = isAllowed('skip', element, newAnimation, existingAnimation); + if (skipAnimationFlag) { + if (existingAnimation.state === RUNNING_STATE) { + close(); + return runner; + } else { + mergeAnimationOptions(element, existingAnimation.options, options); + return existingAnimation.runner; + } + } + + var cancelAnimationFlag = isAllowed('cancel', element, newAnimation, existingAnimation); + if (cancelAnimationFlag) { + if (existingAnimation.state === RUNNING_STATE) { + // this will end the animation right away and it is safe + // to do so since the animation is already running and the + // runner callback code will run in async + existingAnimation.runner.end(); + } else if (existingAnimation.structural) { + // this means that the animation is queued into a digest, but + // hasn't started yet. Therefore it is safe to run the close + // method which will call the runner methods in async. + existingAnimation.close(); + } else { + // this will merge the existing animation options into this new follow-up animation + mergeAnimationOptions(element, newAnimation.options, existingAnimation.options); + } + } else { + // a joined animation means that this animation will take over the existing one + // so an example would involve a leave animation taking over an enter. Then when + // the postDigest kicks in the enter will be ignored. + var joinAnimationFlag = isAllowed('join', element, newAnimation, existingAnimation); + if (joinAnimationFlag) { + if (existingAnimation.state === RUNNING_STATE) { + normalizeAnimationOptions(element, options); + } else { + event = newAnimation.event = existingAnimation.event; + options = mergeAnimationOptions(element, existingAnimation.options, newAnimation.options); + return runner; + } + } + } + } else { + // normalization in this case means that it removes redundant CSS classes that + // already exist (addClass) or do not exist (removeClass) on the element + normalizeAnimationOptions(element, options); + } + + // when the options are merged and cleaned up we may end up not having to do + // an animation at all, therefore we should check this before issuing a post + // digest callback. Structural animations will always run no matter what. + var isValidAnimation = newAnimation.structural; + if (!isValidAnimation) { + // animate (from/to) can be quickly checked first, otherwise we check if any classes are present + isValidAnimation = (newAnimation.event === 'animate' && Object.keys(newAnimation.options.to || {}).length > 0) + || hasAnimationClasses(newAnimation.options); + } + + if (!isValidAnimation) { + close(); + clearElementAnimationState(element); + return runner; + } + + if (isStructural) { + closeParentClassBasedAnimations(parent); + } + + // the counter keeps track of cancelled animations + var counter = (existingAnimation.counter || 0) + 1; + newAnimation.counter = counter; + + markElementAnimationState(element, PRE_DIGEST_STATE, newAnimation); + + $rootScope.$$postDigest(function() { + var animationDetails = activeAnimationsLookup.get(node); + var animationCancelled = !animationDetails; + animationDetails = animationDetails || {}; + + // if addClass/removeClass is called before something like enter then the + // registered parent element may not be present. The code below will ensure + // that a final value for parent element is obtained + var parentElement = element.parent() || []; + + // animate/structural/class-based animations all have requirements. Otherwise there + // is no point in performing an animation. The parent node must also be set. + var isValidAnimation = parentElement.length > 0 + && (animationDetails.event === 'animate' + || animationDetails.structural + || hasAnimationClasses(animationDetails.options)); + + // this means that the previous animation was cancelled + // even if the follow-up animation is the same event + if (animationCancelled || animationDetails.counter !== counter || !isValidAnimation) { + // if another animation did not take over then we need + // to make sure that the domOperation and options are + // handled accordingly + if (animationCancelled) { + applyAnimationClasses(element, options); + applyAnimationStyles(element, options); + } + + // if the event changed from something like enter to leave then we do + // it, otherwise if it's the same then the end result will be the same too + if (animationCancelled || (isStructural && animationDetails.event !== event)) { + options.domOperation(); + runner.end(); + } + + // in the event that the element animation was not cancelled or a follow-up animation + // isn't allowed to animate from here then we need to clear the state of the element + // so that any future animations won't read the expired animation data. + if (!isValidAnimation) { + clearElementAnimationState(element); + } + + return; + } + + // this combined multiple class to addClass / removeClass into a setClass event + // so long as a structural event did not take over the animation + event = !animationDetails.structural && hasAnimationClasses(animationDetails.options, true) + ? 'setClass' + : animationDetails.event; + + if (animationDetails.structural) { + closeParentClassBasedAnimations(parentElement); + } + + markElementAnimationState(element, RUNNING_STATE); + var realRunner = $$animation(element, event, animationDetails.options); + realRunner.done(function(status) { + close(!status); + var animationDetails = activeAnimationsLookup.get(node); + if (animationDetails && animationDetails.counter === counter) { + clearElementAnimationState(getDomNode(element)); + } + notifyProgress(runner, event, 'close', {}); + }); + + // this will update the runner's flow-control events based on + // the `realRunner` object. + runner.setHost(realRunner); + notifyProgress(runner, event, 'start', {}); + }); + + return runner; + + function notifyProgress(runner, event, phase, data) { + triggerCallback(event, element, phase, data); + runner.progress(event, phase, data); + } + + function close(reject) { // jshint ignore:line + applyAnimationClasses(element, options); + applyAnimationStyles(element, options); + options.domOperation(); + runner.complete(!reject); + } + } + + function closeChildAnimations(element) { + var node = getDomNode(element); + var children = node.querySelectorAll('[' + NG_ANIMATE_ATTR_NAME + ']'); + forEach(children, function(child) { + var state = parseInt(child.getAttribute(NG_ANIMATE_ATTR_NAME)); + var animationDetails = activeAnimationsLookup.get(child); + switch (state) { + case RUNNING_STATE: + animationDetails.runner.end(); + /* falls through */ + case PRE_DIGEST_STATE: + if (animationDetails) { + activeAnimationsLookup.remove(child); + } + break; + } + }); + } + + function clearElementAnimationState(element) { + var node = getDomNode(element); + node.removeAttribute(NG_ANIMATE_ATTR_NAME); + activeAnimationsLookup.remove(node); + } + + function isMatchingElement(nodeOrElmA, nodeOrElmB) { + return getDomNode(nodeOrElmA) === getDomNode(nodeOrElmB); + } + + function closeParentClassBasedAnimations(startingElement) { + var parentNode = getDomNode(startingElement); + do { + if (!parentNode || parentNode.nodeType !== ELEMENT_NODE) break; + + var animationDetails = activeAnimationsLookup.get(parentNode); + if (animationDetails) { + examineParentAnimation(parentNode, animationDetails); + } + + parentNode = parentNode.parentNode; + } while (true); + + // since animations are detected from CSS classes, we need to flush all parent + // class-based animations so that the parent classes are all present for child + // animations to properly function (otherwise any CSS selectors may not work) + function examineParentAnimation(node, animationDetails) { + // enter/leave/move always have priority + if (animationDetails.structural || !hasAnimationClasses(animationDetails.options)) return; + + if (animationDetails.state === RUNNING_STATE) { + animationDetails.runner.end(); + } + clearElementAnimationState(node); + } + } + + function areAnimationsAllowed(element, parentElement, event) { + var bodyElementDetected = false; + var rootElementDetected = false; + var parentAnimationDetected = false; + var animateChildren; + + var parentHost = element.data(NG_ANIMATE_PIN_DATA); + if (parentHost) { + parentElement = parentHost; + } + + while (parentElement && parentElement.length) { + if (!rootElementDetected) { + // angular doesn't want to attempt to animate elements outside of the application + // therefore we need to ensure that the rootElement is an ancestor of the current element + rootElementDetected = isMatchingElement(parentElement, $rootElement); + } + + var parentNode = parentElement[0]; + if (parentNode.nodeType !== ELEMENT_NODE) { + // no point in inspecting the #document element + break; + } + + var details = activeAnimationsLookup.get(parentNode) || {}; + // either an enter, leave or move animation will commence + // therefore we can't allow any animations to take place + // but if a parent animation is class-based then that's ok + if (!parentAnimationDetected) { + parentAnimationDetected = details.structural || disabledElementsLookup.get(parentNode); + } + + if (isUndefined(animateChildren) || animateChildren === true) { + var value = parentElement.data(NG_ANIMATE_CHILDREN_DATA); + if (isDefined(value)) { + animateChildren = value; + } + } + + // there is no need to continue traversing at this point + if (parentAnimationDetected && animateChildren === false) break; + + if (!rootElementDetected) { + // angular doesn't want to attempt to animate elements outside of the application + // therefore we need to ensure that the rootElement is an ancestor of the current element + rootElementDetected = isMatchingElement(parentElement, $rootElement); + if (!rootElementDetected) { + parentHost = parentElement.data(NG_ANIMATE_PIN_DATA); + if (parentHost) { + parentElement = parentHost; + } + } + } + + if (!bodyElementDetected) { + // we also need to ensure that the element is or will be apart of the body element + // otherwise it is pointless to even issue an animation to be rendered + bodyElementDetected = isMatchingElement(parentElement, bodyElement); + } + + parentElement = parentElement.parent(); + } + + var allowAnimation = !parentAnimationDetected || animateChildren; + return allowAnimation && rootElementDetected && bodyElementDetected; + } + + function markElementAnimationState(element, state, details) { + details = details || {}; + details.state = state; + + var node = getDomNode(element); + node.setAttribute(NG_ANIMATE_ATTR_NAME, state); + + var oldValue = activeAnimationsLookup.get(node); + var newValue = oldValue + ? extend(oldValue, details) + : details; + activeAnimationsLookup.put(node, newValue); + } + }]; +}]; + +var $$rAFMutexFactory = ['$$rAF', function($$rAF) { + return function() { + var passed = false; + $$rAF(function() { + passed = true; + }); + return function(fn) { + passed ? fn() : $$rAF(fn); + }; + }; +}]; + +var $$AnimateRunnerFactory = ['$q', '$$rAFMutex', function($q, $$rAFMutex) { + var INITIAL_STATE = 0; + var DONE_PENDING_STATE = 1; + var DONE_COMPLETE_STATE = 2; + + AnimateRunner.chain = function(chain, callback) { + var index = 0; + + next(); + function next() { + if (index === chain.length) { + callback(true); + return; + } + + chain[index](function(response) { + if (response === false) { + callback(false); + return; + } + index++; + next(); + }); + } + }; + + AnimateRunner.all = function(runners, callback) { + var count = 0; + var status = true; + forEach(runners, function(runner) { + runner.done(onProgress); + }); + + function onProgress(response) { + status = status && response; + if (++count === runners.length) { + callback(status); + } + } + }; + + function AnimateRunner(host) { + this.setHost(host); + + this._doneCallbacks = []; + this._runInAnimationFrame = $$rAFMutex(); + this._state = 0; + } + + AnimateRunner.prototype = { + setHost: function(host) { + this.host = host || {}; + }, + + done: function(fn) { + if (this._state === DONE_COMPLETE_STATE) { + fn(); + } else { + this._doneCallbacks.push(fn); + } + }, + + progress: noop, + + getPromise: function() { + if (!this.promise) { + var self = this; + this.promise = $q(function(resolve, reject) { + self.done(function(status) { + status === false ? reject() : resolve(); + }); + }); + } + return this.promise; + }, + + then: function(resolveHandler, rejectHandler) { + return this.getPromise().then(resolveHandler, rejectHandler); + }, + + 'catch': function(handler) { + return this.getPromise()['catch'](handler); + }, + + 'finally': function(handler) { + return this.getPromise()['finally'](handler); + }, + + pause: function() { + if (this.host.pause) { + this.host.pause(); + } + }, + + resume: function() { + if (this.host.resume) { + this.host.resume(); + } + }, + + end: function() { + if (this.host.end) { + this.host.end(); + } + this._resolve(true); + }, + + cancel: function() { + if (this.host.cancel) { + this.host.cancel(); + } + this._resolve(false); + }, + + complete: function(response) { + var self = this; + if (self._state === INITIAL_STATE) { + self._state = DONE_PENDING_STATE; + self._runInAnimationFrame(function() { + self._resolve(response); + }); + } + }, + + _resolve: function(response) { + if (this._state !== DONE_COMPLETE_STATE) { + forEach(this._doneCallbacks, function(fn) { + fn(response); + }); + this._doneCallbacks.length = 0; + this._state = DONE_COMPLETE_STATE; + } + } + }; + + return AnimateRunner; +}]; + +var $$AnimationProvider = ['$animateProvider', function($animateProvider) { + var NG_ANIMATE_REF_ATTR = 'ng-animate-ref'; + + var drivers = this.drivers = []; + + var RUNNER_STORAGE_KEY = '$$animationRunner'; + + function setRunner(element, runner) { + element.data(RUNNER_STORAGE_KEY, runner); + } + + function removeRunner(element) { + element.removeData(RUNNER_STORAGE_KEY); + } + + function getRunner(element) { + return element.data(RUNNER_STORAGE_KEY); + } + + this.$get = ['$$jqLite', '$rootScope', '$injector', '$$AnimateRunner', '$$rAFScheduler', + function($$jqLite, $rootScope, $injector, $$AnimateRunner, $$rAFScheduler) { + + var animationQueue = []; + var applyAnimationClasses = applyAnimationClassesFactory($$jqLite); + + var totalPendingClassBasedAnimations = 0; + var totalActiveClassBasedAnimations = 0; + var classBasedAnimationsQueue = []; + + // TODO(matsko): document the signature in a better way + return function(element, event, options) { + options = prepareAnimationOptions(options); + var isStructural = ['enter', 'move', 'leave'].indexOf(event) >= 0; + + // there is no animation at the current moment, however + // these runner methods will get later updated with the + // methods leading into the driver's end/cancel methods + // for now they just stop the animation from starting + var runner = new $$AnimateRunner({ + end: function() { close(); }, + cancel: function() { close(true); } + }); + + if (!drivers.length) { + close(); + return runner; + } + + setRunner(element, runner); + + var classes = mergeClasses(element.attr('class'), mergeClasses(options.addClass, options.removeClass)); + var tempClasses = options.tempClasses; + if (tempClasses) { + classes += ' ' + tempClasses; + options.tempClasses = null; + } + + var classBasedIndex; + if (!isStructural) { + classBasedIndex = totalPendingClassBasedAnimations; + totalPendingClassBasedAnimations += 1; + } + + animationQueue.push({ + // this data is used by the postDigest code and passed into + // the driver step function + element: element, + classes: classes, + event: event, + classBasedIndex: classBasedIndex, + structural: isStructural, + options: options, + beforeStart: beforeStart, + close: close + }); + + element.on('$destroy', handleDestroyedElement); + + // we only want there to be one function called within the post digest + // block. This way we can group animations for all the animations that + // were apart of the same postDigest flush call. + if (animationQueue.length > 1) return runner; + + $rootScope.$$postDigest(function() { + totalActiveClassBasedAnimations = totalPendingClassBasedAnimations; + totalPendingClassBasedAnimations = 0; + classBasedAnimationsQueue.length = 0; + + var animations = []; + forEach(animationQueue, function(entry) { + // the element was destroyed early on which removed the runner + // form its storage. This means we can't animate this element + // at all and it already has been closed due to destruction. + if (getRunner(entry.element)) { + animations.push(entry); + } + }); + + // now any future animations will be in another postDigest + animationQueue.length = 0; + + forEach(groupAnimations(animations), function(animationEntry) { + if (animationEntry.structural) { + triggerAnimationStart(); + } else { + classBasedAnimationsQueue.push({ + node: getDomNode(animationEntry.element), + fn: triggerAnimationStart + }); + + if (animationEntry.classBasedIndex === totalActiveClassBasedAnimations - 1) { + // we need to sort each of the animations in order of parent to child + // relationships. This ensures that the child classes are applied at the + // right time. + classBasedAnimationsQueue = classBasedAnimationsQueue.sort(function(a,b) { + return b.node.contains(a.node); + }).map(function(entry) { + return entry.fn; + }); + + $$rAFScheduler(classBasedAnimationsQueue); + } + } + + function triggerAnimationStart() { + // it's important that we apply the `ng-animate` CSS class and the + // temporary classes before we do any driver invoking since these + // CSS classes may be required for proper CSS detection. + animationEntry.beforeStart(); + + var startAnimationFn, closeFn = animationEntry.close; + + // in the event that the element was removed before the digest runs or + // during the RAF sequencing then we should not trigger the animation. + var targetElement = animationEntry.anchors + ? (animationEntry.from.element || animationEntry.to.element) + : animationEntry.element; + + if (getRunner(targetElement) && getDomNode(targetElement).parentNode) { + var operation = invokeFirstDriver(animationEntry); + if (operation) { + startAnimationFn = operation.start; + } + } + + if (!startAnimationFn) { + closeFn(); + } else { + var animationRunner = startAnimationFn(); + animationRunner.done(function(status) { + closeFn(!status); + }); + updateAnimationRunners(animationEntry, animationRunner); + } + } + }); + }); + + return runner; + + // TODO(matsko): change to reference nodes + function getAnchorNodes(node) { + var SELECTOR = '[' + NG_ANIMATE_REF_ATTR + ']'; + var items = node.hasAttribute(NG_ANIMATE_REF_ATTR) + ? [node] + : node.querySelectorAll(SELECTOR); + var anchors = []; + forEach(items, function(node) { + var attr = node.getAttribute(NG_ANIMATE_REF_ATTR); + if (attr && attr.length) { + anchors.push(node); + } + }); + return anchors; + } + + function groupAnimations(animations) { + var preparedAnimations = []; + var refLookup = {}; + forEach(animations, function(animation, index) { + var element = animation.element; + var node = getDomNode(element); + var event = animation.event; + var enterOrMove = ['enter', 'move'].indexOf(event) >= 0; + var anchorNodes = animation.structural ? getAnchorNodes(node) : []; + + if (anchorNodes.length) { + var direction = enterOrMove ? 'to' : 'from'; + + forEach(anchorNodes, function(anchor) { + var key = anchor.getAttribute(NG_ANIMATE_REF_ATTR); + refLookup[key] = refLookup[key] || {}; + refLookup[key][direction] = { + animationID: index, + element: jqLite(anchor) + }; + }); + } else { + preparedAnimations.push(animation); + } + }); + + var usedIndicesLookup = {}; + var anchorGroups = {}; + forEach(refLookup, function(operations, key) { + var from = operations.from; + var to = operations.to; + + if (!from || !to) { + // only one of these is set therefore we can't have an + // anchor animation since all three pieces are required + var index = from ? from.animationID : to.animationID; + var indexKey = index.toString(); + if (!usedIndicesLookup[indexKey]) { + usedIndicesLookup[indexKey] = true; + preparedAnimations.push(animations[index]); + } + return; + } + + var fromAnimation = animations[from.animationID]; + var toAnimation = animations[to.animationID]; + var lookupKey = from.animationID.toString(); + if (!anchorGroups[lookupKey]) { + var group = anchorGroups[lookupKey] = { + structural: true, + beforeStart: function() { + fromAnimation.beforeStart(); + toAnimation.beforeStart(); + }, + close: function() { + fromAnimation.close(); + toAnimation.close(); + }, + classes: cssClassesIntersection(fromAnimation.classes, toAnimation.classes), + from: fromAnimation, + to: toAnimation, + anchors: [] // TODO(matsko): change to reference nodes + }; + + // the anchor animations require that the from and to elements both have at least + // one shared CSS class which effictively marries the two elements together to use + // the same animation driver and to properly sequence the anchor animation. + if (group.classes.length) { + preparedAnimations.push(group); + } else { + preparedAnimations.push(fromAnimation); + preparedAnimations.push(toAnimation); + } + } + + anchorGroups[lookupKey].anchors.push({ + 'out': from.element, 'in': to.element + }); + }); + + return preparedAnimations; + } + + function cssClassesIntersection(a,b) { + a = a.split(' '); + b = b.split(' '); + var matches = []; + + for (var i = 0; i < a.length; i++) { + var aa = a[i]; + if (aa.substring(0,3) === 'ng-') continue; + + for (var j = 0; j < b.length; j++) { + if (aa === b[j]) { + matches.push(aa); + break; + } + } + } + + return matches.join(' '); + } + + function invokeFirstDriver(animationDetails) { + // we loop in reverse order since the more general drivers (like CSS and JS) + // may attempt more elements, but custom drivers are more particular + for (var i = drivers.length - 1; i >= 0; i--) { + var driverName = drivers[i]; + if (!$injector.has(driverName)) continue; // TODO(matsko): remove this check + + var factory = $injector.get(driverName); + var driver = factory(animationDetails); + if (driver) { + return driver; + } + } + } + + function beforeStart() { + element.addClass(NG_ANIMATE_CLASSNAME); + if (tempClasses) { + $$jqLite.addClass(element, tempClasses); + } + } + + function updateAnimationRunners(animation, newRunner) { + if (animation.from && animation.to) { + update(animation.from.element); + update(animation.to.element); + } else { + update(animation.element); + } + + function update(element) { + getRunner(element).setHost(newRunner); + } + } + + function handleDestroyedElement() { + var runner = getRunner(element); + if (runner && (event !== 'leave' || !options.$$domOperationFired)) { + runner.end(); + } + } + + function close(rejected) { // jshint ignore:line + element.off('$destroy', handleDestroyedElement); + removeRunner(element); + + applyAnimationClasses(element, options); + applyAnimationStyles(element, options); + options.domOperation(); + + if (tempClasses) { + $$jqLite.removeClass(element, tempClasses); + } + + element.removeClass(NG_ANIMATE_CLASSNAME); + runner.complete(!rejected); + } + }; + }]; +}]; + +/* global angularAnimateModule: true, + + $$rAFMutexFactory, + $$rAFSchedulerFactory, + $$AnimateChildrenDirective, + $$AnimateRunnerFactory, + $$AnimateQueueProvider, + $$AnimationProvider, + $AnimateCssProvider, + $$AnimateCssDriverProvider, + $$AnimateJsProvider, + $$AnimateJsDriverProvider, +*/ + +/** + * @ngdoc module + * @name ngAnimate + * @description + * + * The `ngAnimate` module provides support for CSS-based animations (keyframes and transitions) as well as JavaScript-based animations via + * callback hooks. Animations are not enabled by default, however, by including `ngAnimate` then the animation hooks are enabled for an Angular app. + * + *
+ * + * # Usage + * Simply put, there are two ways to make use of animations when ngAnimate is used: by using **CSS** and **JavaScript**. The former works purely based + * using CSS (by using matching CSS selectors/styles) and the latter triggers animations that are registered via `module.animation()`. For + * both CSS and JS animations the sole requirement is to have a matching `CSS class` that exists both in the registered animation and within + * the HTML element that the animation will be triggered on. + * + * ## Directive Support + * The following directives are "animation aware": + * + * | Directive | Supported Animations | + * |----------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------| + * | {@link ng.directive:ngRepeat#animations ngRepeat} | enter, leave and move | + * | {@link ngRoute.directive:ngView#animations ngView} | enter and leave | + * | {@link ng.directive:ngInclude#animations ngInclude} | enter and leave | + * | {@link ng.directive:ngSwitch#animations ngSwitch} | enter and leave | + * | {@link ng.directive:ngIf#animations ngIf} | enter and leave | + * | {@link ng.directive:ngClass#animations ngClass} | add and remove (the CSS class(es) present) | + * | {@link ng.directive:ngShow#animations ngShow} & {@link ng.directive:ngHide#animations ngHide} | add and remove (the ng-hide class value) | + * | {@link ng.directive:form#animation-hooks form} & {@link ng.directive:ngModel#animation-hooks ngModel} | add and remove (dirty, pristine, valid, invalid & all other validations) | + * | {@link module:ngMessages#animations ngMessages} | add and remove (ng-active & ng-inactive) | + * | {@link module:ngMessages#animations ngMessage} | enter and leave | + * + * (More information can be found by visiting each the documentation associated with each directive.) + * + * ## CSS-based Animations + * + * CSS-based animations with ngAnimate are unique since they require no JavaScript code at all. By using a CSS class that we reference between our HTML + * and CSS code we can create an animation that will be picked up by Angular when an the underlying directive performs an operation. + * + * The example below shows how an `enter` animation can be made possible on a element using `ng-if`: + * + * ```html + *
+ * Fade me in out + *
+ * + * + * ``` + * + * Notice the CSS class **fade**? We can now create the CSS transition code that references this class: + * + * ```css + * /* The starting CSS styles for the enter animation */ + * .fade.ng-enter { + * transition:0.5s linear all; + * opacity:0; + * } + * + * /* The finishing CSS styles for the enter animation */ + * .fade.ng-enter.ng-enter-active { + * opacity:1; + * } + * ``` + * + * The key thing to remember here is that, depending on the animation event (which each of the directives above trigger depending on what's going on) two + * generated CSS classes will be applied to the element; in the example above we have `.ng-enter` and `.ng-enter-active`. For CSS transitions, the transition + * code **must** be defined within the starting CSS class (in this case `.ng-enter`). The destination class is what the transition will animate towards. + * + * If for example we wanted to create animations for `leave` and `move` (ngRepeat triggers move) then we can do so using the same CSS naming conventions: + * + * ```css + * /* now the element will fade out before it is removed from the DOM */ + * .fade.ng-leave { + * transition:0.5s linear all; + * opacity:1; + * } + * .fade.ng-leave.ng-leave-active { + * opacity:0; + * } + * ``` + * + * We can also make use of **CSS Keyframes** by referencing the keyframe animation within the starting CSS class: + * + * ```css + * /* there is no need to define anything inside of the destination + * CSS class since the keyframe will take charge of the animation */ + * .fade.ng-leave { + * animation: my_fade_animation 0.5s linear; + * -webkit-animation: my_fade_animation 0.5s linear; + * } + * + * @keyframes my_fade_animation { + * from { opacity:1; } + * to { opacity:0; } + * } + * + * @-webkit-keyframes my_fade_animation { + * from { opacity:1; } + * to { opacity:0; } + * } + * ``` + * + * Feel free also mix transitions and keyframes together as well as any other CSS classes on the same element. + * + * ### CSS Class-based Animations + * + * Class-based animations (animations that are triggered via `ngClass`, `ngShow`, `ngHide` and some other directives) have a slightly different + * naming convention. Class-based animations are basic enough that a standard transition or keyframe can be referenced on the class being added + * and removed. + * + * For example if we wanted to do a CSS animation for `ngHide` then we place an animation on the `.ng-hide` CSS class: + * + * ```html + *
+ * Show and hide me + *
+ * + * + * + * ``` + * + * All that is going on here with ngShow/ngHide behind the scenes is the `.ng-hide` class is added/removed (when the hidden state is valid). Since + * ngShow and ngHide are animation aware then we can match up a transition and ngAnimate handles the rest. + * + * In addition the addition and removal of the CSS class, ngAnimate also provides two helper methods that we can use to further decorate the animation + * with CSS styles. + * + * ```html + *
+ * Highlight this box + *
+ * + * + * + * ``` + * + * We can also make use of CSS keyframes by placing them within the CSS classes. + * + * + * ### CSS Staggering Animations + * A Staggering animation is a collection of animations that are issued with a slight delay in between each successive operation resulting in a + * curtain-like effect. The ngAnimate module (versions >=1.2) supports staggering animations and the stagger effect can be + * performed by creating a **ng-EVENT-stagger** CSS class and attaching that class to the base CSS class used for + * the animation. The style property expected within the stagger class can either be a **transition-delay** or an + * **animation-delay** property (or both if your animation contains both transitions and keyframe animations). + * + * ```css + * .my-animation.ng-enter { + * /* standard transition code */ + * transition: 1s linear all; + * opacity:0; + * } + * .my-animation.ng-enter-stagger { + * /* this will have a 100ms delay between each successive leave animation */ + * transition-delay: 0.1s; + * + * /* in case the stagger doesn't work then the duration value + * must be set to 0 to avoid an accidental CSS inheritance */ + * transition-duration: 0s; + * } + * .my-animation.ng-enter.ng-enter-active { + * /* standard transition styles */ + * opacity:1; + * } + * ``` + * + * Staggering animations work by default in ngRepeat (so long as the CSS class is defined). Outside of ngRepeat, to use staggering animations + * on your own, they can be triggered by firing multiple calls to the same event on $animate. However, the restrictions surrounding this + * are that each of the elements must have the same CSS className value as well as the same parent element. A stagger operation + * will also be reset if one or more animation frames have passed since the multiple calls to `$animate` were fired. + * + * The following code will issue the **ng-leave-stagger** event on the element provided: + * + * ```js + * var kids = parent.children(); + * + * $animate.leave(kids[0]); //stagger index=0 + * $animate.leave(kids[1]); //stagger index=1 + * $animate.leave(kids[2]); //stagger index=2 + * $animate.leave(kids[3]); //stagger index=3 + * $animate.leave(kids[4]); //stagger index=4 + * + * window.requestAnimationFrame(function() { + * //stagger has reset itself + * $animate.leave(kids[5]); //stagger index=0 + * $animate.leave(kids[6]); //stagger index=1 + * + * $scope.$digest(); + * }); + * ``` + * + * Stagger animations are currently only supported within CSS-defined animations. + * + * ### The `ng-animate` CSS class + * + * When ngAnimate is animating an element it will apply the `ng-animate` CSS class to the element for the duration of the animation. + * This is a temporary CSS class and it will be removed once the animation is over (for both JavaScript and CSS-based animations). + * + * Therefore, animations can be applied to an element using this temporary class directly via CSS. + * + * ```css + * .zipper.ng-animate { + * transition:0.5s linear all; + * } + * .zipper.ng-enter { + * opacity:0; + * } + * .zipper.ng-enter.ng-enter-active { + * opacity:1; + * } + * .zipper.ng-leave { + * opacity:1; + * } + * .zipper.ng-leave.ng-leave-active { + * opacity:0; + * } + * ``` + * + * (Note that the `ng-animate` CSS class is reserved and it cannot be applied on an element directly since ngAnimate will always remove + * the CSS class once an animation has completed.) + * + * + * ## JavaScript-based Animations + * + * ngAnimate also allows for animations to be consumed by JavaScript code. The approach is similar to CSS-based animations (where there is a shared + * CSS class that is referenced in our HTML code) but in addition we need to register the JavaScript animation on the module. By making use of the + * `module.animation()` module function we can register the ainmation. + * + * Let's see an example of a enter/leave animation using `ngRepeat`: + * + * ```html + *
+ * {{ item }} + *
+ * ``` + * + * See the **slide** CSS class? Let's use that class to define an animation that we'll structure in our module code by using `module.animation`: + * + * ```js + * myModule.animation('.slide', [function() { + * return { + * // make note that other events (like addClass/removeClass) + * // have different function input parameters + * enter: function(element, doneFn) { + * jQuery(element).fadeIn(1000, doneFn); + * + * // remember to call doneFn so that angular + * // knows that the animation has concluded + * }, + * + * move: function(element, doneFn) { + * jQuery(element).fadeIn(1000, doneFn); + * }, + * + * leave: function(element, doneFn) { + * jQuery(element).fadeOut(1000, doneFn); + * } + * } + * }] + * ``` + * + * The nice thing about JS-based animations is that we can inject other services and make use of advanced animation libraries such as + * greensock.js and velocity.js. + * + * If our animation code class-based (meaning that something like `ngClass`, `ngHide` and `ngShow` triggers it) then we can still define + * our animations inside of the same registered animation, however, the function input arguments are a bit different: + * + * ```html + *
+ * this box is moody + *
+ * + * + * + * ``` + * + * ```js + * myModule.animation('.colorful', [function() { + * return { + * addClass: function(element, className, doneFn) { + * // do some cool animation and call the doneFn + * }, + * removeClass: function(element, className, doneFn) { + * // do some cool animation and call the doneFn + * }, + * setClass: function(element, addedClass, removedClass, doneFn) { + * // do some cool animation and call the doneFn + * } + * } + * }] + * ``` + * + * ## CSS + JS Animations Together + * + * AngularJS 1.4 and higher has taken steps to make the amalgamation of CSS and JS animations more flexible. However, unlike earlier versions of Angular, + * defining CSS and JS animations to work off of the same CSS class will not work anymore. Therefore the example below will only result in **JS animations taking + * charge of the animation**: + * + * ```html + *
+ * Slide in and out + *
+ * ``` + * + * ```js + * myModule.animation('.slide', [function() { + * return { + * enter: function(element, doneFn) { + * jQuery(element).slideIn(1000, doneFn); + * } + * } + * }] + * ``` + * + * ```css + * .slide.ng-enter { + * transition:0.5s linear all; + * transform:translateY(-100px); + * } + * .slide.ng-enter.ng-enter-active { + * transform:translateY(0); + * } + * ``` + * + * Does this mean that CSS and JS animations cannot be used together? Do JS-based animations always have higher priority? We can make up for the + * lack of CSS animations by using the `$animateCss` service to trigger our own tweaked-out, CSS-based animations directly from + * our own JS-based animation code: + * + * ```js + * myModule.animation('.slide', ['$animateCss', function($animateCss) { + * return { + * enter: function(element, doneFn) { +* // this will trigger `.slide.ng-enter` and `.slide.ng-enter-active`. + * var runner = $animateCss(element, { + * event: 'enter', + * structural: true + * }).start(); +* runner.done(doneFn); + * } + * } + * }] + * ``` + * + * The nice thing here is that we can save bandwidth by sticking to our CSS-based animation code and we don't need to rely on a 3rd-party animation framework. + * + * The `$animateCss` service is very powerful since we can feed in all kinds of extra properties that will be evaluated and fed into a CSS transition or + * keyframe animation. For example if we wanted to animate the height of an element while adding and removing classes then we can do so by providing that + * data into `$animateCss` directly: + * + * ```js + * myModule.animation('.slide', ['$animateCss', function($animateCss) { + * return { + * enter: function(element, doneFn) { + * var runner = $animateCss(element, { + * event: 'enter', + * addClass: 'maroon-setting', + * from: { height:0 }, + * to: { height: 200 } + * }).start(); + * + * runner.done(doneFn); + * } + * } + * }] + * ``` + * + * Now we can fill in the rest via our transition CSS code: + * + * ```css + * /* the transition tells ngAnimate to make the animation happen */ + * .slide.ng-enter { transition:0.5s linear all; } + * + * /* this extra CSS class will be absorbed into the transition + * since the $animateCss code is adding the class */ + * .maroon-setting { background:red; } + * ``` + * + * And `$animateCss` will figure out the rest. Just make sure to have the `done()` callback fire the `doneFn` function to signal when the animation is over. + * + * To learn more about what's possible be sure to visit the {@link ngAnimate.$animateCss $animateCss service}. + * + * ## Animation Anchoring (via `ng-animate-ref`) + * + * ngAnimate in AngularJS 1.4 comes packed with the ability to cross-animate elements between + * structural areas of an application (like views) by pairing up elements using an attribute + * called `ng-animate-ref`. + * + * Let's say for example we have two views that are managed by `ng-view` and we want to show + * that there is a relationship between two components situated in within these views. By using the + * `ng-animate-ref` attribute we can identify that the two components are paired together and we + * can then attach an animation, which is triggered when the view changes. + * + * Say for example we have the following template code: + * + * ```html + * + *
+ *
+ * + * + * + * + * + * + * + * + * ``` + * + * Now, when the view changes (once the link is clicked), ngAnimate will examine the + * HTML contents to see if there is a match reference between any components in the view + * that is leaving and the view that is entering. It will scan both the view which is being + * removed (leave) and inserted (enter) to see if there are any paired DOM elements that + * contain a matching ref value. + * + * The two images match since they share the same ref value. ngAnimate will now create a + * transport element (which is a clone of the first image element) and it will then attempt + * to animate to the position of the second image element in the next view. For the animation to + * work a special CSS class called `ng-anchor` will be added to the transported element. + * + * We can now attach a transition onto the `.banner.ng-anchor` CSS class and then + * ngAnimate will handle the entire transition for us as well as the addition and removal of + * any changes of CSS classes between the elements: + * + * ```css + * .banner.ng-anchor { + * /* this animation will last for 1 second since there are + * two phases to the animation (an `in` and an `out` phase) */ + * transition:0.5s linear all; + * } + * ``` + * + * We also **must** include animations for the views that are being entered and removed + * (otherwise anchoring wouldn't be possible since the new view would be inserted right away). + * + * ```css + * .view-animation.ng-enter, .view-animation.ng-leave { + * transition:0.5s linear all; + * position:fixed; + * left:0; + * top:0; + * width:100%; + * } + * .view-animation.ng-enter { + * transform:translateX(100%); + * } + * .view-animation.ng-leave, + * .view-animation.ng-enter.ng-enter-active { + * transform:translateX(0%); + * } + * .view-animation.ng-leave.ng-leave-active { + * transform:translateX(-100%); + * } + * ``` + * + * Now we can jump back to the anchor animation. When the animation happens, there are two stages that occur: + * an `out` and an `in` stage. The `out` stage happens first and that is when the element is animated away + * from its origin. Once that animation is over then the `in` stage occurs which animates the + * element to its destination. The reason why there are two animations is to give enough time + * for the enter animation on the new element to be ready. + * + * The example above sets up a transition for both the in and out phases, but we can also target the out or + * in phases directly via `ng-anchor-out` and `ng-anchor-in`. + * + * ```css + * .banner.ng-anchor-out { + * transition: 0.5s linear all; + * + * /* the scale will be applied during the out animation, + * but will be animated away when the in animation runs */ + * transform: scale(1.2); + * } + * + * .banner.ng-anchor-in { + * transition: 1s linear all; + * } + * ``` + * + * + * + * + * ### Anchoring Demo + * + + + Home +
+
+
+
+
+ + angular.module('anchoringExample', ['ngAnimate', 'ngRoute']) + .config(['$routeProvider', function($routeProvider) { + $routeProvider.when('/', { + templateUrl: 'home.html', + controller: 'HomeController as home' + }); + $routeProvider.when('/profile/:id', { + templateUrl: 'profile.html', + controller: 'ProfileController as profile' + }); + }]) + .run(['$rootScope', function($rootScope) { + $rootScope.records = [ + { id:1, title: "Miss Beulah Roob" }, + { id:2, title: "Trent Morissette" }, + { id:3, title: "Miss Ava Pouros" }, + { id:4, title: "Rod Pouros" }, + { id:5, title: "Abdul Rice" }, + { id:6, title: "Laurie Rutherford Sr." }, + { id:7, title: "Nakia McLaughlin" }, + { id:8, title: "Jordon Blanda DVM" }, + { id:9, title: "Rhoda Hand" }, + { id:10, title: "Alexandrea Sauer" } + ]; + }]) + .controller('HomeController', [function() { + //empty + }]) + .controller('ProfileController', ['$rootScope', '$routeParams', function($rootScope, $routeParams) { + var index = parseInt($routeParams.id, 10); + var record = $rootScope.records[index - 1]; + + this.title = record.title; + this.id = record.id; + }]); + + +

Welcome to the home page

+

Please click on an element

+ + {{ record.title }} + +
+ +
+ {{ profile.title }} +
+
+ + .record { + display:block; + font-size:20px; + } + .profile { + background:black; + color:white; + font-size:100px; + } + .view-container { + position:relative; + } + .view-container > .view.ng-animate { + position:absolute; + top:0; + left:0; + width:100%; + min-height:500px; + } + .view.ng-enter, .view.ng-leave, + .record.ng-anchor { + transition:0.5s linear all; + } + .view.ng-enter { + transform:translateX(100%); + } + .view.ng-enter.ng-enter-active, .view.ng-leave { + transform:translateX(0%); + } + .view.ng-leave.ng-leave-active { + transform:translateX(-100%); + } + .record.ng-anchor-out { + background:red; + } + +
+ * + * ### How is the element transported? + * + * When an anchor animation occurs, ngAnimate will clone the starting element and position it exactly where the starting + * element is located on screen via absolute positioning. The cloned element will be placed inside of the root element + * of the application (where ng-app was defined) and all of the CSS classes of the starting element will be applied. The + * element will then animate into the `out` and `in` animations and will eventually reach the coordinates and match + * the dimensions of the destination element. During the entire animation a CSS class of `.ng-animate-shim` will be applied + * to both the starting and destination elements in order to hide them from being visible (the CSS styling for the class + * is: `visibility:hidden`). Once the anchor reaches its destination then it will be removed and the destination element + * will become visible since the shim class will be removed. + * + * ### How is the morphing handled? + * + * CSS Anchoring relies on transitions and keyframes and the internal code is intelligent enough to figure out + * what CSS classes differ between the starting element and the destination element. These different CSS classes + * will be added/removed on the anchor element and a transition will be applied (the transition that is provided + * in the anchor class). Long story short, ngAnimate will figure out what classes to add and remove which will + * make the transition of the element as smooth and automatic as possible. Be sure to use simple CSS classes that + * do not rely on DOM nesting structure so that the anchor element appears the same as the starting element (since + * the cloned element is placed inside of root element which is likely close to the body element). + * + * Note that if the root element is on the `` element then the cloned node will be placed inside of body. + * + * + * ## Using $animate in your directive code + * + * So far we've explored how to feed in animations into an Angular application, but how do we trigger animations within our own directives in our application? + * By injecting the `$animate` service into our directive code, we can trigger structural and class-based hooks which can then be consumed by animations. Let's + * imagine we have a greeting box that shows and hides itself when the data changes + * + * ```html + * Hi there + * ``` + * + * ```js + * ngModule.directive('greetingBox', ['$animate', function($animate) { + * return function(scope, element, attrs) { + * attrs.$observe('active', function(value) { + * value ? $animate.addClass(element, 'on') : $animate.removeClass(element, 'on'); + * }); + * }); + * }]); + * ``` + * + * Now the `on` CSS class is added and removed on the greeting box component. Now if we add a CSS class on top of the greeting box element + * in our HTML code then we can trigger a CSS or JS animation to happen. + * + * ```css + * /* normally we would create a CSS class to reference on the element */ + * greeting-box.on { transition:0.5s linear all; background:green; color:white; } + * ``` + * + * The `$animate` service contains a variety of other methods like `enter`, `leave`, `animate` and `setClass`. To learn more about what's + * possible be sure to visit the {@link ng.$animate $animate service API page}. + * + * + * ### Preventing Collisions With Third Party Libraries + * + * Some third-party frameworks place animation duration defaults across many element or className + * selectors in order to make their code small and reuseable. This can lead to issues with ngAnimate, which + * is expecting actual animations on these elements and has to wait for their completion. + * + * You can prevent this unwanted behavior by using a prefix on all your animation classes: + * + * ```css + * /* prefixed with animate- */ + * .animate-fade-add.animate-fade-add-active { + * transition:1s linear all; + * opacity:0; + * } + * ``` + * + * You then configure `$animate` to enforce this prefix: + * + * ```js + * $animateProvider.classNameFilter(/animate-/); + * ``` + * + * This also may provide your application with a speed boost since only specific elements containing CSS class prefix + * will be evaluated for animation when any DOM changes occur in the application. + * + * ## Callbacks and Promises + * + * When `$animate` is called it returns a promise that can be used to capture when the animation has ended. Therefore if we were to trigger + * an animation (within our directive code) then we can continue performing directive and scope related activities after the animation has + * ended by chaining onto the returned promise that animation method returns. + * + * ```js + * // somewhere within the depths of the directive + * $animate.enter(element, parent).then(function() { + * //the animation has completed + * }); + * ``` + * + * (Note that earlier versions of Angular prior to v1.4 required the promise code to be wrapped using `$scope.$apply(...)`. This is not the case + * anymore.) + * + * In addition to the animation promise, we can also make use of animation-related callbacks within our directives and controller code by registering + * an event listener using the `$animate` service. Let's say for example that an animation was triggered on our view + * routing controller to hook into that: + * + * ```js + * ngModule.controller('HomePageController', ['$animate', function($animate) { + * $animate.on('enter', ngViewElement, function(element) { + * // the animation for this route has completed + * }]); + * }]) + * ``` + * + * (Note that you will need to trigger a digest within the callback to get angular to notice any scope-related changes.) + */ + +/** + * @ngdoc service + * @name $animate + * @kind object + * + * @description + * The ngAnimate `$animate` service documentation is the same for the core `$animate` service. + * + * Click here {@link ng.$animate $animate to learn more about animations with `$animate`}. + */ +angular.module('ngAnimate', []) + .directive('ngAnimateChildren', $$AnimateChildrenDirective) + + .factory('$$rAFMutex', $$rAFMutexFactory) + .factory('$$rAFScheduler', $$rAFSchedulerFactory) + + .factory('$$AnimateRunner', $$AnimateRunnerFactory) + + .provider('$$animateQueue', $$AnimateQueueProvider) + .provider('$$animation', $$AnimationProvider) + + .provider('$animateCss', $AnimateCssProvider) + .provider('$$animateCssDriver', $$AnimateCssDriverProvider) + + .provider('$$animateJs', $$AnimateJsProvider) + .provider('$$animateJsDriver', $$AnimateJsDriverProvider); + + +})(window, window.angular); diff --git a/awx/ui/client/lib/angular-animate/angular-animate.min.js b/awx/ui/client/lib/angular-animate/angular-animate.min.js new file mode 100644 index 0000000000..a99eac13cc --- /dev/null +++ b/awx/ui/client/lib/angular-animate/angular-animate.min.js @@ -0,0 +1,52 @@ +/* + AngularJS v1.4.3 + (c) 2010-2015 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(F,t,W){'use strict';function ua(a,b,c){if(!a)throw ngMinErr("areq",b||"?",c||"required");return a}function va(a,b){if(!a&&!b)return"";if(!a)return b;if(!b)return a;X(a)&&(a=a.join(" "));X(b)&&(b=b.join(" "));return a+" "+b}function Ea(a){var b={};a&&(a.to||a.from)&&(b.to=a.to,b.from=a.from);return b}function ba(a,b,c){var d="";a=X(a)?a:a&&U(a)&&a.length?a.split(/\s+/):[];u(a,function(a,s){a&&0=F&&b>=J&&(C=!0,m())}if(!K)if(g.parentNode){var x,p=[],k=function(a){if(C)D&&a&&(D=!1,m());else if(D=!a,y.animationDuration)if(a= +ma(g,D),D)l.push(a);else{var b=l,c=b.indexOf(a);0<=a&&b.splice(c,1)}},r=0", + "license": "MIT", + "bugs": { + "url": "https://github.com/angular/angular.js/issues" + }, + "homepage": "http://angularjs.org" +} diff --git a/awx/ui/static/lib/angular-codemirror/.bower.json b/awx/ui/client/lib/angular-codemirror/.bower.json similarity index 100% rename from awx/ui/static/lib/angular-codemirror/.bower.json rename to awx/ui/client/lib/angular-codemirror/.bower.json diff --git a/awx/ui/static/lib/angular-codemirror/.gitignore b/awx/ui/client/lib/angular-codemirror/.gitignore similarity index 100% rename from awx/ui/static/lib/angular-codemirror/.gitignore rename to awx/ui/client/lib/angular-codemirror/.gitignore diff --git a/awx/ui/static/lib/angular-codemirror/.jshintrc b/awx/ui/client/lib/angular-codemirror/.jshintrc similarity index 100% rename from awx/ui/static/lib/angular-codemirror/.jshintrc rename to awx/ui/client/lib/angular-codemirror/.jshintrc diff --git a/awx/ui/static/lib/angular-codemirror/LICENSE.md b/awx/ui/client/lib/angular-codemirror/LICENSE.md similarity index 100% rename from awx/ui/static/lib/angular-codemirror/LICENSE.md rename to awx/ui/client/lib/angular-codemirror/LICENSE.md diff --git a/awx/ui/static/lib/angular-codemirror/README.md b/awx/ui/client/lib/angular-codemirror/README.md similarity index 100% rename from awx/ui/static/lib/angular-codemirror/README.md rename to awx/ui/client/lib/angular-codemirror/README.md diff --git a/awx/ui/static/lib/angular-codemirror/app/css/sampleApp.css b/awx/ui/client/lib/angular-codemirror/app/css/sampleApp.css similarity index 100% rename from awx/ui/static/lib/angular-codemirror/app/css/sampleApp.css rename to awx/ui/client/lib/angular-codemirror/app/css/sampleApp.css diff --git a/awx/ui/static/lib/angular-codemirror/app/index.html b/awx/ui/client/lib/angular-codemirror/app/index.html similarity index 100% rename from awx/ui/static/lib/angular-codemirror/app/index.html rename to awx/ui/client/lib/angular-codemirror/app/index.html diff --git a/awx/ui/static/lib/angular-codemirror/app/js/sampleApp.js b/awx/ui/client/lib/angular-codemirror/app/js/sampleApp.js similarity index 100% rename from awx/ui/static/lib/angular-codemirror/app/js/sampleApp.js rename to awx/ui/client/lib/angular-codemirror/app/js/sampleApp.js diff --git a/awx/ui/static/lib/angular-codemirror/app/partials/main.html b/awx/ui/client/lib/angular-codemirror/app/partials/main.html similarity index 100% rename from awx/ui/static/lib/angular-codemirror/app/partials/main.html rename to awx/ui/client/lib/angular-codemirror/app/partials/main.html diff --git a/awx/ui/static/lib/angular-codemirror/bower.json b/awx/ui/client/lib/angular-codemirror/bower.json similarity index 100% rename from awx/ui/static/lib/angular-codemirror/bower.json rename to awx/ui/client/lib/angular-codemirror/bower.json diff --git a/awx/ui/static/lib/angular-codemirror/lib/AngularCodeMirror.css b/awx/ui/client/lib/angular-codemirror/lib/AngularCodeMirror.css similarity index 100% rename from awx/ui/static/lib/angular-codemirror/lib/AngularCodeMirror.css rename to awx/ui/client/lib/angular-codemirror/lib/AngularCodeMirror.css diff --git a/awx/ui/static/lib/angular-codemirror/lib/AngularCodeMirror.js b/awx/ui/client/lib/angular-codemirror/lib/AngularCodeMirror.js similarity index 100% rename from awx/ui/static/lib/angular-codemirror/lib/AngularCodeMirror.js rename to awx/ui/client/lib/angular-codemirror/lib/AngularCodeMirror.js diff --git a/awx/ui/static/lib/angular-codemirror/lib/yaml-lint.js b/awx/ui/client/lib/angular-codemirror/lib/yaml-lint.js similarity index 100% rename from awx/ui/static/lib/angular-codemirror/lib/yaml-lint.js rename to awx/ui/client/lib/angular-codemirror/lib/yaml-lint.js diff --git a/awx/ui/static/lib/angular-codemirror/scripts/compile.sh b/awx/ui/client/lib/angular-codemirror/scripts/compile.sh similarity index 100% rename from awx/ui/static/lib/angular-codemirror/scripts/compile.sh rename to awx/ui/client/lib/angular-codemirror/scripts/compile.sh diff --git a/awx/ui/static/lib/angular-codemirror/scripts/web-server.js b/awx/ui/client/lib/angular-codemirror/scripts/web-server.js similarity index 100% rename from awx/ui/static/lib/angular-codemirror/scripts/web-server.js rename to awx/ui/client/lib/angular-codemirror/scripts/web-server.js diff --git a/awx/ui/static/lib/angular-cookies/.bower.json b/awx/ui/client/lib/angular-cookies/.bower.json similarity index 53% rename from awx/ui/static/lib/angular-cookies/.bower.json rename to awx/ui/client/lib/angular-cookies/.bower.json index 60abf2f915..30f123e4cd 100644 --- a/awx/ui/static/lib/angular-cookies/.bower.json +++ b/awx/ui/client/lib/angular-cookies/.bower.json @@ -1,18 +1,19 @@ { "name": "angular-cookies", - "version": "1.2.15-build.2398+sha.4bab3d8", + "version": "1.4.3", "main": "./angular-cookies.js", + "ignore": [], "dependencies": { - "angular": "1.2.15-build.2398+sha.4bab3d8" + "angular": "1.4.3" }, "homepage": "https://github.com/angular/bower-angular-cookies", - "_release": "1.2.15-build.2398+sha.4bab3d8", + "_release": "1.4.3", "_resolution": { "type": "version", - "tag": "v1.2.15-build.2398+sha.4bab3d8", - "commit": "8ca6ddfbd86f4bda921fa3d22e8d2e7d7e9b04d4" + "tag": "v1.4.3", + "commit": "1ef7a87fc52ed419322aefe14890bdb24e717fc9" }, "_source": "git://github.com/angular/bower-angular-cookies.git", - "_target": "~1.2.12", + "_target": "~1.4.3", "_originalSource": "angular-cookies" } \ No newline at end of file diff --git a/awx/ui/static/lib/angular-cookies/README.md b/awx/ui/client/lib/angular-cookies/README.md similarity index 76% rename from awx/ui/static/lib/angular-cookies/README.md rename to awx/ui/client/lib/angular-cookies/README.md index 77c71f4d8b..7b190d3461 100644 --- a/awx/ui/static/lib/angular-cookies/README.md +++ b/awx/ui/client/lib/angular-cookies/README.md @@ -1,12 +1,26 @@ -# bower-angular-cookies +# packaged angular-cookies -This repo is for distribution on `bower`. The source for this module is in the +This repo is for distribution on `npm` and `bower`. The source for this module is in the [main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngCookies). Please file issues and pull requests against that repo. ## Install -Install with `bower`: +You can install this package either with `npm` or with `bower`. + +### npm + +```shell +npm install angular-cookies +``` + +Then add `ngCookies` as a dependency for your app: + +```javascript +angular.module('myApp', [require('angular-cookies')]); +``` + +### bower ```shell bower install angular-cookies @@ -18,7 +32,7 @@ Add a ` ``` -And add `ngCookies` as a dependency for your app: +Then add `ngCookies` as a dependency for your app: ```javascript angular.module('myApp', ['ngCookies']); @@ -33,7 +47,7 @@ Documentation is available on the The MIT License -Copyright (c) 2010-2012 Google, Inc. http://angularjs.org +Copyright (c) 2010-2015 Google, Inc. http://angularjs.org Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/awx/ui/client/lib/angular-cookies/angular-cookies.js b/awx/ui/client/lib/angular-cookies/angular-cookies.js new file mode 100644 index 0000000000..ddfcd1469d --- /dev/null +++ b/awx/ui/client/lib/angular-cookies/angular-cookies.js @@ -0,0 +1,321 @@ +/** + * @license AngularJS v1.4.3 + * (c) 2010-2015 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) {'use strict'; + +/** + * @ngdoc module + * @name ngCookies + * @description + * + * # ngCookies + * + * The `ngCookies` module provides a convenient wrapper for reading and writing browser cookies. + * + * + *
+ * + * See {@link ngCookies.$cookies `$cookies`} for usage. + */ + + +angular.module('ngCookies', ['ng']). + /** + * @ngdoc provider + * @name $cookiesProvider + * @description + * Use `$cookiesProvider` to change the default behavior of the {@link ngCookies.$cookies $cookies} service. + * */ + provider('$cookies', [function $CookiesProvider() { + /** + * @ngdoc property + * @name $cookiesProvider#defaults + * @description + * + * Object containing default options to pass when setting cookies. + * + * The object may have following properties: + * + * - **path** - `{string}` - The cookie will be available only for this path and its + * sub-paths. By default, this would be the URL that appears in your base tag. + * - **domain** - `{string}` - The cookie will be available only for this domain and + * its sub-domains. For obvious security reasons the user agent will not accept the + * cookie if the current domain is not a sub domain or equals to the requested domain. + * - **expires** - `{string|Date}` - String of the form "Wdy, DD Mon YYYY HH:MM:SS GMT" + * or a Date object indicating the exact date/time this cookie will expire. + * - **secure** - `{boolean}` - The cookie will be available only in secured connection. + * + * Note: by default the address that appears in your `` tag will be used as path. + * This is import so that cookies will be visible for all routes in case html5mode is enabled + * + **/ + var defaults = this.defaults = {}; + + function calcOptions(options) { + return options ? angular.extend({}, defaults, options) : defaults; + } + + /** + * @ngdoc service + * @name $cookies + * + * @description + * Provides read/write access to browser's cookies. + * + *
+ * Up until Angular 1.3, `$cookies` exposed properties that represented the + * current browser cookie values. In version 1.4, this behavior has changed, and + * `$cookies` now provides a standard api of getters, setters etc. + *
+ * + * Requires the {@link ngCookies `ngCookies`} module to be installed. + * + * @example + * + * ```js + * angular.module('cookiesExample', ['ngCookies']) + * .controller('ExampleController', ['$cookies', function($cookies) { + * // Retrieving a cookie + * var favoriteCookie = $cookies.get('myFavorite'); + * // Setting a cookie + * $cookies.put('myFavorite', 'oatmeal'); + * }]); + * ``` + */ + this.$get = ['$$cookieReader', '$$cookieWriter', function($$cookieReader, $$cookieWriter) { + return { + /** + * @ngdoc method + * @name $cookies#get + * + * @description + * Returns the value of given cookie key + * + * @param {string} key Id to use for lookup. + * @returns {string} Raw cookie value. + */ + get: function(key) { + return $$cookieReader()[key]; + }, + + /** + * @ngdoc method + * @name $cookies#getObject + * + * @description + * Returns the deserialized value of given cookie key + * + * @param {string} key Id to use for lookup. + * @returns {Object} Deserialized cookie value. + */ + getObject: function(key) { + var value = this.get(key); + return value ? angular.fromJson(value) : value; + }, + + /** + * @ngdoc method + * @name $cookies#getAll + * + * @description + * Returns a key value object with all the cookies + * + * @returns {Object} All cookies + */ + getAll: function() { + return $$cookieReader(); + }, + + /** + * @ngdoc method + * @name $cookies#put + * + * @description + * Sets a value for given cookie key + * + * @param {string} key Id for the `value`. + * @param {string} value Raw value to be stored. + * @param {Object=} options Options object. + * See {@link ngCookies.$cookiesProvider#defaults $cookiesProvider.defaults} + */ + put: function(key, value, options) { + $$cookieWriter(key, value, calcOptions(options)); + }, + + /** + * @ngdoc method + * @name $cookies#putObject + * + * @description + * Serializes and sets a value for given cookie key + * + * @param {string} key Id for the `value`. + * @param {Object} value Value to be stored. + * @param {Object=} options Options object. + * See {@link ngCookies.$cookiesProvider#defaults $cookiesProvider.defaults} + */ + putObject: function(key, value, options) { + this.put(key, angular.toJson(value), options); + }, + + /** + * @ngdoc method + * @name $cookies#remove + * + * @description + * Remove given cookie + * + * @param {string} key Id of the key-value pair to delete. + * @param {Object=} options Options object. + * See {@link ngCookies.$cookiesProvider#defaults $cookiesProvider.defaults} + */ + remove: function(key, options) { + $$cookieWriter(key, undefined, calcOptions(options)); + } + }; + }]; + }]); + +angular.module('ngCookies'). +/** + * @ngdoc service + * @name $cookieStore + * @deprecated + * @requires $cookies + * + * @description + * Provides a key-value (string-object) storage, that is backed by session cookies. + * Objects put or retrieved from this storage are automatically serialized or + * deserialized by angular's toJson/fromJson. + * + * Requires the {@link ngCookies `ngCookies`} module to be installed. + * + *
+ * **Note:** The $cookieStore service is **deprecated**. + * Please use the {@link ngCookies.$cookies `$cookies`} service instead. + *
+ * + * @example + * + * ```js + * angular.module('cookieStoreExample', ['ngCookies']) + * .controller('ExampleController', ['$cookieStore', function($cookieStore) { + * // Put cookie + * $cookieStore.put('myFavorite','oatmeal'); + * // Get cookie + * var favoriteCookie = $cookieStore.get('myFavorite'); + * // Removing a cookie + * $cookieStore.remove('myFavorite'); + * }]); + * ``` + */ + factory('$cookieStore', ['$cookies', function($cookies) { + + return { + /** + * @ngdoc method + * @name $cookieStore#get + * + * @description + * Returns the value of given cookie key + * + * @param {string} key Id to use for lookup. + * @returns {Object} Deserialized cookie value, undefined if the cookie does not exist. + */ + get: function(key) { + return $cookies.getObject(key); + }, + + /** + * @ngdoc method + * @name $cookieStore#put + * + * @description + * Sets a value for given cookie key + * + * @param {string} key Id for the `value`. + * @param {Object} value Value to be stored. + */ + put: function(key, value) { + $cookies.putObject(key, value); + }, + + /** + * @ngdoc method + * @name $cookieStore#remove + * + * @description + * Remove given cookie + * + * @param {string} key Id of the key-value pair to delete. + */ + remove: function(key) { + $cookies.remove(key); + } + }; + + }]); + +/** + * @name $$cookieWriter + * @requires $document + * + * @description + * This is a private service for writing cookies + * + * @param {string} name Cookie name + * @param {string=} value Cookie value (if undefined, cookie will be deleted) + * @param {Object=} options Object with options that need to be stored for the cookie. + */ +function $$CookieWriter($document, $log, $browser) { + var cookiePath = $browser.baseHref(); + var rawDocument = $document[0]; + + function buildCookieString(name, value, options) { + var path, expires; + options = options || {}; + expires = options.expires; + path = angular.isDefined(options.path) ? options.path : cookiePath; + if (value === undefined) { + expires = 'Thu, 01 Jan 1970 00:00:00 GMT'; + value = ''; + } + if (angular.isString(expires)) { + expires = new Date(expires); + } + + var str = encodeURIComponent(name) + '=' + encodeURIComponent(value); + str += path ? ';path=' + path : ''; + str += options.domain ? ';domain=' + options.domain : ''; + str += expires ? ';expires=' + expires.toUTCString() : ''; + str += options.secure ? ';secure' : ''; + + // per http://www.ietf.org/rfc/rfc2109.txt browser must allow at minimum: + // - 300 cookies + // - 20 cookies per unique domain + // - 4096 bytes per cookie + var cookieLength = str.length + 1; + if (cookieLength > 4096) { + $log.warn("Cookie '" + name + + "' possibly not set or overflowed because it was too large (" + + cookieLength + " > 4096 bytes)!"); + } + + return str; + } + + return function(name, value, options) { + rawDocument.cookie = buildCookieString(name, value, options); + }; +} + +$$CookieWriter.$inject = ['$document', '$log', '$browser']; + +angular.module('ngCookies').provider('$$cookieWriter', function $$CookieWriterProvider() { + this.$get = $$CookieWriter; +}); + + +})(window, window.angular); diff --git a/awx/ui/client/lib/angular-cookies/angular-cookies.min.js b/awx/ui/client/lib/angular-cookies/angular-cookies.min.js new file mode 100644 index 0000000000..36b74e96fd --- /dev/null +++ b/awx/ui/client/lib/angular-cookies/angular-cookies.min.js @@ -0,0 +1,9 @@ +/* + AngularJS v1.4.3 + (c) 2010-2015 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(p,g,l){'use strict';function m(b,a,f){var c=f.baseHref(),k=b[0];return function(b,d,e){var f,h;e=e||{};h=e.expires;f=g.isDefined(e.path)?e.path:c;d===l&&(h="Thu, 01 Jan 1970 00:00:00 GMT",d="");g.isString(h)&&(h=new Date(h));d=encodeURIComponent(b)+"="+encodeURIComponent(d);d=d+(f?";path="+f:"")+(e.domain?";domain="+e.domain:"");d+=h?";expires="+h.toUTCString():"";d+=e.secure?";secure":"";e=d.length+1;4096 4096 bytes)!");k.cookie=d}}g.module("ngCookies",["ng"]).provider("$cookies",[function(){var b=this.defaults={};this.$get=["$$cookieReader","$$cookieWriter",function(a,f){return{get:function(c){return a()[c]},getObject:function(c){return(c=this.get(c))?g.fromJson(c):c},getAll:function(){return a()},put:function(c,a,n){f(c,a,n?g.extend({},b,n):b)},putObject:function(c,b,a){this.put(c,g.toJson(b),a)},remove:function(a,k){f(a,l,k?g.extend({},b,k):b)}}}]}]);g.module("ngCookies").factory("$cookieStore", +["$cookies",function(b){return{get:function(a){return b.getObject(a)},put:function(a,f){b.putObject(a,f)},remove:function(a){b.remove(a)}}}]);m.$inject=["$document","$log","$browser"];g.module("ngCookies").provider("$$cookieWriter",function(){this.$get=m})})(window,window.angular); +//# sourceMappingURL=angular-cookies.min.js.map diff --git a/awx/ui/client/lib/angular-cookies/angular-cookies.min.js.map b/awx/ui/client/lib/angular-cookies/angular-cookies.min.js.map new file mode 100644 index 0000000000..84e6a5701f --- /dev/null +++ b/awx/ui/client/lib/angular-cookies/angular-cookies.min.js.map @@ -0,0 +1,8 @@ +{ +"version":3, +"file":"angular-cookies.min.js", +"lineCount":8, +"mappings":"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", +"sources":["angular-cookies.js"], +"names":["window","angular","undefined","$$CookieWriter","$document","$log","$browser","cookiePath","baseHref","rawDocument","name","value","options","path","expires","isDefined","isString","Date","str","encodeURIComponent","domain","toUTCString","secure","cookieLength","length","warn","cookie","module","provider","$CookiesProvider","defaults","$get","$$cookieReader","$$cookieWriter","get","key","getObject","fromJson","getAll","put","extend","putObject","toJson","remove","factory","$cookies","$inject","$$CookieWriterProvider"] +} diff --git a/awx/ui/client/lib/angular-cookies/bower.json b/awx/ui/client/lib/angular-cookies/bower.json new file mode 100644 index 0000000000..9ab6d5f01b --- /dev/null +++ b/awx/ui/client/lib/angular-cookies/bower.json @@ -0,0 +1,9 @@ +{ + "name": "angular-cookies", + "version": "1.4.3", + "main": "./angular-cookies.js", + "ignore": [], + "dependencies": { + "angular": "1.4.3" + } +} diff --git a/awx/ui/client/lib/angular-cookies/index.js b/awx/ui/client/lib/angular-cookies/index.js new file mode 100644 index 0000000000..657667549a --- /dev/null +++ b/awx/ui/client/lib/angular-cookies/index.js @@ -0,0 +1,2 @@ +require('./angular-cookies'); +module.exports = 'ngCookies'; diff --git a/awx/ui/client/lib/angular-cookies/package.json b/awx/ui/client/lib/angular-cookies/package.json new file mode 100644 index 0000000000..a9862f9bcc --- /dev/null +++ b/awx/ui/client/lib/angular-cookies/package.json @@ -0,0 +1,26 @@ +{ + "name": "angular-cookies", + "version": "1.4.3", + "description": "AngularJS module for cookies", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "https://github.com/angular/angular.js.git" + }, + "keywords": [ + "angular", + "framework", + "browser", + "cookies", + "client-side" + ], + "author": "Angular Core Team ", + "license": "MIT", + "bugs": { + "url": "https://github.com/angular/angular.js/issues" + }, + "homepage": "http://angularjs.org" +} diff --git a/awx/ui/static/lib/angular-filters/.bower.json b/awx/ui/client/lib/angular-filters/.bower.json similarity index 56% rename from awx/ui/static/lib/angular-filters/.bower.json rename to awx/ui/client/lib/angular-filters/.bower.json index 01d1b29785..e64588c093 100644 --- a/awx/ui/static/lib/angular-filters/.bower.json +++ b/awx/ui/client/lib/angular-filters/.bower.json @@ -2,30 +2,26 @@ "author": "Francesco Pontillo", "name": "angular-filters", "description": "A collection of filters for AngularJS.", - "version": "1.1.0", + "version": "1.1.2", "homepage": "https://github.com/frapontillo/angular-filters", "repository": { "type": "git", "url": "git://github.com/frapontillo/angular-filters.git" }, - "main": "./dist/angular-filters.min.js", + "main": "./dist/angular-filters.js", "dependencies": { - "angular": "1.2.10" + "angular": "~1.4.0" }, "devDependencies": { - "angular-mocks": "1.2.10" + "angular-mocks": "~1.4.0" }, - "resolutions": { - "angular": "1.2.10" - }, - "_release": "1.1.0", + "_release": "1.1.2", "_resolution": { "type": "version", - "tag": "1.1.0", - "commit": "ecd468b898f99786e90c4631835e83ef93a2d743" + "tag": "1.1.2", + "commit": "61c1501beb057ff75fbc4953e32623104c6cd8ad" }, "_source": "git://github.com/frapontillo/angular-filters.git", - "_target": "~1.1.0", - "_originalSource": "angular-filters", - "_direct": true + "_target": "~1.1.2", + "_originalSource": "angular-filters" } \ No newline at end of file diff --git a/awx/ui/static/lib/angular-filters/.gitignore b/awx/ui/client/lib/angular-filters/.gitignore similarity index 94% rename from awx/ui/static/lib/angular-filters/.gitignore rename to awx/ui/client/lib/angular-filters/.gitignore index 2de9d958d6..aa461ff903 100644 --- a/awx/ui/static/lib/angular-filters/.gitignore +++ b/awx/ui/client/lib/angular-filters/.gitignore @@ -1,3 +1,3 @@ -.idea -node_modules +.idea +node_modules bower_components \ No newline at end of file diff --git a/awx/ui/static/lib/angular-filters/.jshintrc b/awx/ui/client/lib/angular-filters/.jshintrc similarity index 100% rename from awx/ui/static/lib/angular-filters/.jshintrc rename to awx/ui/client/lib/angular-filters/.jshintrc diff --git a/awx/ui/client/lib/angular-filters/.travis.yml b/awx/ui/client/lib/angular-filters/.travis.yml new file mode 100644 index 0000000000..9255758283 --- /dev/null +++ b/awx/ui/client/lib/angular-filters/.travis.yml @@ -0,0 +1,16 @@ + language: node_js + + node_js: + - '0.10' + + before_script: + - export DISPLAY=:99.0 + - export PHANTOMJS_BIN=/usr/local/phantomjs/bin/phantomjs + - sh -e /etc/init.d/xvfb start + - sleep 3 # give xvfb some time to start + - 'npm install -g bower grunt-cli' + - 'npm install' + - 'bower install' + + script: + - grunt diff --git a/awx/ui/static/lib/angular-filters/CHANGELOG.md b/awx/ui/client/lib/angular-filters/CHANGELOG.md similarity index 85% rename from awx/ui/static/lib/angular-filters/CHANGELOG.md rename to awx/ui/client/lib/angular-filters/CHANGELOG.md index 3a84d5bfd3..60fad95f78 100644 --- a/awx/ui/static/lib/angular-filters/CHANGELOG.md +++ b/awx/ui/client/lib/angular-filters/CHANGELOG.md @@ -1,6 +1,14 @@ CHANGELOG ========= +#### v1.1.2 (2015-06-13) + +- Updated to angular 1.4.0 + +#### v1.1.1 + +- Treat `NaN` as an invalid value for the `default` filter + #### v1.1.0 - Added `property` filter diff --git a/awx/ui/static/lib/angular-filters/Gruntfile.js b/awx/ui/client/lib/angular-filters/Gruntfile.js similarity index 97% rename from awx/ui/static/lib/angular-filters/Gruntfile.js rename to awx/ui/client/lib/angular-filters/Gruntfile.js index f6f51ba3bb..5c997d8254 100644 --- a/awx/ui/static/lib/angular-filters/Gruntfile.js +++ b/awx/ui/client/lib/angular-filters/Gruntfile.js @@ -99,7 +99,7 @@ module.exports = function(grunt) { } }); - grunt.registerTask('test', ['jshint', 'karma:unit']); + grunt.registerTask('test', ['jshint', 'karma:local']); grunt.registerTask('test-travis', ['jshint', 'karma:travis']); grunt.registerTask('build', ['clean', 'ngmin', 'concat', 'uglify', 'clean:temp']); diff --git a/awx/ui/static/lib/bootstrap-datepicker/LICENSE b/awx/ui/client/lib/angular-filters/LICENSE similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/LICENSE rename to awx/ui/client/lib/angular-filters/LICENSE diff --git a/awx/ui/static/lib/angular-filters/README.md b/awx/ui/client/lib/angular-filters/README.md similarity index 99% rename from awx/ui/static/lib/angular-filters/README.md rename to awx/ui/client/lib/angular-filters/README.md index c0dc78db9c..5667149c14 100644 --- a/awx/ui/static/lib/angular-filters/README.md +++ b/awx/ui/client/lib/angular-filters/README.md @@ -47,6 +47,7 @@ The `default` filter allows to **specify a default fallback value** if an object - `null` - `undefined` - empty string, `''` +- `NaN` Please notice that if a value equals to `0`, the default value won't be returned, as `0` is accepted. @@ -184,7 +185,7 @@ To contribute, please follow the generic [AngularJS Contributing Guidelines](htt ## License ``` - Copyright 2014 Francesco Pontillo + Copyright 2014-2015 Francesco Pontillo Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/awx/ui/static/lib/angular-filters/bower.json b/awx/ui/client/lib/angular-filters/bower.json similarity index 67% rename from awx/ui/static/lib/angular-filters/bower.json rename to awx/ui/client/lib/angular-filters/bower.json index 51426c2e12..a48807293a 100644 --- a/awx/ui/static/lib/angular-filters/bower.json +++ b/awx/ui/client/lib/angular-filters/bower.json @@ -2,20 +2,17 @@ "author": "Francesco Pontillo", "name": "angular-filters", "description": "A collection of filters for AngularJS.", - "version": "1.1.0", + "version": "1.1.2", "homepage": "https://github.com/frapontillo/angular-filters", "repository": { "type": "git", "url": "git://github.com/frapontillo/angular-filters.git" }, - "main": "./dist/angular-filters.min.js", + "main": "./dist/angular-filters.js", "dependencies": { - "angular": "1.2.10" + "angular": "~1.4.0" }, "devDependencies": { - "angular-mocks": "1.2.10" - }, - "resolutions": { - "angular": "1.2.10" + "angular-mocks": "~1.4.0" } } diff --git a/awx/ui/static/lib/angular-filters/common/module.js b/awx/ui/client/lib/angular-filters/common/module.js similarity index 100% rename from awx/ui/static/lib/angular-filters/common/module.js rename to awx/ui/client/lib/angular-filters/common/module.js diff --git a/awx/ui/static/lib/angular-filters/dist/angular-filters.js b/awx/ui/client/lib/angular-filters/dist/angular-filters.js similarity index 95% rename from awx/ui/static/lib/angular-filters/dist/angular-filters.js rename to awx/ui/client/lib/angular-filters/dist/angular-filters.js index b6a6e7f663..703f40259f 100644 --- a/awx/ui/static/lib/angular-filters/dist/angular-filters.js +++ b/awx/ui/client/lib/angular-filters/dist/angular-filters.js @@ -1,6 +1,6 @@ /** * A collection of filters for AngularJS. - * @version v1.1.0 - 2014-01-30 + * @version v1.1.2 - 2015-06-13 * @author Francesco Pontillo * @link https://github.com/frapontillo/angular-filters * @license Apache License 2.0 @@ -19,7 +19,7 @@ angular.module('frapontillo.ex.filters').filter('bool', function () { // Source: dist/.temp/filters/default/default.js angular.module('frapontillo.ex.filters').filter('default', function () { return function (input, value) { - if (input !== null && input !== undefined && (input !== '' || angular.isNumber(input))) { + if (!isNaN(input) && input !== null && input !== undefined && (input !== '' || angular.isNumber(input))) { return input; } return value || ''; diff --git a/awx/ui/client/lib/angular-filters/dist/angular-filters.min.js b/awx/ui/client/lib/angular-filters/dist/angular-filters.min.js new file mode 100644 index 0000000000..9d24b7a4b4 --- /dev/null +++ b/awx/ui/client/lib/angular-filters/dist/angular-filters.min.js @@ -0,0 +1,9 @@ +/** + * A collection of filters for AngularJS. + * @version v1.1.2 - 2015-06-13 + * @author Francesco Pontillo + * @link https://github.com/frapontillo/angular-filters + * @license Apache License 2.0 +**/ + +"use strict";angular.module("frapontillo.ex.filters",[]),angular.module("frapontillo",["ex.filters"]),angular.module("frapontillo.ex.filters").filter("bool",function(){return function(a,b,c){return a!==!0?c:b}}),angular.module("frapontillo.ex.filters").filter("default",function(){return function(a,b){return isNaN(a)||null===a||void 0===a||""===a&&!angular.isNumber(a)?b||"":a}}),angular.module("frapontillo.ex.filters").filter("firstNotNull",function(){return function(a){if(a)for(var b=a.length-1,c=0;b>=c;c++)if(void 0!==a[c]&&null!==a[c])return a[c]}}),angular.module("frapontillo.ex.filters").filter("join",function(){return function(a,b){return a?a.join(b):""}}),angular.module("frapontillo.ex.filters").filter("lastNotNull",function(){return function(a){if(a)for(var b=a.length-1,c=b;c>=0;c--)if(void 0!==a[c])return a[c]}}),angular.module("frapontillo.ex.filters").filter("max",function(){return function(a){var b;if(a)for(var c in a)(a[c]>b||void 0===b||null===b)&&(b=a[c]);return b}}),angular.module("frapontillo.ex.filters").filter("min",function(){return function(a){var b;if(a)for(var c in a)(a[c] 4, + args = hasParams ? Array.prototype.slice.call(arguments, 4) : [], iteration = 0, - skipApply = (angular.isDefined(invokeApply) && !invokeApply); + skipApply = (angular.isDefined(invokeApply) && !invokeApply), + deferred = (skipApply ? $$q : $q).defer(), + promise = deferred.promise; count = (angular.isDefined(count)) ? count : 0; - promise.then(null, null, fn); + promise.then(null, null, (!hasParams) ? fn : function() { + fn.apply(null, args); + }); promise.$$intervalId = nextRepeatId; @@ -483,7 +474,11 @@ angular.mock.$IntervalProvider = function() { } } - if (!skipApply) $rootScope.$apply(); + if (skipApply) { + $browser.defer.flush(); + } else { + $rootScope.$apply(); + } } repeatFns.push({ @@ -493,7 +488,7 @@ angular.mock.$IntervalProvider = function() { id: nextRepeatId, deferred: deferred }); - repeatFns.sort(function(a,b){ return a.nextTime - b.nextTime;}); + repeatFns.sort(function(a, b) { return a.nextTime - b.nextTime;}); nextRepeatId++; return promise; @@ -509,7 +504,7 @@ angular.mock.$IntervalProvider = function() { * @returns {boolean} Returns `true` if the task was successfully cancelled. */ $interval.cancel = function(promise) { - if(!promise) return false; + if (!promise) return false; var fnIndex; angular.forEach(repeatFns, function(fn, index) { @@ -542,7 +537,7 @@ angular.mock.$IntervalProvider = function() { var task = repeatFns[0]; task.fn(); task.nextTime += task.delay; - repeatFns.sort(function(a,b){ return a.nextTime - b.nextTime;}); + repeatFns.sort(function(a, b) { return a.nextTime - b.nextTime;}); } return millis; }; @@ -566,20 +561,20 @@ function jsonStringToDate(string) { tzHour = 0, tzMin = 0; if (match[9]) { - tzHour = int(match[9] + match[10]); - tzMin = int(match[9] + match[11]); + tzHour = toInt(match[9] + match[10]); + tzMin = toInt(match[9] + match[11]); } - date.setUTCFullYear(int(match[1]), int(match[2]) - 1, int(match[3])); - date.setUTCHours(int(match[4]||0) - tzHour, - int(match[5]||0) - tzMin, - int(match[6]||0), - int(match[7]||0)); + date.setUTCFullYear(toInt(match[1]), toInt(match[2]) - 1, toInt(match[3])); + date.setUTCHours(toInt(match[4] || 0) - tzHour, + toInt(match[5] || 0) - tzMin, + toInt(match[6] || 0), + toInt(match[7] || 0)); return date; } return string; } -function int(str) { +function toInt(str) { return parseInt(str, 10); } @@ -590,9 +585,10 @@ function padNumber(num, digits, trim) { num = -num; } num = '' + num; - while(num.length < digits) num = '0' + num; - if (trim) + while (num.length < digits) num = '0' + num; + if (trim) { num = num.substr(num.length - digits); + } return neg + num; } @@ -634,7 +630,7 @@ function padNumber(num, digits, trim) { * ``` * */ -angular.mock.TzDate = function (offset, timestamp) { +angular.mock.TzDate = function(offset, timestamp) { var self = new Date(0); if (angular.isString(timestamp)) { var tsStr = timestamp; @@ -642,17 +638,18 @@ angular.mock.TzDate = function (offset, timestamp) { self.origDate = jsonStringToDate(timestamp); timestamp = self.origDate.getTime(); - if (isNaN(timestamp)) + if (isNaN(timestamp)) { throw { name: "Illegal Argument", message: "Arg '" + tsStr + "' passed into TzDate constructor is not a valid date string" }; + } } else { self.origDate = new Date(timestamp); } var localOffset = new Date(timestamp).getTimezoneOffset(); - self.offsetDiff = localOffset*60*1000 - offset*1000*60*60; + self.offsetDiff = localOffset * 60 * 1000 - offset * 1000 * 60 * 60; self.date = new Date(timestamp + self.offsetDiff); self.getTime = function() { @@ -774,14 +771,23 @@ angular.mock.animate = angular.module('ngAnimateMock', ['ng']) }; }); - $provide.decorator('$animate', function($delegate, $$asyncCallback) { + $provide.decorator('$animate', ['$delegate', '$timeout', '$browser', '$$rAF', + function($delegate, $timeout, $browser, $$rAF) { var animate = { - queue : [], - enabled : $delegate.enabled, - triggerCallbacks : function() { - $$asyncCallback.flush(); + queue: [], + cancel: $delegate.cancel, + enabled: $delegate.enabled, + triggerCallbackEvents: function() { + $$rAF.flush(); }, - triggerReflow : function() { + triggerCallbackPromise: function() { + $timeout.flush(0); + }, + triggerCallbacks: function() { + this.triggerCallbackEvents(); + this.triggerCallbackPromise(); + }, + triggerReflow: function() { angular.forEach(reflowQueue, function(fn) { fn(); }); @@ -790,19 +796,20 @@ angular.mock.animate = angular.module('ngAnimateMock', ['ng']) }; angular.forEach( - ['enter','leave','move','addClass','removeClass','setClass'], function(method) { + ['animate','enter','leave','move','addClass','removeClass','setClass'], function(method) { animate[method] = function() { animate.queue.push({ - event : method, - element : arguments[0], - args : arguments + event: method, + element: arguments[0], + options: arguments[arguments.length - 1], + args: arguments }); - $delegate[method].apply($delegate, arguments); + return $delegate[method].apply($delegate, arguments); }; }); return animate; - }); + }]); }]); @@ -862,13 +869,13 @@ angular.mock.dump = function(object) { function serializeScope(scope, offset) { offset = offset || ' '; var log = [offset + 'Scope(' + scope.$id + '): {']; - for ( var key in scope ) { + for (var key in scope) { if (Object.prototype.hasOwnProperty.call(scope, key) && !key.match(/^(\$|this)/)) { log.push(' ' + key + ': ' + angular.toJson(scope[key])); } } var child = scope.$$childHead; - while(child) { + while (child) { log.push(serializeScope(child, offset + ' ')); child = child.$$nextSibling; } @@ -980,6 +987,11 @@ angular.mock.dump = function(object) { * First we create the controller under test: * ```js + // The module code + angular + .module('MyApp', []) + .controller('MyController', MyController); + // The controller code function MyController($scope, $http) { var authToken; @@ -1007,13 +1019,17 @@ angular.mock.dump = function(object) { ```js // testing controller describe('MyController', function() { - var $httpBackend, $rootScope, createController; + var $httpBackend, $rootScope, createController, authRequestHandler; + + // Set up the module + beforeEach(module('MyApp')); beforeEach(inject(function($injector) { // Set up the mock http service responses $httpBackend = $injector.get('$httpBackend'); // backend definition common for all tests - $httpBackend.when('GET', '/auth.py').respond({userId: 'userX'}, {'A-Token': 'xxx'}); + authRequestHandler = $httpBackend.when('GET', '/auth.py') + .respond({userId: 'userX'}, {'A-Token': 'xxx'}); // Get hold of a scope (i.e. the root scope) $rootScope = $injector.get('$rootScope'); @@ -1039,6 +1055,18 @@ angular.mock.dump = function(object) { }); + it('should fail authentication', function() { + + // Notice how you can change the response even after it was set + authRequestHandler.respond(401, ''); + + $httpBackend.expectGET('/auth.py'); + var controller = createController(); + $httpBackend.flush(); + expect($rootScope.status).toBe('Failed...'); + }); + + it('should send msg to server', function() { var controller = createController(); $httpBackend.flush(); @@ -1061,7 +1089,7 @@ angular.mock.dump = function(object) { $httpBackend.flush(); $httpBackend.expectPOST('/add-msg.py', undefined, function(headers) { - // check if the header was send, if it wasn't the expectation won't + // check if the header was sent, if it wasn't the expectation won't // match the request and the test will fail return headers['Authorization'] == 'xxx'; }).respond(201, ''); @@ -1073,7 +1101,7 @@ angular.mock.dump = function(object) { ``` */ angular.mock.$HttpBackendProvider = function() { - this.$get = ['$rootScope', createHttpBackendMock]; + this.$get = ['$rootScope', '$timeout', createHttpBackendMock]; }; /** @@ -1090,7 +1118,7 @@ angular.mock.$HttpBackendProvider = function() { * @param {Object=} $browser Auto-flushing enabled if specified * @return {Object} Instance of $httpBackend mock */ -function createHttpBackendMock($rootScope, $delegate, $browser) { +function createHttpBackendMock($rootScope, $timeout, $delegate, $browser) { var definitions = [], expectations = [], responses = [], @@ -1103,7 +1131,7 @@ function createHttpBackendMock($rootScope, $delegate, $browser) { return function() { return angular.isNumber(status) ? [status, data, headers, statusText] - : [200, status, data]; + : [200, status, data, headers]; }; } @@ -1120,7 +1148,9 @@ function createHttpBackendMock($rootScope, $delegate, $browser) { } function wrapResponse(wrapped) { - if (!$browser && timeout && timeout.then) timeout.then(handleTimeout); + if (!$browser && timeout) { + timeout.then ? timeout.then(handleTimeout) : $timeout(handleTimeout, timeout); + } return handleResponse; @@ -1143,14 +1173,16 @@ function createHttpBackendMock($rootScope, $delegate, $browser) { } if (expectation && expectation.match(method, url)) { - if (!expectation.matchData(data)) + if (!expectation.matchData(data)) { throw new Error('Expected ' + expectation + ' with different data\n' + 'EXPECTED: ' + prettyPrint(expectation.data) + '\nGOT: ' + data); + } - if (!expectation.matchHeaders(headers)) + if (!expectation.matchHeaders(headers)) { throw new Error('Expected ' + expectation + ' with different headers\n' + 'EXPECTED: ' + prettyPrint(expectation.headers) + '\nGOT: ' + prettyPrint(headers)); + } expectations.shift(); @@ -1186,32 +1218,39 @@ function createHttpBackendMock($rootScope, $delegate, $browser) { * Creates a new backend definition. * * @param {string} method HTTP method. - * @param {string|RegExp} url HTTP url. + * @param {string|RegExp|function(string)} url HTTP url or function that receives a url + * and returns true if the url matches the current definition. * @param {(string|RegExp|function(string))=} data HTTP request body or function that receives * data string and returns true if the data is as expected. * @param {(Object|function(Object))=} headers HTTP headers or function that receives http header * object and returns true if the headers match the current definition. * @returns {requestHandler} Returns an object with `respond` method that controls how a matched - * request is handled. + * request is handled. You can save this object for later use and invoke `respond` again in + * order to change how a matched request is handled. * * - respond – * `{function([status,] data[, headers, statusText]) * | function(function(method, url, data, headers)}` * – The respond method takes a set of static data to be returned or a function that can * return an array containing response status (number), response data (string), response - * headers (Object), and the text for the status (string). + * headers (Object), and the text for the status (string). The respond method returns the + * `requestHandler` object for possible overrides. */ $httpBackend.when = function(method, url, data, headers) { var definition = new MockHttpExpectation(method, url, data, headers), chain = { respond: function(status, data, headers, statusText) { + definition.passThrough = undefined; definition.response = createResponse(status, data, headers, statusText); + return chain; } }; if ($browser) { chain.passThrough = function() { + definition.response = undefined; definition.passThrough = true; + return chain; }; } @@ -1225,10 +1264,12 @@ function createHttpBackendMock($rootScope, $delegate, $browser) { * @description * Creates a new backend definition for GET requests. For more info see `when()`. * - * @param {string|RegExp} url HTTP url. + * @param {string|RegExp|function(string)} url HTTP url or function that receives a url + * and returns true if the url matches the current definition. * @param {(Object|function(Object))=} headers HTTP headers. - * @returns {requestHandler} Returns an object with `respond` method that control how a matched - * request is handled. + * @returns {requestHandler} Returns an object with `respond` method that controls how a matched + * request is handled. You can save this object for later use and invoke `respond` again in + * order to change how a matched request is handled. */ /** @@ -1237,10 +1278,12 @@ function createHttpBackendMock($rootScope, $delegate, $browser) { * @description * Creates a new backend definition for HEAD requests. For more info see `when()`. * - * @param {string|RegExp} url HTTP url. + * @param {string|RegExp|function(string)} url HTTP url or function that receives a url + * and returns true if the url matches the current definition. * @param {(Object|function(Object))=} headers HTTP headers. - * @returns {requestHandler} Returns an object with `respond` method that control how a matched - * request is handled. + * @returns {requestHandler} Returns an object with `respond` method that controls how a matched + * request is handled. You can save this object for later use and invoke `respond` again in + * order to change how a matched request is handled. */ /** @@ -1249,10 +1292,12 @@ function createHttpBackendMock($rootScope, $delegate, $browser) { * @description * Creates a new backend definition for DELETE requests. For more info see `when()`. * - * @param {string|RegExp} url HTTP url. + * @param {string|RegExp|function(string)} url HTTP url or function that receives a url + * and returns true if the url matches the current definition. * @param {(Object|function(Object))=} headers HTTP headers. - * @returns {requestHandler} Returns an object with `respond` method that control how a matched - * request is handled. + * @returns {requestHandler} Returns an object with `respond` method that controls how a matched + * request is handled. You can save this object for later use and invoke `respond` again in + * order to change how a matched request is handled. */ /** @@ -1261,12 +1306,14 @@ function createHttpBackendMock($rootScope, $delegate, $browser) { * @description * Creates a new backend definition for POST requests. For more info see `when()`. * - * @param {string|RegExp} url HTTP url. + * @param {string|RegExp|function(string)} url HTTP url or function that receives a url + * and returns true if the url matches the current definition. * @param {(string|RegExp|function(string))=} data HTTP request body or function that receives * data string and returns true if the data is as expected. * @param {(Object|function(Object))=} headers HTTP headers. - * @returns {requestHandler} Returns an object with `respond` method that control how a matched - * request is handled. + * @returns {requestHandler} Returns an object with `respond` method that controls how a matched + * request is handled. You can save this object for later use and invoke `respond` again in + * order to change how a matched request is handled. */ /** @@ -1275,12 +1322,14 @@ function createHttpBackendMock($rootScope, $delegate, $browser) { * @description * Creates a new backend definition for PUT requests. For more info see `when()`. * - * @param {string|RegExp} url HTTP url. + * @param {string|RegExp|function(string)} url HTTP url or function that receives a url + * and returns true if the url matches the current definition. * @param {(string|RegExp|function(string))=} data HTTP request body or function that receives * data string and returns true if the data is as expected. * @param {(Object|function(Object))=} headers HTTP headers. - * @returns {requestHandler} Returns an object with `respond` method that control how a matched - * request is handled. + * @returns {requestHandler} Returns an object with `respond` method that controls how a matched + * request is handled. You can save this object for later use and invoke `respond` again in + * order to change how a matched request is handled. */ /** @@ -1289,9 +1338,11 @@ function createHttpBackendMock($rootScope, $delegate, $browser) { * @description * Creates a new backend definition for JSONP requests. For more info see `when()`. * - * @param {string|RegExp} url HTTP url. - * @returns {requestHandler} Returns an object with `respond` method that control how a matched - * request is handled. + * @param {string|RegExp|function(string)} url HTTP url or function that receives a url + * and returns true if the url matches the current definition. + * @returns {requestHandler} Returns an object with `respond` method that controls how a matched + * request is handled. You can save this object for later use and invoke `respond` again in + * order to change how a matched request is handled. */ createShortMethods('when'); @@ -1303,30 +1354,36 @@ function createHttpBackendMock($rootScope, $delegate, $browser) { * Creates a new request expectation. * * @param {string} method HTTP method. - * @param {string|RegExp} url HTTP url. + * @param {string|RegExp|function(string)} url HTTP url or function that receives a url + * and returns true if the url matches the current definition. * @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that * receives data string and returns true if the data is as expected, or Object if request body * is in JSON format. * @param {(Object|function(Object))=} headers HTTP headers or function that receives http header * object and returns true if the headers match the current expectation. - * @returns {requestHandler} Returns an object with `respond` method that control how a matched - * request is handled. + * @returns {requestHandler} Returns an object with `respond` method that controls how a matched + * request is handled. You can save this object for later use and invoke `respond` again in + * order to change how a matched request is handled. * * - respond – * `{function([status,] data[, headers, statusText]) * | function(function(method, url, data, headers)}` * – The respond method takes a set of static data to be returned or a function that can * return an array containing response status (number), response data (string), response - * headers (Object), and the text for the status (string). + * headers (Object), and the text for the status (string). The respond method returns the + * `requestHandler` object for possible overrides. */ $httpBackend.expect = function(method, url, data, headers) { - var expectation = new MockHttpExpectation(method, url, data, headers); + var expectation = new MockHttpExpectation(method, url, data, headers), + chain = { + respond: function(status, data, headers, statusText) { + expectation.response = createResponse(status, data, headers, statusText); + return chain; + } + }; + expectations.push(expectation); - return { - respond: function (status, data, headers, statusText) { - expectation.response = createResponse(status, data, headers, statusText); - } - }; + return chain; }; @@ -1336,10 +1393,12 @@ function createHttpBackendMock($rootScope, $delegate, $browser) { * @description * Creates a new request expectation for GET requests. For more info see `expect()`. * - * @param {string|RegExp} url HTTP url. + * @param {string|RegExp|function(string)} url HTTP url or function that receives a url + * and returns true if the url matches the current definition. * @param {Object=} headers HTTP headers. - * @returns {requestHandler} Returns an object with `respond` method that control how a matched - * request is handled. See #expect for more info. + * @returns {requestHandler} Returns an object with `respond` method that controls how a matched + * request is handled. You can save this object for later use and invoke `respond` again in + * order to change how a matched request is handled. See #expect for more info. */ /** @@ -1348,10 +1407,12 @@ function createHttpBackendMock($rootScope, $delegate, $browser) { * @description * Creates a new request expectation for HEAD requests. For more info see `expect()`. * - * @param {string|RegExp} url HTTP url. + * @param {string|RegExp|function(string)} url HTTP url or function that receives a url + * and returns true if the url matches the current definition. * @param {Object=} headers HTTP headers. - * @returns {requestHandler} Returns an object with `respond` method that control how a matched - * request is handled. + * @returns {requestHandler} Returns an object with `respond` method that controls how a matched + * request is handled. You can save this object for later use and invoke `respond` again in + * order to change how a matched request is handled. */ /** @@ -1360,10 +1421,12 @@ function createHttpBackendMock($rootScope, $delegate, $browser) { * @description * Creates a new request expectation for DELETE requests. For more info see `expect()`. * - * @param {string|RegExp} url HTTP url. + * @param {string|RegExp|function(string)} url HTTP url or function that receives a url + * and returns true if the url matches the current definition. * @param {Object=} headers HTTP headers. - * @returns {requestHandler} Returns an object with `respond` method that control how a matched - * request is handled. + * @returns {requestHandler} Returns an object with `respond` method that controls how a matched + * request is handled. You can save this object for later use and invoke `respond` again in + * order to change how a matched request is handled. */ /** @@ -1372,13 +1435,15 @@ function createHttpBackendMock($rootScope, $delegate, $browser) { * @description * Creates a new request expectation for POST requests. For more info see `expect()`. * - * @param {string|RegExp} url HTTP url. + * @param {string|RegExp|function(string)} url HTTP url or function that receives a url + * and returns true if the url matches the current definition. * @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that * receives data string and returns true if the data is as expected, or Object if request body * is in JSON format. * @param {Object=} headers HTTP headers. - * @returns {requestHandler} Returns an object with `respond` method that control how a matched - * request is handled. + * @returns {requestHandler} Returns an object with `respond` method that controls how a matched + * request is handled. You can save this object for later use and invoke `respond` again in + * order to change how a matched request is handled. */ /** @@ -1387,13 +1452,15 @@ function createHttpBackendMock($rootScope, $delegate, $browser) { * @description * Creates a new request expectation for PUT requests. For more info see `expect()`. * - * @param {string|RegExp} url HTTP url. + * @param {string|RegExp|function(string)} url HTTP url or function that receives a url + * and returns true if the url matches the current definition. * @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that * receives data string and returns true if the data is as expected, or Object if request body * is in JSON format. * @param {Object=} headers HTTP headers. - * @returns {requestHandler} Returns an object with `respond` method that control how a matched - * request is handled. + * @returns {requestHandler} Returns an object with `respond` method that controls how a matched + * request is handled. You can save this object for later use and invoke `respond` again in + * order to change how a matched request is handled. */ /** @@ -1402,13 +1469,15 @@ function createHttpBackendMock($rootScope, $delegate, $browser) { * @description * Creates a new request expectation for PATCH requests. For more info see `expect()`. * - * @param {string|RegExp} url HTTP url. + * @param {string|RegExp|function(string)} url HTTP url or function that receives a url + * and returns true if the url matches the current definition. * @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that * receives data string and returns true if the data is as expected, or Object if request body * is in JSON format. * @param {Object=} headers HTTP headers. - * @returns {requestHandler} Returns an object with `respond` method that control how a matched - * request is handled. + * @returns {requestHandler} Returns an object with `respond` method that controls how a matched + * request is handled. You can save this object for later use and invoke `respond` again in + * order to change how a matched request is handled. */ /** @@ -1417,9 +1486,11 @@ function createHttpBackendMock($rootScope, $delegate, $browser) { * @description * Creates a new request expectation for JSONP requests. For more info see `expect()`. * - * @param {string|RegExp} url HTTP url. - * @returns {requestHandler} Returns an object with `respond` method that control how a matched - * request is handled. + * @param {string|RegExp|function(string)} url HTTP url or function that receives an url + * and returns true if the url matches the current definition. + * @returns {requestHandler} Returns an object with `respond` method that controls how a matched + * request is handled. You can save this object for later use and invoke `respond` again in + * order to change how a matched request is handled. */ createShortMethods('expect'); @@ -1434,11 +1505,11 @@ function createHttpBackendMock($rootScope, $delegate, $browser) { * all pending requests will be flushed. If there are no pending requests when the flush method * is called an exception is thrown (as this typically a sign of programming error). */ - $httpBackend.flush = function(count) { - $rootScope.$digest(); + $httpBackend.flush = function(count, digest) { + if (digest !== false) $rootScope.$digest(); if (!responses.length) throw new Error('No pending request to flush !'); - if (angular.isDefined(count)) { + if (angular.isDefined(count) && count !== null) { while (count--) { if (!responses.length) throw new Error('No more pending request to flush !'); responses.shift()(); @@ -1448,7 +1519,7 @@ function createHttpBackendMock($rootScope, $delegate, $browser) { responses.shift()(); } } - $httpBackend.verifyNoOutstandingExpectation(); + $httpBackend.verifyNoOutstandingExpectation(digest); }; @@ -1466,8 +1537,8 @@ function createHttpBackendMock($rootScope, $delegate, $browser) { * afterEach($httpBackend.verifyNoOutstandingExpectation); * ``` */ - $httpBackend.verifyNoOutstandingExpectation = function() { - $rootScope.$digest(); + $httpBackend.verifyNoOutstandingExpectation = function(digest) { + if (digest !== false) $rootScope.$digest(); if (expectations.length) { throw new Error('Unsatisfied requests: ' + expectations.join(', ')); } @@ -1511,7 +1582,7 @@ function createHttpBackendMock($rootScope, $delegate, $browser) { function createShortMethods(prefix) { - angular.forEach(['GET', 'DELETE', 'JSONP'], function(method) { + angular.forEach(['GET', 'DELETE', 'JSONP', 'HEAD'], function(method) { $httpBackend[prefix + method] = function(url, headers) { return $httpBackend[prefix](method, url, undefined, headers); }; @@ -1541,6 +1612,7 @@ function MockHttpExpectation(method, url, data, headers) { this.matchUrl = function(u) { if (!url) return true; if (angular.isFunction(url.test)) return url.test(u); + if (angular.isFunction(url)) return url(u); return url == u; }; @@ -1554,7 +1626,9 @@ function MockHttpExpectation(method, url, data, headers) { if (angular.isUndefined(data)) return true; if (data && angular.isFunction(data.test)) return data.test(d); if (data && angular.isFunction(data)) return data(d); - if (data && !angular.isString(data)) return angular.equals(data, angular.fromJson(d)); + if (data && !angular.isString(data)) { + return angular.equals(angular.fromJson(angular.toJson(data)), angular.fromJson(d)); + } return data == d; }; @@ -1627,7 +1701,7 @@ function MockXhr() { * that adds a "flush" and "verifyNoPendingTasks" methods. */ -angular.mock.$TimeoutDecorator = function($delegate, $browser) { +angular.mock.$TimeoutDecorator = ['$delegate', '$browser', function($delegate, $browser) { /** * @ngdoc method @@ -1666,9 +1740,9 @@ angular.mock.$TimeoutDecorator = function($delegate, $browser) { } return $delegate; -}; +}]; -angular.mock.$RAFDecorator = function($delegate) { +angular.mock.$RAFDecorator = ['$delegate', function($delegate) { var queue = []; var rafFn = function(fn) { var index = queue.length; @@ -1681,34 +1755,20 @@ angular.mock.$RAFDecorator = function($delegate) { rafFn.supported = $delegate.supported; rafFn.flush = function() { - if(queue.length === 0) { + if (queue.length === 0) { throw new Error('No rAF callbacks present'); } var length = queue.length; - for(var i=0;i", + "license": "MIT", + "bugs": { + "url": "https://github.com/angular/angular.js/issues" + }, + "homepage": "http://angularjs.org" +} diff --git a/awx/ui/static/lib/angular-moment/.bower.json b/awx/ui/client/lib/angular-moment/.bower.json similarity index 100% rename from awx/ui/static/lib/angular-moment/.bower.json rename to awx/ui/client/lib/angular-moment/.bower.json diff --git a/awx/ui/static/lib/angular-moment/.editorconfig b/awx/ui/client/lib/angular-moment/.editorconfig similarity index 100% rename from awx/ui/static/lib/angular-moment/.editorconfig rename to awx/ui/client/lib/angular-moment/.editorconfig diff --git a/awx/ui/static/lib/angular-moment/.gitignore b/awx/ui/client/lib/angular-moment/.gitignore similarity index 100% rename from awx/ui/static/lib/angular-moment/.gitignore rename to awx/ui/client/lib/angular-moment/.gitignore diff --git a/awx/ui/static/lib/angular-moment/.jshintrc b/awx/ui/client/lib/angular-moment/.jshintrc similarity index 100% rename from awx/ui/static/lib/angular-moment/.jshintrc rename to awx/ui/client/lib/angular-moment/.jshintrc diff --git a/awx/ui/static/lib/angular-moment/.npmignore b/awx/ui/client/lib/angular-moment/.npmignore similarity index 100% rename from awx/ui/static/lib/angular-moment/.npmignore rename to awx/ui/client/lib/angular-moment/.npmignore diff --git a/awx/ui/static/lib/angular-moment/.travis.yml b/awx/ui/client/lib/angular-moment/.travis.yml similarity index 100% rename from awx/ui/static/lib/angular-moment/.travis.yml rename to awx/ui/client/lib/angular-moment/.travis.yml diff --git a/awx/ui/static/lib/angular-moment/CHANGELOG.md b/awx/ui/client/lib/angular-moment/CHANGELOG.md similarity index 100% rename from awx/ui/static/lib/angular-moment/CHANGELOG.md rename to awx/ui/client/lib/angular-moment/CHANGELOG.md diff --git a/awx/ui/static/lib/angular-moment/CONTRIBUTING.md b/awx/ui/client/lib/angular-moment/CONTRIBUTING.md similarity index 100% rename from awx/ui/static/lib/angular-moment/CONTRIBUTING.md rename to awx/ui/client/lib/angular-moment/CONTRIBUTING.md diff --git a/awx/ui/static/lib/angular-moment/Gruntfile.js b/awx/ui/client/lib/angular-moment/Gruntfile.js similarity index 100% rename from awx/ui/static/lib/angular-moment/Gruntfile.js rename to awx/ui/client/lib/angular-moment/Gruntfile.js diff --git a/awx/ui/static/lib/angular-moment/LICENSE b/awx/ui/client/lib/angular-moment/LICENSE similarity index 100% rename from awx/ui/static/lib/angular-moment/LICENSE rename to awx/ui/client/lib/angular-moment/LICENSE diff --git a/awx/ui/static/lib/angular-moment/README.md b/awx/ui/client/lib/angular-moment/README.md similarity index 100% rename from awx/ui/static/lib/angular-moment/README.md rename to awx/ui/client/lib/angular-moment/README.md diff --git a/awx/ui/static/lib/angular-moment/angular-moment.js b/awx/ui/client/lib/angular-moment/angular-moment.js similarity index 100% rename from awx/ui/static/lib/angular-moment/angular-moment.js rename to awx/ui/client/lib/angular-moment/angular-moment.js diff --git a/awx/ui/static/lib/angular-moment/angular-moment.min.js b/awx/ui/client/lib/angular-moment/angular-moment.min.js similarity index 100% rename from awx/ui/static/lib/angular-moment/angular-moment.min.js rename to awx/ui/client/lib/angular-moment/angular-moment.min.js diff --git a/awx/ui/static/lib/angular-moment/angular-moment.min.js.map b/awx/ui/client/lib/angular-moment/angular-moment.min.js.map similarity index 100% rename from awx/ui/static/lib/angular-moment/angular-moment.min.js.map rename to awx/ui/client/lib/angular-moment/angular-moment.min.js.map diff --git a/awx/ui/static/lib/angular-moment/angular-moment.nuspec b/awx/ui/client/lib/angular-moment/angular-moment.nuspec similarity index 100% rename from awx/ui/static/lib/angular-moment/angular-moment.nuspec rename to awx/ui/client/lib/angular-moment/angular-moment.nuspec diff --git a/awx/ui/static/lib/angular-moment/bower.json b/awx/ui/client/lib/angular-moment/bower.json similarity index 100% rename from awx/ui/static/lib/angular-moment/bower.json rename to awx/ui/client/lib/angular-moment/bower.json diff --git a/awx/ui/static/lib/angular-moment/karma.conf.js b/awx/ui/client/lib/angular-moment/karma.conf.js similarity index 100% rename from awx/ui/static/lib/angular-moment/karma.conf.js rename to awx/ui/client/lib/angular-moment/karma.conf.js diff --git a/awx/ui/static/lib/angular-moment/package.json b/awx/ui/client/lib/angular-moment/package.json similarity index 100% rename from awx/ui/static/lib/angular-moment/package.json rename to awx/ui/client/lib/angular-moment/package.json diff --git a/awx/ui/static/lib/angular-moment/tests.js b/awx/ui/client/lib/angular-moment/tests.js similarity index 100% rename from awx/ui/static/lib/angular-moment/tests.js rename to awx/ui/client/lib/angular-moment/tests.js diff --git a/awx/ui/static/lib/angular-resource/.bower.json b/awx/ui/client/lib/angular-resource/.bower.json similarity index 54% rename from awx/ui/static/lib/angular-resource/.bower.json rename to awx/ui/client/lib/angular-resource/.bower.json index dbf41c64b7..a5aa59928d 100644 --- a/awx/ui/static/lib/angular-resource/.bower.json +++ b/awx/ui/client/lib/angular-resource/.bower.json @@ -1,18 +1,19 @@ { "name": "angular-resource", - "version": "1.2.15-build.2398+sha.4bab3d8", + "version": "1.4.3", "main": "./angular-resource.js", + "ignore": [], "dependencies": { - "angular": "1.2.15-build.2398+sha.4bab3d8" + "angular": "1.4.3" }, "homepage": "https://github.com/angular/bower-angular-resource", - "_release": "1.2.15-build.2398+sha.4bab3d8", + "_release": "1.4.3", "_resolution": { "type": "version", - "tag": "v1.2.15-build.2398+sha.4bab3d8", - "commit": "c20e7f87b0f788322c1c1920f1646a116389fa8d" + "tag": "v1.4.3", + "commit": "c971f7735b90685651526daf33a64c04b8539e91" }, "_source": "git://github.com/angular/bower-angular-resource.git", - "_target": "~1.2.12", + "_target": "~1.4.3", "_originalSource": "angular-resource" } \ No newline at end of file diff --git a/awx/ui/static/lib/angular-resource/README.md b/awx/ui/client/lib/angular-resource/README.md similarity index 76% rename from awx/ui/static/lib/angular-resource/README.md rename to awx/ui/client/lib/angular-resource/README.md index c8ac81468a..f3bd119ce2 100644 --- a/awx/ui/static/lib/angular-resource/README.md +++ b/awx/ui/client/lib/angular-resource/README.md @@ -1,12 +1,26 @@ -# bower-angular-resource +# packaged angular-resource -This repo is for distribution on `bower`. The source for this module is in the +This repo is for distribution on `npm` and `bower`. The source for this module is in the [main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngResource). Please file issues and pull requests against that repo. ## Install -Install with `bower`: +You can install this package either with `npm` or with `bower`. + +### npm + +```shell +npm install angular-resource +``` + +Then add `ngResource` as a dependency for your app: + +```javascript +angular.module('myApp', [require('angular-resource')]); +``` + +### bower ```shell bower install angular-resource @@ -18,7 +32,7 @@ Add a ` ``` -And add `ngResource` as a dependency for your app: +Then add `ngResource` as a dependency for your app: ```javascript angular.module('myApp', ['ngResource']); @@ -33,7 +47,7 @@ Documentation is available on the The MIT License -Copyright (c) 2010-2012 Google, Inc. http://angularjs.org +Copyright (c) 2010-2015 Google, Inc. http://angularjs.org Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/awx/ui/client/lib/angular-resource/angular-resource.js b/awx/ui/client/lib/angular-resource/angular-resource.js new file mode 100644 index 0000000000..797f9eeafb --- /dev/null +++ b/awx/ui/client/lib/angular-resource/angular-resource.js @@ -0,0 +1,669 @@ +/** + * @license AngularJS v1.4.3 + * (c) 2010-2015 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) {'use strict'; + +var $resourceMinErr = angular.$$minErr('$resource'); + +// Helper functions and regex to lookup a dotted path on an object +// stopping at undefined/null. The path must be composed of ASCII +// identifiers (just like $parse) +var MEMBER_NAME_REGEX = /^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/; + +function isValidDottedPath(path) { + return (path != null && path !== '' && path !== 'hasOwnProperty' && + MEMBER_NAME_REGEX.test('.' + path)); +} + +function lookupDottedPath(obj, path) { + if (!isValidDottedPath(path)) { + throw $resourceMinErr('badmember', 'Dotted member path "@{0}" is invalid.', path); + } + var keys = path.split('.'); + for (var i = 0, ii = keys.length; i < ii && obj !== undefined; i++) { + var key = keys[i]; + obj = (obj !== null) ? obj[key] : undefined; + } + return obj; +} + +/** + * Create a shallow copy of an object and clear other fields from the destination + */ +function shallowClearAndCopy(src, dst) { + dst = dst || {}; + + angular.forEach(dst, function(value, key) { + delete dst[key]; + }); + + for (var key in src) { + if (src.hasOwnProperty(key) && !(key.charAt(0) === '$' && key.charAt(1) === '$')) { + dst[key] = src[key]; + } + } + + return dst; +} + +/** + * @ngdoc module + * @name ngResource + * @description + * + * # ngResource + * + * The `ngResource` module provides interaction support with RESTful services + * via the $resource service. + * + * + *
+ * + * See {@link ngResource.$resource `$resource`} for usage. + */ + +/** + * @ngdoc service + * @name $resource + * @requires $http + * + * @description + * A factory which creates a resource object that lets you interact with + * [RESTful](http://en.wikipedia.org/wiki/Representational_State_Transfer) server-side data sources. + * + * The returned resource object has action methods which provide high-level behaviors without + * the need to interact with the low level {@link ng.$http $http} service. + * + * Requires the {@link ngResource `ngResource`} module to be installed. + * + * By default, trailing slashes will be stripped from the calculated URLs, + * which can pose problems with server backends that do not expect that + * behavior. This can be disabled by configuring the `$resourceProvider` like + * this: + * + * ```js + app.config(['$resourceProvider', function($resourceProvider) { + // Don't strip trailing slashes from calculated URLs + $resourceProvider.defaults.stripTrailingSlashes = false; + }]); + * ``` + * + * @param {string} url A parameterized URL template with parameters prefixed by `:` as in + * `/user/:username`. If you are using a URL with a port number (e.g. + * `http://example.com:8080/api`), it will be respected. + * + * If you are using a url with a suffix, just add the suffix, like this: + * `$resource('http://example.com/resource.json')` or `$resource('http://example.com/:id.json')` + * or even `$resource('http://example.com/resource/:resource_id.:format')` + * If the parameter before the suffix is empty, :resource_id in this case, then the `/.` will be + * collapsed down to a single `.`. If you need this sequence to appear and not collapse then you + * can escape it with `/\.`. + * + * @param {Object=} paramDefaults Default values for `url` parameters. These can be overridden in + * `actions` methods. If any of the parameter value is a function, it will be executed every time + * when a param value needs to be obtained for a request (unless the param was overridden). + * + * Each key value in the parameter object is first bound to url template if present and then any + * excess keys are appended to the url search query after the `?`. + * + * Given a template `/path/:verb` and parameter `{verb:'greet', salutation:'Hello'}` results in + * URL `/path/greet?salutation=Hello`. + * + * If the parameter value is prefixed with `@` then the value for that parameter will be extracted + * from the corresponding property on the `data` object (provided when calling an action method). For + * example, if the `defaultParam` object is `{someParam: '@someProp'}` then the value of `someParam` + * will be `data.someProp`. + * + * @param {Object.=} actions Hash with declaration of custom actions that should extend + * the default set of resource actions. The declaration should be created in the format of {@link + * ng.$http#usage $http.config}: + * + * {action1: {method:?, params:?, isArray:?, headers:?, ...}, + * action2: {method:?, params:?, isArray:?, headers:?, ...}, + * ...} + * + * Where: + * + * - **`action`** – {string} – The name of action. This name becomes the name of the method on + * your resource object. + * - **`method`** – {string} – Case insensitive HTTP method (e.g. `GET`, `POST`, `PUT`, + * `DELETE`, `JSONP`, etc). + * - **`params`** – {Object=} – Optional set of pre-bound parameters for this action. If any of + * the parameter value is a function, it will be executed every time when a param value needs to + * be obtained for a request (unless the param was overridden). + * - **`url`** – {string} – action specific `url` override. The url templating is supported just + * like for the resource-level urls. + * - **`isArray`** – {boolean=} – If true then the returned object for this action is an array, + * see `returns` section. + * - **`transformRequest`** – + * `{function(data, headersGetter)|Array.}` – + * transform function or an array of such functions. The transform function takes the http + * request body and headers and returns its transformed (typically serialized) version. + * By default, transformRequest will contain one function that checks if the request data is + * an object and serializes to using `angular.toJson`. To prevent this behavior, set + * `transformRequest` to an empty array: `transformRequest: []` + * - **`transformResponse`** – + * `{function(data, headersGetter)|Array.}` – + * transform function or an array of such functions. The transform function takes the http + * response body and headers and returns its transformed (typically deserialized) version. + * By default, transformResponse will contain one function that checks if the response looks like + * a JSON string and deserializes it using `angular.fromJson`. To prevent this behavior, set + * `transformResponse` to an empty array: `transformResponse: []` + * - **`cache`** – `{boolean|Cache}` – If true, a default $http cache will be used to cache the + * GET request, otherwise if a cache instance built with + * {@link ng.$cacheFactory $cacheFactory}, this cache will be used for + * caching. + * - **`timeout`** – `{number|Promise}` – timeout in milliseconds, or {@link ng.$q promise} that + * should abort the request when resolved. + * - **`withCredentials`** - `{boolean}` - whether to set the `withCredentials` flag on the + * XHR object. See + * [requests with credentials](https://developer.mozilla.org/en/http_access_control#section_5) + * for more information. + * - **`responseType`** - `{string}` - see + * [requestType](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#responseType). + * - **`interceptor`** - `{Object=}` - The interceptor object has two optional methods - + * `response` and `responseError`. Both `response` and `responseError` interceptors get called + * with `http response` object. See {@link ng.$http $http interceptors}. + * + * @param {Object} options Hash with custom settings that should extend the + * default `$resourceProvider` behavior. The only supported option is + * + * Where: + * + * - **`stripTrailingSlashes`** – {boolean} – If true then the trailing + * slashes from any calculated URL will be stripped. (Defaults to true.) + * + * @returns {Object} A resource "class" object with methods for the default set of resource actions + * optionally extended with custom `actions`. The default set contains these actions: + * ```js + * { 'get': {method:'GET'}, + * 'save': {method:'POST'}, + * 'query': {method:'GET', isArray:true}, + * 'remove': {method:'DELETE'}, + * 'delete': {method:'DELETE'} }; + * ``` + * + * Calling these methods invoke an {@link ng.$http} with the specified http method, + * destination and parameters. When the data is returned from the server then the object is an + * instance of the resource class. The actions `save`, `remove` and `delete` are available on it + * as methods with the `$` prefix. This allows you to easily perform CRUD operations (create, + * read, update, delete) on server-side data like this: + * ```js + * var User = $resource('/user/:userId', {userId:'@id'}); + * var user = User.get({userId:123}, function() { + * user.abc = true; + * user.$save(); + * }); + * ``` + * + * It is important to realize that invoking a $resource object method immediately returns an + * empty reference (object or array depending on `isArray`). Once the data is returned from the + * server the existing reference is populated with the actual data. This is a useful trick since + * usually the resource is assigned to a model which is then rendered by the view. Having an empty + * object results in no rendering, once the data arrives from the server then the object is + * populated with the data and the view automatically re-renders itself showing the new data. This + * means that in most cases one never has to write a callback function for the action methods. + * + * The action methods on the class object or instance object can be invoked with the following + * parameters: + * + * - HTTP GET "class" actions: `Resource.action([parameters], [success], [error])` + * - non-GET "class" actions: `Resource.action([parameters], postData, [success], [error])` + * - non-GET instance actions: `instance.$action([parameters], [success], [error])` + * + * + * Success callback is called with (value, responseHeaders) arguments, where the value is + * the populated resource instance or collection object. The error callback is called + * with (httpResponse) argument. + * + * Class actions return empty instance (with additional properties below). + * Instance actions return promise of the action. + * + * The Resource instances and collection have these additional properties: + * + * - `$promise`: the {@link ng.$q promise} of the original server interaction that created this + * instance or collection. + * + * On success, the promise is resolved with the same resource instance or collection object, + * updated with data from server. This makes it easy to use in + * {@link ngRoute.$routeProvider resolve section of $routeProvider.when()} to defer view + * rendering until the resource(s) are loaded. + * + * On failure, the promise is resolved with the {@link ng.$http http response} object, without + * the `resource` property. + * + * If an interceptor object was provided, the promise will instead be resolved with the value + * returned by the interceptor. + * + * - `$resolved`: `true` after first server interaction is completed (either with success or + * rejection), `false` before that. Knowing if the Resource has been resolved is useful in + * data-binding. + * + * @example + * + * # Credit card resource + * + * ```js + // Define CreditCard class + var CreditCard = $resource('/user/:userId/card/:cardId', + {userId:123, cardId:'@id'}, { + charge: {method:'POST', params:{charge:true}} + }); + + // We can retrieve a collection from the server + var cards = CreditCard.query(function() { + // GET: /user/123/card + // server returns: [ {id:456, number:'1234', name:'Smith'} ]; + + var card = cards[0]; + // each item is an instance of CreditCard + expect(card instanceof CreditCard).toEqual(true); + card.name = "J. Smith"; + // non GET methods are mapped onto the instances + card.$save(); + // POST: /user/123/card/456 {id:456, number:'1234', name:'J. Smith'} + // server returns: {id:456, number:'1234', name: 'J. Smith'}; + + // our custom method is mapped as well. + card.$charge({amount:9.99}); + // POST: /user/123/card/456?amount=9.99&charge=true {id:456, number:'1234', name:'J. Smith'} + }); + + // we can create an instance as well + var newCard = new CreditCard({number:'0123'}); + newCard.name = "Mike Smith"; + newCard.$save(); + // POST: /user/123/card {number:'0123', name:'Mike Smith'} + // server returns: {id:789, number:'0123', name: 'Mike Smith'}; + expect(newCard.id).toEqual(789); + * ``` + * + * The object returned from this function execution is a resource "class" which has "static" method + * for each action in the definition. + * + * Calling these methods invoke `$http` on the `url` template with the given `method`, `params` and + * `headers`. + * When the data is returned from the server then the object is an instance of the resource type and + * all of the non-GET methods are available with `$` prefix. This allows you to easily support CRUD + * operations (create, read, update, delete) on server-side data. + + ```js + var User = $resource('/user/:userId', {userId:'@id'}); + User.get({userId:123}, function(user) { + user.abc = true; + user.$save(); + }); + ``` + * + * It's worth noting that the success callback for `get`, `query` and other methods gets passed + * in the response that came from the server as well as $http header getter function, so one + * could rewrite the above example and get access to http headers as: + * + ```js + var User = $resource('/user/:userId', {userId:'@id'}); + User.get({userId:123}, function(u, getResponseHeaders){ + u.abc = true; + u.$save(function(u, putResponseHeaders) { + //u => saved user object + //putResponseHeaders => $http header getter + }); + }); + ``` + * + * You can also access the raw `$http` promise via the `$promise` property on the object returned + * + ``` + var User = $resource('/user/:userId', {userId:'@id'}); + User.get({userId:123}) + .$promise.then(function(user) { + $scope.user = user; + }); + ``` + + * # Creating a custom 'PUT' request + * In this example we create a custom method on our resource to make a PUT request + * ```js + * var app = angular.module('app', ['ngResource', 'ngRoute']); + * + * // Some APIs expect a PUT request in the format URL/object/ID + * // Here we are creating an 'update' method + * app.factory('Notes', ['$resource', function($resource) { + * return $resource('/notes/:id', null, + * { + * 'update': { method:'PUT' } + * }); + * }]); + * + * // In our controller we get the ID from the URL using ngRoute and $routeParams + * // We pass in $routeParams and our Notes factory along with $scope + * app.controller('NotesCtrl', ['$scope', '$routeParams', 'Notes', + function($scope, $routeParams, Notes) { + * // First get a note object from the factory + * var note = Notes.get({ id:$routeParams.id }); + * $id = note.id; + * + * // Now call update passing in the ID first then the object you are updating + * Notes.update({ id:$id }, note); + * + * // This will PUT /notes/ID with the note object in the request payload + * }]); + * ``` + */ +angular.module('ngResource', ['ng']). + provider('$resource', function() { + var provider = this; + + this.defaults = { + // Strip slashes by default + stripTrailingSlashes: true, + + // Default actions configuration + actions: { + 'get': {method: 'GET'}, + 'save': {method: 'POST'}, + 'query': {method: 'GET', isArray: true}, + 'remove': {method: 'DELETE'}, + 'delete': {method: 'DELETE'} + } + }; + + this.$get = ['$http', '$q', function($http, $q) { + + var noop = angular.noop, + forEach = angular.forEach, + extend = angular.extend, + copy = angular.copy, + isFunction = angular.isFunction; + + /** + * We need our custom method because encodeURIComponent is too aggressive and doesn't follow + * http://www.ietf.org/rfc/rfc3986.txt with regards to the character set + * (pchar) allowed in path segments: + * segment = *pchar + * pchar = unreserved / pct-encoded / sub-delims / ":" / "@" + * pct-encoded = "%" HEXDIG HEXDIG + * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" + * sub-delims = "!" / "$" / "&" / "'" / "(" / ")" + * / "*" / "+" / "," / ";" / "=" + */ + function encodeUriSegment(val) { + return encodeUriQuery(val, true). + replace(/%26/gi, '&'). + replace(/%3D/gi, '='). + replace(/%2B/gi, '+'); + } + + + /** + * This method is intended for encoding *key* or *value* parts of query component. We need a + * custom method because encodeURIComponent is too aggressive and encodes stuff that doesn't + * have to be encoded per http://tools.ietf.org/html/rfc3986: + * query = *( pchar / "/" / "?" ) + * pchar = unreserved / pct-encoded / sub-delims / ":" / "@" + * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" + * pct-encoded = "%" HEXDIG HEXDIG + * sub-delims = "!" / "$" / "&" / "'" / "(" / ")" + * / "*" / "+" / "," / ";" / "=" + */ + function encodeUriQuery(val, pctEncodeSpaces) { + return encodeURIComponent(val). + replace(/%40/gi, '@'). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%20/g, (pctEncodeSpaces ? '%20' : '+')); + } + + function Route(template, defaults) { + this.template = template; + this.defaults = extend({}, provider.defaults, defaults); + this.urlParams = {}; + } + + Route.prototype = { + setUrlParams: function(config, params, actionUrl) { + var self = this, + url = actionUrl || self.template, + val, + encodedVal; + + var urlParams = self.urlParams = {}; + forEach(url.split(/\W/), function(param) { + if (param === 'hasOwnProperty') { + throw $resourceMinErr('badname', "hasOwnProperty is not a valid parameter name."); + } + if (!(new RegExp("^\\d+$").test(param)) && param && + (new RegExp("(^|[^\\\\]):" + param + "(\\W|$)").test(url))) { + urlParams[param] = true; + } + }); + url = url.replace(/\\:/g, ':'); + + params = params || {}; + forEach(self.urlParams, function(_, urlParam) { + val = params.hasOwnProperty(urlParam) ? params[urlParam] : self.defaults[urlParam]; + if (angular.isDefined(val) && val !== null) { + encodedVal = encodeUriSegment(val); + url = url.replace(new RegExp(":" + urlParam + "(\\W|$)", "g"), function(match, p1) { + return encodedVal + p1; + }); + } else { + url = url.replace(new RegExp("(\/?):" + urlParam + "(\\W|$)", "g"), function(match, + leadingSlashes, tail) { + if (tail.charAt(0) == '/') { + return tail; + } else { + return leadingSlashes + tail; + } + }); + } + }); + + // strip trailing slashes and set the url (unless this behavior is specifically disabled) + if (self.defaults.stripTrailingSlashes) { + url = url.replace(/\/+$/, '') || '/'; + } + + // then replace collapse `/.` if found in the last URL path segment before the query + // E.g. `http://url.com/id./format?q=x` becomes `http://url.com/id.format?q=x` + url = url.replace(/\/\.(?=\w+($|\?))/, '.'); + // replace escaped `/\.` with `/.` + config.url = url.replace(/\/\\\./, '/.'); + + + // set params - delegate param encoding to $http + forEach(params, function(value, key) { + if (!self.urlParams[key]) { + config.params = config.params || {}; + config.params[key] = value; + } + }); + } + }; + + + function resourceFactory(url, paramDefaults, actions, options) { + var route = new Route(url, options); + + actions = extend({}, provider.defaults.actions, actions); + + function extractParams(data, actionParams) { + var ids = {}; + actionParams = extend({}, paramDefaults, actionParams); + forEach(actionParams, function(value, key) { + if (isFunction(value)) { value = value(); } + ids[key] = value && value.charAt && value.charAt(0) == '@' ? + lookupDottedPath(data, value.substr(1)) : value; + }); + return ids; + } + + function defaultResponseInterceptor(response) { + return response.resource; + } + + function Resource(value) { + shallowClearAndCopy(value || {}, this); + } + + Resource.prototype.toJSON = function() { + var data = extend({}, this); + delete data.$promise; + delete data.$resolved; + return data; + }; + + forEach(actions, function(action, name) { + var hasBody = /^(POST|PUT|PATCH)$/i.test(action.method); + + Resource[name] = function(a1, a2, a3, a4) { + var params = {}, data, success, error; + + /* jshint -W086 */ /* (purposefully fall through case statements) */ + switch (arguments.length) { + case 4: + error = a4; + success = a3; + //fallthrough + case 3: + case 2: + if (isFunction(a2)) { + if (isFunction(a1)) { + success = a1; + error = a2; + break; + } + + success = a2; + error = a3; + //fallthrough + } else { + params = a1; + data = a2; + success = a3; + break; + } + case 1: + if (isFunction(a1)) success = a1; + else if (hasBody) data = a1; + else params = a1; + break; + case 0: break; + default: + throw $resourceMinErr('badargs', + "Expected up to 4 arguments [params, data, success, error], got {0} arguments", + arguments.length); + } + /* jshint +W086 */ /* (purposefully fall through case statements) */ + + var isInstanceCall = this instanceof Resource; + var value = isInstanceCall ? data : (action.isArray ? [] : new Resource(data)); + var httpConfig = {}; + var responseInterceptor = action.interceptor && action.interceptor.response || + defaultResponseInterceptor; + var responseErrorInterceptor = action.interceptor && action.interceptor.responseError || + undefined; + + forEach(action, function(value, key) { + if (key != 'params' && key != 'isArray' && key != 'interceptor') { + httpConfig[key] = copy(value); + } + }); + + if (hasBody) httpConfig.data = data; + route.setUrlParams(httpConfig, + extend({}, extractParams(data, action.params || {}), params), + action.url); + + var promise = $http(httpConfig).then(function(response) { + var data = response.data, + promise = value.$promise; + + if (data) { + // Need to convert action.isArray to boolean in case it is undefined + // jshint -W018 + if (angular.isArray(data) !== (!!action.isArray)) { + throw $resourceMinErr('badcfg', + 'Error in resource configuration for action `{0}`. Expected response to ' + + 'contain an {1} but got an {2} (Request: {3} {4})', name, action.isArray ? 'array' : 'object', + angular.isArray(data) ? 'array' : 'object', httpConfig.method, httpConfig.url); + } + // jshint +W018 + if (action.isArray) { + value.length = 0; + forEach(data, function(item) { + if (typeof item === "object") { + value.push(new Resource(item)); + } else { + // Valid JSON values may be string literals, and these should not be converted + // into objects. These items will not have access to the Resource prototype + // methods, but unfortunately there + value.push(item); + } + }); + } else { + shallowClearAndCopy(data, value); + value.$promise = promise; + } + } + + value.$resolved = true; + + response.resource = value; + + return response; + }, function(response) { + value.$resolved = true; + + (error || noop)(response); + + return $q.reject(response); + }); + + promise = promise.then( + function(response) { + var value = responseInterceptor(response); + (success || noop)(value, response.headers); + return value; + }, + responseErrorInterceptor); + + if (!isInstanceCall) { + // we are creating instance / collection + // - set the initial promise + // - return the instance / collection + value.$promise = promise; + value.$resolved = false; + + return value; + } + + // instance call + return promise; + }; + + + Resource.prototype['$' + name] = function(params, success, error) { + if (isFunction(params)) { + error = success; success = params; params = {}; + } + var result = Resource[name].call(this, params, this, success, error); + return result.$promise || result; + }; + }); + + Resource.bind = function(additionalParamDefaults) { + return resourceFactory(url, extend({}, paramDefaults, additionalParamDefaults), actions); + }; + + return Resource; + } + + return resourceFactory; + }]; + }); + + +})(window, window.angular); diff --git a/awx/ui/client/lib/angular-resource/angular-resource.min.js b/awx/ui/client/lib/angular-resource/angular-resource.min.js new file mode 100644 index 0000000000..0798117909 --- /dev/null +++ b/awx/ui/client/lib/angular-resource/angular-resource.min.js @@ -0,0 +1,13 @@ +/* + AngularJS v1.4.3 + (c) 2010-2015 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(I,d,B){'use strict';function D(f,q){q=q||{};d.forEach(q,function(d,h){delete q[h]});for(var h in f)!f.hasOwnProperty(h)||"$"===h.charAt(0)&&"$"===h.charAt(1)||(q[h]=f[h]);return q}var x=d.$$minErr("$resource"),C=/^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/;d.module("ngResource",["ng"]).provider("$resource",function(){var f=this;this.defaults={stripTrailingSlashes:!0,actions:{get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}}}; +this.$get=["$http","$q",function(q,h){function u(d,g){this.template=d;this.defaults=s({},f.defaults,g);this.urlParams={}}function w(y,g,l,m){function c(b,k){var c={};k=s({},g,k);r(k,function(a,k){v(a)&&(a=a());var d;if(a&&a.charAt&&"@"==a.charAt(0)){d=b;var e=a.substr(1);if(null==e||""===e||"hasOwnProperty"===e||!C.test("."+e))throw x("badmember",e);for(var e=e.split("."),n=0,g=e.length;n", + "license": "MIT", + "bugs": { + "url": "https://github.com/angular/angular.js/issues" + }, + "homepage": "http://angularjs.org" +} diff --git a/awx/ui/static/lib/angular-route/.bower.json b/awx/ui/client/lib/angular-route/.bower.json similarity index 53% rename from awx/ui/static/lib/angular-route/.bower.json rename to awx/ui/client/lib/angular-route/.bower.json index 0bbf9e0f57..a72f087190 100644 --- a/awx/ui/static/lib/angular-route/.bower.json +++ b/awx/ui/client/lib/angular-route/.bower.json @@ -1,19 +1,19 @@ { "name": "angular-route", - "version": "1.2.23", + "version": "1.4.3", "main": "./angular-route.js", + "ignore": [], "dependencies": { - "angular": "1.2.23" + "angular": "1.4.3" }, "homepage": "https://github.com/angular/bower-angular-route", - "_release": "1.2.23", + "_release": "1.4.3", "_resolution": { "type": "version", - "tag": "v1.2.23", - "commit": "7114d7a47958b9fe700269497db040ea49909192" + "tag": "v1.4.3", + "commit": "6d34da91a291260d1826c42f163ac21d094cc0fc" }, "_source": "git://github.com/angular/bower-angular-route.git", - "_target": "~1.2.23", - "_originalSource": "angular-route", - "_direct": true + "_target": "~1.4.3", + "_originalSource": "angular-route" } \ No newline at end of file diff --git a/awx/ui/static/lib/angular-route/README.md b/awx/ui/client/lib/angular-route/README.md similarity index 76% rename from awx/ui/static/lib/angular-route/README.md rename to awx/ui/client/lib/angular-route/README.md index 49f55fc0d3..2cd4f9091d 100644 --- a/awx/ui/static/lib/angular-route/README.md +++ b/awx/ui/client/lib/angular-route/README.md @@ -1,12 +1,26 @@ -# bower-angular-route +# packaged angular-route -This repo is for distribution on `bower`. The source for this module is in the +This repo is for distribution on `npm` and `bower`. The source for this module is in the [main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngRoute). Please file issues and pull requests against that repo. ## Install -Install with `bower`: +You can install this package either with `npm` or with `bower`. + +### npm + +```shell +npm install angular-route +``` + +Then add `ngRoute` as a dependency for your app: + +```javascript +angular.module('myApp', [require('angular-route')]); +``` + +### bower ```shell bower install angular-route @@ -18,7 +32,7 @@ Add a ` ``` -And add `ngRoute` as a dependency for your app: +Then add `ngRoute` as a dependency for your app: ```javascript angular.module('myApp', ['ngRoute']); @@ -33,7 +47,7 @@ Documentation is available on the The MIT License -Copyright (c) 2010-2012 Google, Inc. http://angularjs.org +Copyright (c) 2010-2015 Google, Inc. http://angularjs.org Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/awx/ui/static/lib/angular-route/angular-route.js b/awx/ui/client/lib/angular-route/angular-route.js similarity index 81% rename from awx/ui/static/lib/angular-route/angular-route.js rename to awx/ui/client/lib/angular-route/angular-route.js index 7b97555b8b..40536ad26c 100644 --- a/awx/ui/static/lib/angular-route/angular-route.js +++ b/awx/ui/client/lib/angular-route/angular-route.js @@ -1,6 +1,6 @@ /** - * @license AngularJS v1.2.23 - * (c) 2010-2014 Google, Inc. http://angularjs.org + * @license AngularJS v1.4.3 + * (c) 2010-2015 Google, Inc. http://angularjs.org * License: MIT */ (function(window, angular, undefined) {'use strict'; @@ -22,12 +22,12 @@ */ /* global -ngRouteModule */ var ngRouteModule = angular.module('ngRoute', ['ng']). - provider('$route', $RouteProvider); + provider('$route', $RouteProvider), + $routeMinErr = angular.$$minErr('ngRoute'); /** * @ngdoc provider * @name $routeProvider - * @kind function * * @description * @@ -39,9 +39,9 @@ var ngRouteModule = angular.module('ngRoute', ['ng']). * ## Dependencies * Requires the {@link ngRoute `ngRoute`} module to be installed. */ -function $RouteProvider(){ +function $RouteProvider() { function inherit(parent, extra) { - return angular.extend(new (angular.extend(function() {}, {prototype:parent}))(), extra); + return angular.extend(Object.create(parent), extra); } var routes = {}; @@ -78,8 +78,8 @@ function $RouteProvider(){ * - `controller` – `{(string|function()=}` – Controller fn that should be associated with * newly created scope or the name of a {@link angular.Module#controller registered * controller} if passed as a string. - * - `controllerAs` – `{string=}` – A controller alias name. If present the controller will be - * published to scope under the `controllerAs` name. + * - `controllerAs` – `{string=}` – An identifier name for a reference to the controller. + * If present, the controller will be published to scope under the `controllerAs` name. * - `template` – `{string=|function()=}` – html template as a string or a function that * returns an html template as a string which should be used by {@link * ngRoute.directive:ngView ngView} or {@link ng.directive:ngInclude ngInclude} directives. @@ -146,27 +146,45 @@ function $RouteProvider(){ * Adds a new route definition to the `$route` service. */ this.when = function(path, route) { + //copy original route object to preserve params inherited from proto chain + var routeCopy = angular.copy(route); + if (angular.isUndefined(routeCopy.reloadOnSearch)) { + routeCopy.reloadOnSearch = true; + } + if (angular.isUndefined(routeCopy.caseInsensitiveMatch)) { + routeCopy.caseInsensitiveMatch = this.caseInsensitiveMatch; + } routes[path] = angular.extend( - {reloadOnSearch: true}, - route, - path && pathRegExp(path, route) + routeCopy, + path && pathRegExp(path, routeCopy) ); // create redirection for trailing slashes if (path) { - var redirectPath = (path[path.length-1] == '/') - ? path.substr(0, path.length-1) - : path +'/'; + var redirectPath = (path[path.length - 1] == '/') + ? path.substr(0, path.length - 1) + : path + '/'; routes[redirectPath] = angular.extend( {redirectTo: path}, - pathRegExp(redirectPath, route) + pathRegExp(redirectPath, routeCopy) ); } return this; }; + /** + * @ngdoc property + * @name $routeProvider#caseInsensitiveMatch + * @description + * + * A boolean property indicating if routes defined + * using this provider should be matched using a case insensitive + * algorithm. Defaults to `false`. + */ + this.caseInsensitiveMatch = false; + /** * @param path {string} path * @param opts {Object} options @@ -188,7 +206,7 @@ function $RouteProvider(){ path = path .replace(/([().])/g, '\\$1') - .replace(/(\/)?:(\w+)([\?\*])?/g, function(_, slash, key, option){ + .replace(/(\/)?:(\w+)([\?\*])?/g, function(_, slash, key, option) { var optional = option === '?' ? option : null; var star = option === '*' ? option : null; keys.push({ name: key, optional: !!optional }); @@ -216,10 +234,14 @@ function $RouteProvider(){ * Sets route definition that will be used on route change when no other route definition * is matched. * - * @param {Object} params Mapping information to be assigned to `$route.current`. + * @param {Object|string} params Mapping information to be assigned to `$route.current`. + * If called with a string, the value maps to `redirectTo`. * @returns {Object} self */ this.otherwise = function(params) { + if (typeof params === 'string') { + params = {redirectTo: params}; + } this.when(null, params); return this; }; @@ -230,10 +252,9 @@ function $RouteProvider(){ '$routeParams', '$q', '$injector', - '$http', - '$templateCache', + '$templateRequest', '$sce', - function($rootScope, $location, $routeParams, $q, $injector, $http, $templateCache, $sce) { + function($rootScope, $location, $routeParams, $q, $injector, $templateRequest, $sce) { /** * @ngdoc service @@ -270,9 +291,6 @@ function $RouteProvider(){ * This example shows how changing the URL hash causes the `$route` to match a route against the * URL, and the `ngView` pulls in the partial. * - * Note that this example is using {@link ng.directive:script inlined templates} - * to get it working on jsfiddle as well. - * * * @@ -380,6 +398,10 @@ function $RouteProvider(){ * defined in `resolve` route property. Once all of the dependencies are resolved * `$routeChangeSuccess` is fired. * + * The route change (and the `$location` change that triggered it) can be prevented + * by calling `preventDefault` method of the event. See {@link ng.$rootScope.Scope#$on} + * for more details about event object. + * * @param {Object} angularEvent Synthetic event object. * @param {Route} next Future route information. * @param {Route} current Current route information. @@ -390,7 +412,9 @@ function $RouteProvider(){ * @name $route#$routeChangeSuccess * @eventType broadcast on root scope * @description - * Broadcasted after a route dependencies are resolved. + * Broadcasted after a route change has happened successfully. + * The `resolve` dependencies are now available in the `current.locals` property. + * * {@link ngRoute.directive:ngView ngView} listens for the directive * to instantiate the controller and render the view. * @@ -418,12 +442,16 @@ function $RouteProvider(){ * @name $route#$routeUpdate * @eventType broadcast on root scope * @description - * * The `reloadOnSearch` property has been set to false, and we are reusing the same * instance of the Controller. + * + * @param {Object} angularEvent Synthetic event object + * @param {Route} current Current/previous route information. */ var forceReload = false, + preparedRoute, + preparedRouteIsUpdateOnly, $route = { routes: routes, @@ -436,15 +464,44 @@ function $RouteProvider(){ * {@link ng.$location $location} hasn't changed. * * As a result of that, {@link ngRoute.directive:ngView ngView} - * creates new scope, reinstantiates the controller. + * creates new scope and reinstantiates the controller. */ reload: function() { forceReload = true; - $rootScope.$evalAsync(updateRoute); + $rootScope.$evalAsync(function() { + // Don't support cancellation of a reload for now... + prepareRoute(); + commitRoute(); + }); + }, + + /** + * @ngdoc method + * @name $route#updateParams + * + * @description + * Causes `$route` service to update the current URL, replacing + * current route parameters with those specified in `newParams`. + * Provided property names that match the route's path segment + * definitions will be interpolated into the location's path, while + * remaining properties will be treated as query params. + * + * @param {!Object} newParams mapping of URL parameter names to values + */ + updateParams: function(newParams) { + if (this.current && this.current.$$route) { + newParams = angular.extend({}, this.current.params, newParams); + $location.path(interpolate(this.current.$$route.originalPath, newParams)); + // interpolate modifies newParams, only query params are left + $location.search(newParams); + } else { + throw $routeMinErr('norout', 'Tried updating route when with no current route'); + } } }; - $rootScope.$on('$locationChangeSuccess', updateRoute); + $rootScope.$on('$locationChangeStart', prepareRoute); + $rootScope.$on('$locationChangeSuccess', commitRoute); return $route; @@ -482,56 +539,68 @@ function $RouteProvider(){ return params; } - function updateRoute() { - var next = parseRoute(), - last = $route.current; + function prepareRoute($locationEvent) { + var lastRoute = $route.current; - if (next && last && next.$$route === last.$$route - && angular.equals(next.pathParams, last.pathParams) - && !next.reloadOnSearch && !forceReload) { - last.params = next.params; - angular.copy(last.params, $routeParams); - $rootScope.$broadcast('$routeUpdate', last); - } else if (next || last) { + preparedRoute = parseRoute(); + preparedRouteIsUpdateOnly = preparedRoute && lastRoute && preparedRoute.$$route === lastRoute.$$route + && angular.equals(preparedRoute.pathParams, lastRoute.pathParams) + && !preparedRoute.reloadOnSearch && !forceReload; + + if (!preparedRouteIsUpdateOnly && (lastRoute || preparedRoute)) { + if ($rootScope.$broadcast('$routeChangeStart', preparedRoute, lastRoute).defaultPrevented) { + if ($locationEvent) { + $locationEvent.preventDefault(); + } + } + } + } + + function commitRoute() { + var lastRoute = $route.current; + var nextRoute = preparedRoute; + + if (preparedRouteIsUpdateOnly) { + lastRoute.params = nextRoute.params; + angular.copy(lastRoute.params, $routeParams); + $rootScope.$broadcast('$routeUpdate', lastRoute); + } else if (nextRoute || lastRoute) { forceReload = false; - $rootScope.$broadcast('$routeChangeStart', next, last); - $route.current = next; - if (next) { - if (next.redirectTo) { - if (angular.isString(next.redirectTo)) { - $location.path(interpolate(next.redirectTo, next.params)).search(next.params) + $route.current = nextRoute; + if (nextRoute) { + if (nextRoute.redirectTo) { + if (angular.isString(nextRoute.redirectTo)) { + $location.path(interpolate(nextRoute.redirectTo, nextRoute.params)).search(nextRoute.params) .replace(); } else { - $location.url(next.redirectTo(next.pathParams, $location.path(), $location.search())) + $location.url(nextRoute.redirectTo(nextRoute.pathParams, $location.path(), $location.search())) .replace(); } } } - $q.when(next). + $q.when(nextRoute). then(function() { - if (next) { - var locals = angular.extend({}, next.resolve), + if (nextRoute) { + var locals = angular.extend({}, nextRoute.resolve), template, templateUrl; angular.forEach(locals, function(value, key) { locals[key] = angular.isString(value) ? - $injector.get(value) : $injector.invoke(value); + $injector.get(value) : $injector.invoke(value, null, null, key); }); - if (angular.isDefined(template = next.template)) { + if (angular.isDefined(template = nextRoute.template)) { if (angular.isFunction(template)) { - template = template(next.params); + template = template(nextRoute.params); } - } else if (angular.isDefined(templateUrl = next.templateUrl)) { + } else if (angular.isDefined(templateUrl = nextRoute.templateUrl)) { if (angular.isFunction(templateUrl)) { - templateUrl = templateUrl(next.params); + templateUrl = templateUrl(nextRoute.params); } - templateUrl = $sce.getTrustedResourceUrl(templateUrl); if (angular.isDefined(templateUrl)) { - next.loadedTemplateUrl = templateUrl; - template = $http.get(templateUrl, {cache: $templateCache}). - then(function(response) { return response.data; }); + nextRoute.loadedTemplateUrl = $sce.valueOf(templateUrl); + template = $templateRequest(templateUrl); } } if (angular.isDefined(template)) { @@ -540,18 +609,18 @@ function $RouteProvider(){ return $q.all(locals); } }). - // after route change then(function(locals) { - if (next == $route.current) { - if (next) { - next.locals = locals; - angular.copy(next.params, $routeParams); + // after route change + if (nextRoute == $route.current) { + if (nextRoute) { + nextRoute.locals = locals; + angular.copy(nextRoute.params, $routeParams); } - $rootScope.$broadcast('$routeChangeSuccess', next, last); + $rootScope.$broadcast('$routeChangeSuccess', nextRoute, lastRoute); } }, function(error) { - if (next == $route.current) { - $rootScope.$broadcast('$routeChangeError', next, last, error); + if (nextRoute == $route.current) { + $rootScope.$broadcast('$routeChangeError', nextRoute, lastRoute, error); } }); } @@ -581,11 +650,11 @@ function $RouteProvider(){ */ function interpolate(string, params) { var result = []; - angular.forEach((string||'').split(':'), function(segment, i) { + angular.forEach((string || '').split(':'), function(segment, i) { if (i === 0) { result.push(segment); } else { - var segmentMatch = segment.match(/(\w+)(.*)/); + var segmentMatch = segment.match(/(\w+)(?:[?*])?(.*)/); var key = segmentMatch[1]; result.push(params[key]); result.push(segmentMatch[2] || ''); @@ -693,7 +762,6 @@ ngRouteModule.directive('ngView', ngViewFillContentFactory);
$location.path() = {{main.$location.path()}}
$route.current.templateUrl = {{main.$route.current.templateUrl}}
$route.current.params = {{main.$route.current.params}}
-
$route.current.scope.name = {{main.$route.current.scope.name}}
$routeParams = {{main.$routeParams}}
@@ -717,7 +785,6 @@ ngRouteModule.directive('ngView', ngViewFillContentFactory); .view-animate-container { position:relative; height:100px!important; - position:relative; background:white; border:1px solid black; height:40px; @@ -771,7 +838,6 @@ ngRouteModule.directive('ngView', ngViewFillContentFactory); controllerAs: 'chapter' }); - // configure html5 to get links working on jsfiddle $locationProvider.html5Mode(true); }]) .controller('MainCtrl', ['$route', '$routeParams', '$location', @@ -818,7 +884,7 @@ ngRouteModule.directive('ngView', ngViewFillContentFactory); * Emitted every time the ngView content is reloaded. */ ngViewFactory.$inject = ['$route', '$anchorScroll', '$animate']; -function ngViewFactory( $route, $anchorScroll, $animate) { +function ngViewFactory($route, $anchorScroll, $animate) { return { restrict: 'ECA', terminal: true, @@ -827,7 +893,7 @@ function ngViewFactory( $route, $anchorScroll, $animate) { link: function(scope, $element, attr, ctrl, $transclude) { var currentScope, currentElement, - previousElement, + previousLeaveAnimation, autoScrollExp = attr.autoscroll, onloadExp = attr.onload || ''; @@ -835,19 +901,20 @@ function ngViewFactory( $route, $anchorScroll, $animate) { update(); function cleanupLastView() { - if(previousElement) { - previousElement.remove(); - previousElement = null; + if (previousLeaveAnimation) { + $animate.cancel(previousLeaveAnimation); + previousLeaveAnimation = null; } - if(currentScope) { + + if (currentScope) { currentScope.$destroy(); currentScope = null; } - if(currentElement) { - $animate.leave(currentElement, function() { - previousElement = null; + if (currentElement) { + previousLeaveAnimation = $animate.leave(currentElement); + previousLeaveAnimation.then(function() { + previousLeaveAnimation = null; }); - previousElement = currentElement; currentElement = null; } } @@ -867,7 +934,7 @@ function ngViewFactory( $route, $anchorScroll, $animate) { // function is called before linking the content, which would apply child // directives to non existing elements. var clone = $transclude(newScope, function(clone) { - $animate.enter(clone, null, currentElement || $element, function onNgViewEnter () { + $animate.enter(clone, null, currentElement || $element).then(function onNgViewEnter() { if (angular.isDefined(autoScrollExp) && (!autoScrollExp || scope.$eval(autoScrollExp))) { $anchorScroll(); diff --git a/awx/ui/client/lib/angular-route/angular-route.min.js b/awx/ui/client/lib/angular-route/angular-route.min.js new file mode 100644 index 0000000000..4634fdbf91 --- /dev/null +++ b/awx/ui/client/lib/angular-route/angular-route.min.js @@ -0,0 +1,15 @@ +/* + AngularJS v1.4.3 + (c) 2010-2015 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(p,c,C){'use strict';function v(r,h,g){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(a,f,b,d,y){function z(){k&&(g.cancel(k),k=null);l&&(l.$destroy(),l=null);m&&(k=g.leave(m),k.then(function(){k=null}),m=null)}function x(){var b=r.current&&r.current.locals;if(c.isDefined(b&&b.$template)){var b=a.$new(),d=r.current;m=y(b,function(b){g.enter(b,null,m||f).then(function(){!c.isDefined(t)||t&&!a.$eval(t)||h()});z()});l=d.scope=b;l.$emit("$viewContentLoaded"); +l.$eval(w)}else z()}var l,m,k,t=b.autoscroll,w=b.onload||"";a.$on("$routeChangeSuccess",x);x()}}}function A(c,h,g){return{restrict:"ECA",priority:-400,link:function(a,f){var b=g.current,d=b.locals;f.html(d.$template);var y=c(f.contents());b.controller&&(d.$scope=a,d=h(b.controller,d),b.controllerAs&&(a[b.controllerAs]=d),f.data("$ngControllerController",d),f.children().data("$ngControllerController",d));y(a)}}}p=c.module("ngRoute",["ng"]).provider("$route",function(){function r(a,f){return c.extend(Object.create(a), +f)}function h(a,c){var b=c.caseInsensitiveMatch,d={originalPath:a,regexp:a},g=d.keys=[];a=a.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)([\?\*])?/g,function(a,c,b,d){a="?"===d?d:null;d="*"===d?d:null;g.push({name:b,optional:!!a});c=c||"";return""+(a?"":c)+"(?:"+(a?c:"")+(d&&"(.+?)"||"([^/]+)")+(a||"")+")"+(a||"")}).replace(/([\/$\*])/g,"\\$1");d.regexp=new RegExp("^"+a+"$",b?"i":"");return d}var g={};this.when=function(a,f){var b=c.copy(f);c.isUndefined(b.reloadOnSearch)&&(b.reloadOnSearch=!0); +c.isUndefined(b.caseInsensitiveMatch)&&(b.caseInsensitiveMatch=this.caseInsensitiveMatch);g[a]=c.extend(b,a&&h(a,b));if(a){var d="/"==a[a.length-1]?a.substr(0,a.length-1):a+"/";g[d]=c.extend({redirectTo:a},h(d,b))}return this};this.caseInsensitiveMatch=!1;this.otherwise=function(a){"string"===typeof a&&(a={redirectTo:a});this.when(null,a);return this};this.$get=["$rootScope","$location","$routeParams","$q","$injector","$templateRequest","$sce",function(a,f,b,d,h,p,x){function l(b){var e=s.current; +(v=(n=k())&&e&&n.$$route===e.$$route&&c.equals(n.pathParams,e.pathParams)&&!n.reloadOnSearch&&!w)||!e&&!n||a.$broadcast("$routeChangeStart",n,e).defaultPrevented&&b&&b.preventDefault()}function m(){var u=s.current,e=n;if(v)u.params=e.params,c.copy(u.params,b),a.$broadcast("$routeUpdate",u);else if(e||u)w=!1,(s.current=e)&&e.redirectTo&&(c.isString(e.redirectTo)?f.path(t(e.redirectTo,e.params)).search(e.params).replace():f.url(e.redirectTo(e.pathParams,f.path(),f.search())).replace()),d.when(e).then(function(){if(e){var a= +c.extend({},e.resolve),b,f;c.forEach(a,function(b,e){a[e]=c.isString(b)?h.get(b):h.invoke(b,null,null,e)});c.isDefined(b=e.template)?c.isFunction(b)&&(b=b(e.params)):c.isDefined(f=e.templateUrl)&&(c.isFunction(f)&&(f=f(e.params)),c.isDefined(f)&&(e.loadedTemplateUrl=x.valueOf(f),b=p(f)));c.isDefined(b)&&(a.$template=b);return d.all(a)}}).then(function(f){e==s.current&&(e&&(e.locals=f,c.copy(e.params,b)),a.$broadcast("$routeChangeSuccess",e,u))},function(b){e==s.current&&a.$broadcast("$routeChangeError", +e,u,b)})}function k(){var a,b;c.forEach(g,function(d,g){var q;if(q=!b){var h=f.path();q=d.keys;var l={};if(d.regexp)if(h=d.regexp.exec(h)){for(var k=1,m=h.length;k", + "license": "MIT", + "bugs": { + "url": "https://github.com/angular/angular.js/issues" + }, + "homepage": "http://angularjs.org" +} diff --git a/awx/ui/static/lib/angular-sanitize/.bower.json b/awx/ui/client/lib/angular-sanitize/.bower.json similarity index 54% rename from awx/ui/static/lib/angular-sanitize/.bower.json rename to awx/ui/client/lib/angular-sanitize/.bower.json index 28fa11b724..e1e61e612f 100644 --- a/awx/ui/static/lib/angular-sanitize/.bower.json +++ b/awx/ui/client/lib/angular-sanitize/.bower.json @@ -1,19 +1,19 @@ { "name": "angular-sanitize", - "version": "1.2.23", + "version": "1.4.3", "main": "./angular-sanitize.js", + "ignore": [], "dependencies": { - "angular": "1.2.23" + "angular": "1.4.3" }, "homepage": "https://github.com/angular/bower-angular-sanitize", - "_release": "1.2.23", + "_release": "1.4.3", "_resolution": { "type": "version", - "tag": "v1.2.23", - "commit": "c64ed360a0ee54d4f56da6ab84904478c2423628" + "tag": "v1.4.3", + "commit": "0367ee4c3f9cb8af5d1da9ec35b71a8b523d9fc0" }, "_source": "git://github.com/angular/bower-angular-sanitize.git", - "_target": "~1.2.23", - "_originalSource": "angular-sanitize", - "_direct": true + "_target": "~1.4.3", + "_originalSource": "angular-sanitize" } \ No newline at end of file diff --git a/awx/ui/static/lib/angular-sanitize/README.md b/awx/ui/client/lib/angular-sanitize/README.md similarity index 76% rename from awx/ui/static/lib/angular-sanitize/README.md rename to awx/ui/client/lib/angular-sanitize/README.md index 585a235ede..b84aaf6dbf 100644 --- a/awx/ui/static/lib/angular-sanitize/README.md +++ b/awx/ui/client/lib/angular-sanitize/README.md @@ -1,12 +1,26 @@ -# bower-angular-sanitize +# packaged angular-sanitize -This repo is for distribution on `bower`. The source for this module is in the +This repo is for distribution on `npm` and `bower`. The source for this module is in the [main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngSanitize). Please file issues and pull requests against that repo. ## Install -Install with `bower`: +You can install this package either with `npm` or with `bower`. + +### npm + +```shell +npm install angular-sanitize +``` + +Then add `ngSanitize` as a dependency for your app: + +```javascript +angular.module('myApp', [require('angular-sanitize')]); +``` + +### bower ```shell bower install angular-sanitize @@ -18,7 +32,7 @@ Add a ` ``` -And add `ngSanitize` as a dependency for your app: +Then add `ngSanitize` as a dependency for your app: ```javascript angular.module('myApp', ['ngSanitize']); @@ -33,7 +47,7 @@ Documentation is available on the The MIT License -Copyright (c) 2010-2012 Google, Inc. http://angularjs.org +Copyright (c) 2010-2015 Google, Inc. http://angularjs.org Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/awx/ui/static/lib/angular-sanitize/angular-sanitize.js b/awx/ui/client/lib/angular-sanitize/angular-sanitize.js similarity index 70% rename from awx/ui/static/lib/angular-sanitize/angular-sanitize.js rename to awx/ui/client/lib/angular-sanitize/angular-sanitize.js index 87489d9963..bebe1a72ab 100644 --- a/awx/ui/static/lib/angular-sanitize/angular-sanitize.js +++ b/awx/ui/client/lib/angular-sanitize/angular-sanitize.js @@ -1,10 +1,21 @@ /** - * @license AngularJS v1.2.23 - * (c) 2010-2014 Google, Inc. http://angularjs.org + * @license AngularJS v1.4.3 + * (c) 2010-2015 Google, Inc. http://angularjs.org * License: MIT */ (function(window, angular, undefined) {'use strict'; +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Any commits to this file should be reviewed with security in mind. * + * Changes to this file can potentially create security vulnerabilities. * + * An approval from 2 Core members with history of modifying * + * this file is required. * + * * + * Does the change somehow allow for arbitrary javascript to be executed? * + * Or allows for someone to change the prototype of built-in objects? * + * Or gives undesired access to variables likes document or window? * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + var $sanitizeMinErr = angular.$$minErr('$sanitize'); /** @@ -45,16 +56,16 @@ var $sanitizeMinErr = angular.$$minErr('$sanitize'); * @kind function * * @description - * The input is sanitized by parsing the html into tokens. All safe tokens (from a whitelist) are + * The input is sanitized by parsing the HTML into tokens. All safe tokens (from a whitelist) are * then serialized back to properly escaped html string. This means that no unsafe input can make * it into the returned string, however, since our parser is more strict than a typical browser * parser, it's possible that some obscure input, which would be recognized as valid HTML by a - * browser, won't make it through the sanitizer. + * browser, won't make it through the sanitizer. The input may also contain SVG markup. * The whitelist is configured using the functions `aHrefSanitizationWhitelist` and * `imgSrcSanitizationWhitelist` of {@link ng.$compileProvider `$compileProvider`}. * - * @param {string} html Html input. - * @returns {string} Sanitized html. + * @param {string} html HTML input. + * @returns {string} Sanitized HTML. * * @example @@ -198,6 +209,13 @@ var inlineElements = angular.extend({}, optionalEndTagInlineElements, makeMap("a "bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s," + "samp,small,span,strike,strong,sub,sup,time,tt,u,var")); +// SVG Elements +// https://wiki.whatwg.org/wiki/Sanitization_rules#svg_Elements +// Note: the elements animate,animateColor,animateMotion,animateTransform,set are intentionally omitted. +// They can potentially allow for arbitrary javascript to be executed. See #11290 +var svgElements = makeMap("circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph," + + "hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline," + + "radialGradient,rect,stop,svg,switch,text,title,tspan,use"); // Special Elements (can contain anything) var specialElements = makeMap("script,style"); @@ -206,20 +224,46 @@ var validElements = angular.extend({}, voidElements, blockElements, inlineElements, - optionalEndTagElements); + optionalEndTagElements, + svgElements); //Attributes that have href and hence need to be sanitized -var uriAttrs = makeMap("background,cite,href,longdesc,src,usemap"); -var validAttrs = angular.extend({}, uriAttrs, makeMap( - 'abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,'+ - 'color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,'+ - 'ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,'+ - 'scope,scrolling,shape,size,span,start,summary,target,title,type,'+ - 'valign,value,vspace,width')); +var uriAttrs = makeMap("background,cite,href,longdesc,src,usemap,xlink:href"); -function makeMap(str) { +var htmlAttrs = makeMap('abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,' + + 'color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,' + + 'ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,' + + 'scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,' + + 'valign,value,vspace,width'); + +// SVG attributes (without "id" and "name" attributes) +// https://wiki.whatwg.org/wiki/Sanitization_rules#svg_Attributes +var svgAttrs = makeMap('accent-height,accumulate,additive,alphabetic,arabic-form,ascent,' + + 'baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,' + + 'cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,' + + 'font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,' + + 'height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,' + + 'marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,' + + 'max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,' + + 'path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,' + + 'requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,' + + 'stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,' + + 'stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,' + + 'stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,' + + 'underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,' + + 'width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,' + + 'xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan', true); + +var validAttrs = angular.extend({}, + uriAttrs, + svgAttrs, + htmlAttrs); + +function makeMap(str, lowercaseKeys) { var obj = {}, items = str.split(','), i; - for (i = 0; i < items.length; i++) obj[items[i]] = true; + for (i = 0; i < items.length; i++) { + obj[lowercaseKeys ? angular.lowercase(items[i]) : items[i]] = true; + } return obj; } @@ -236,7 +280,7 @@ function makeMap(str) { * @param {string} html string * @param {object} handler */ -function htmlParser( html, handler ) { +function htmlParser(html, handler) { if (typeof html !== 'string') { if (html === null || typeof html === 'undefined') { html = ''; @@ -245,52 +289,52 @@ function htmlParser( html, handler ) { } } var index, chars, match, stack = [], last = html, text; - stack.last = function() { return stack[ stack.length - 1 ]; }; + stack.last = function() { return stack[stack.length - 1]; }; - while ( html ) { + while (html) { text = ''; chars = true; // Make sure we're not in a script or style element - if ( !stack.last() || !specialElements[ stack.last() ] ) { + if (!stack.last() || !specialElements[stack.last()]) { // Comment - if ( html.indexOf("", index) === index) { - if (handler.comment) handler.comment( html.substring( 4, index ) ); - html = html.substring( index + 3 ); + if (index >= 0 && html.lastIndexOf("-->", index) === index) { + if (handler.comment) handler.comment(html.substring(4, index)); + html = html.substring(index + 3); chars = false; } // DOCTYPE - } else if ( DOCTYPE_REGEXP.test(html) ) { - match = html.match( DOCTYPE_REGEXP ); + } else if (DOCTYPE_REGEXP.test(html)) { + match = html.match(DOCTYPE_REGEXP); - if ( match ) { - html = html.replace( match[0], ''); + if (match) { + html = html.replace(match[0], ''); chars = false; } // end tag - } else if ( BEGING_END_TAGE_REGEXP.test(html) ) { - match = html.match( END_TAG_REGEXP ); + } else if (BEGING_END_TAGE_REGEXP.test(html)) { + match = html.match(END_TAG_REGEXP); - if ( match ) { - html = html.substring( match[0].length ); - match[0].replace( END_TAG_REGEXP, parseEndTag ); + if (match) { + html = html.substring(match[0].length); + match[0].replace(END_TAG_REGEXP, parseEndTag); chars = false; } // start tag - } else if ( BEGIN_TAG_REGEXP.test(html) ) { - match = html.match( START_TAG_REGEXP ); + } else if (BEGIN_TAG_REGEXP.test(html)) { + match = html.match(START_TAG_REGEXP); - if ( match ) { + if (match) { // We only have a valid start-tag if there is a '>'. - if ( match[4] ) { - html = html.substring( match[0].length ); - match[0].replace( START_TAG_REGEXP, parseStartTag ); + if (match[4]) { + html = html.substring(match[0].length); + match[0].replace(START_TAG_REGEXP, parseStartTag); } chars = false; } else { @@ -300,29 +344,30 @@ function htmlParser( html, handler ) { } } - if ( chars ) { + if (chars) { index = html.indexOf("<"); - text += index < 0 ? html : html.substring( 0, index ); - html = index < 0 ? "" : html.substring( index ); + text += index < 0 ? html : html.substring(0, index); + html = index < 0 ? "" : html.substring(index); - if (handler.chars) handler.chars( decodeEntities(text) ); + if (handler.chars) handler.chars(decodeEntities(text)); } } else { - html = html.replace(new RegExp("(.*)<\\s*\\/\\s*" + stack.last() + "[^>]*>", 'i'), - function(all, text){ + // IE versions 9 and 10 do not understand the regex '[^]', so using a workaround with [\W\w]. + html = html.replace(new RegExp("([\\W\\w]*)<\\s*\\/\\s*" + stack.last() + "[^>]*>", 'i'), + function(all, text) { text = text.replace(COMMENT_REGEXP, "$1").replace(CDATA_REGEXP, "$1"); - if (handler.chars) handler.chars( decodeEntities(text) ); + if (handler.chars) handler.chars(decodeEntities(text)); return ""; }); - parseEndTag( "", stack.last() ); + parseEndTag("", stack.last()); } - if ( html == last ) { + if (html == last) { throw $sanitizeMinErr('badparse', "The sanitizer was unable to parse the following block " + "of html: {0}", html); } @@ -332,22 +377,23 @@ function htmlParser( html, handler ) { // Clean up any remaining tags parseEndTag(); - function parseStartTag( tag, tagName, rest, unary ) { + function parseStartTag(tag, tagName, rest, unary) { tagName = angular.lowercase(tagName); - if ( blockElements[ tagName ] ) { - while ( stack.last() && inlineElements[ stack.last() ] ) { - parseEndTag( "", stack.last() ); + if (blockElements[tagName]) { + while (stack.last() && inlineElements[stack.last()]) { + parseEndTag("", stack.last()); } } - if ( optionalEndTagElements[ tagName ] && stack.last() == tagName ) { - parseEndTag( "", tagName ); + if (optionalEndTagElements[tagName] && stack.last() == tagName) { + parseEndTag("", tagName); } - unary = voidElements[ tagName ] || !!unary; + unary = voidElements[tagName] || !!unary; - if ( !unary ) - stack.push( tagName ); + if (!unary) { + stack.push(tagName); + } var attrs = {}; @@ -360,22 +406,23 @@ function htmlParser( html, handler ) { attrs[name] = decodeEntities(value); }); - if (handler.start) handler.start( tagName, attrs, unary ); + if (handler.start) handler.start(tagName, attrs, unary); } - function parseEndTag( tag, tagName ) { + function parseEndTag(tag, tagName) { var pos = 0, i; tagName = angular.lowercase(tagName); - if ( tagName ) + if (tagName) { // Find the closest opened tag of the same type - for ( pos = stack.length - 1; pos >= 0; pos-- ) - if ( stack[ pos ] == tagName ) - break; + for (pos = stack.length - 1; pos >= 0; pos--) { + if (stack[pos] == tagName) break; + } + } - if ( pos >= 0 ) { + if (pos >= 0) { // Close all the open elements, up the stack - for ( i = stack.length - 1; i >= pos; i-- ) - if (handler.end) handler.end( stack[ i ] ); + for (i = stack.length - 1; i >= pos; i--) + if (handler.end) handler.end(stack[i]); // Remove the open elements from the stack stack.length = pos; @@ -384,7 +431,6 @@ function htmlParser( html, handler ) { } var hiddenPre=document.createElement("pre"); -var spaceRe = /^(\s*)([\s\S]*?)(\s*)$/; /** * decodes all entities into regular string * @param value @@ -393,22 +439,10 @@ var spaceRe = /^(\s*)([\s\S]*?)(\s*)$/; function decodeEntities(value) { if (!value) { return ''; } - // Note: IE8 does not preserve spaces at the start/end of innerHTML - // so we must capture them and reattach them afterward - var parts = spaceRe.exec(value); - var spaceBefore = parts[1]; - var spaceAfter = parts[3]; - var content = parts[2]; - if (content) { - hiddenPre.innerHTML=content.replace(/' : '>'); } }, - end: function(tag){ + end: function(tag) { tag = angular.lowercase(tag); if (!ignore && validElements[tag] === true) { out('"]/, - MAILTO_REGEXP = /^mailto:/; + /((ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"”’]/i, + MAILTO_REGEXP = /^mailto:/i; return function(text, target) { if (!text) return text; @@ -610,8 +644,10 @@ angular.module('ngSanitize').filter('linky', ['$sanitize', function($sanitize) { while ((match = raw.match(LINKY_URL_REGEXP))) { // We can not end in these as they are sometimes found at the end of the sentence url = match[0]; - // if we did not match ftp/http/mailto then assume mailto - if (match[2] == match[3]) url = 'mailto:' + url; + // if we did not match ftp/http/www/mailto then assume mailto + if (!match[2] && !match[4]) { + url = (match[3] ? 'http://' : 'mailto:') + url; + } i = match.index; addText(raw.substr(0, i)); addLink(url, match[0].replace(MAILTO_REGEXP, '')); @@ -630,13 +666,13 @@ angular.module('ngSanitize').filter('linky', ['$sanitize', function($sanitize) { function addLink(url, text) { html.push(''); + html.push('href="', + url.replace(/"/g, '"'), + '">'); addText(text); html.push(''); } diff --git a/awx/ui/client/lib/angular-sanitize/angular-sanitize.min.js b/awx/ui/client/lib/angular-sanitize/angular-sanitize.min.js new file mode 100644 index 0000000000..e8c4226487 --- /dev/null +++ b/awx/ui/client/lib/angular-sanitize/angular-sanitize.min.js @@ -0,0 +1,16 @@ +/* + AngularJS v1.4.3 + (c) 2010-2015 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(n,h,p){'use strict';function E(a){var f=[];r(f,h.noop).chars(a);return f.join("")}function g(a,f){var d={},c=a.split(","),b;for(b=0;b=c;d--)f.end&&f.end(e[d]);e.length=c}}"string"!==typeof a&&(a=null===a||"undefined"===typeof a?"":""+a);var b,k,e=[],m=a,l;for(e.last=function(){return e[e.length-1]};a;){l="";k=!0;if(e.last()&&w[e.last()])a=a.replace(new RegExp("([\\W\\w]*)<\\s*\\/\\s*"+e.last()+"[^>]*>","i"),function(a,b){b=b.replace(H,"$1").replace(I,"$1");f.chars&&f.chars(q(b));return""}),c("",e.last());else{if(0===a.indexOf("\x3c!--"))b=a.indexOf("--",4),0<=b&&a.lastIndexOf("--\x3e", +b)===b&&(f.comment&&f.comment(a.substring(4,b)),a=a.substring(b+3),k=!1);else if(x.test(a)){if(b=a.match(x))a=a.replace(b[0],""),k=!1}else if(J.test(a)){if(b=a.match(y))a=a.substring(b[0].length),b[0].replace(y,c),k=!1}else K.test(a)&&((b=a.match(z))?(b[4]&&(a=a.substring(b[0].length),b[0].replace(z,d)),k=!1):(l+="<",a=a.substring(1)));k&&(b=a.indexOf("<"),l+=0>b?a:a.substring(0,b),a=0>b?"":a.substring(b),f.chars&&f.chars(q(l)))}if(a==m)throw L("badparse",a);m=a}c()}function q(a){if(!a)return"";A.innerHTML= +a.replace(//g,">")}function r(a,f){var d=!1,c=h.bind(a,a.push);return{start:function(a,k,e){a=h.lowercase(a);!d&&w[a]&&(d=a);d||!0!==C[a]||(c("<"),c(a),h.forEach(k,function(d,e){var k=h.lowercase(e),g="img"===a&&"src"===k|| +"background"===k;!0!==O[k]||!0===D[k]&&!f(d,g)||(c(" "),c(e),c('="'),c(B(d)),c('"'))}),c(e?"/>":">"))},end:function(a){a=h.lowercase(a);d||!0!==C[a]||(c(""));a==d&&(d=!1)},chars:function(a){d||c(B(a))}}}var L=h.$$minErr("$sanitize"),z=/^<((?:[a-zA-Z])[\w:-]*)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*(>?)/,y=/^<\/\s*([\w:-]+)[^>]*>/,G=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,K=/^]*?)>/i, +I=/"\u201d\u2019]/i,d=/^mailto:/i;return function(c,b){function k(a){a&&g.push(E(a))}function e(a, +c){g.push("');k(c);g.push("")}if(!c)return c;for(var m,l=c,g=[],n,p;m=l.match(f);)n=m[0],m[2]||m[4]||(n=(m[3]?"http://":"mailto:")+n),p=m.index,k(l.substr(0,p)),e(n,m[0].replace(d,"")),l=l.substring(p+m[0].length);k(l);return a(g.join(""))}}])})(window,window.angular); +//# sourceMappingURL=angular-sanitize.min.js.map diff --git a/awx/ui/client/lib/angular-sanitize/angular-sanitize.min.js.map b/awx/ui/client/lib/angular-sanitize/angular-sanitize.min.js.map new file mode 100644 index 0000000000..2f360f4df7 --- /dev/null +++ b/awx/ui/client/lib/angular-sanitize/angular-sanitize.min.js.map @@ -0,0 +1,8 @@ +{ +"version":3, +"file":"angular-sanitize.min.js", +"lineCount":15, +"mappings":"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", +"sources":["angular-sanitize.js"], +"names":["window","angular","undefined","sanitizeText","chars","buf","htmlSanitizeWriter","writer","noop","join","makeMap","str","lowercaseKeys","obj","items","split","i","length","lowercase","htmlParser","html","handler","parseStartTag","tag","tagName","rest","unary","blockElements","stack","last","inlineElements","parseEndTag","optionalEndTagElements","voidElements","push","attrs","replace","ATTR_REGEXP","match","name","doubleQuotedValue","singleQuotedValue","unquotedValue","decodeEntities","start","pos","end","index","text","stack.last","specialElements","RegExp","all","COMMENT_REGEXP","CDATA_REGEXP","indexOf","lastIndexOf","comment","substring","DOCTYPE_REGEXP","test","BEGING_END_TAGE_REGEXP","END_TAG_REGEXP","BEGIN_TAG_REGEXP","START_TAG_REGEXP","$sanitizeMinErr","value","hiddenPre","innerHTML","textContent","encodeEntities","SURROGATE_PAIR_REGEXP","hi","charCodeAt","low","NON_ALPHANUMERIC_REGEXP","uriValidator","ignore","out","bind","validElements","forEach","key","lkey","isImage","validAttrs","uriAttrs","$$minErr","optionalEndTagBlockElements","optionalEndTagInlineElements","extend","svgElements","htmlAttrs","svgAttrs","document","createElement","module","provider","$SanitizeProvider","$get","$$sanitizeUri","uri","filter","$sanitize","LINKY_URL_REGEXP","MAILTO_REGEXP","target","addText","addLink","url","isDefined","raw","substr"] +} diff --git a/awx/ui/static/lib/angular-sanitize/bower.json b/awx/ui/client/lib/angular-sanitize/bower.json similarity index 60% rename from awx/ui/static/lib/angular-sanitize/bower.json rename to awx/ui/client/lib/angular-sanitize/bower.json index 648d5e99d9..ffa9554222 100644 --- a/awx/ui/static/lib/angular-sanitize/bower.json +++ b/awx/ui/client/lib/angular-sanitize/bower.json @@ -1,8 +1,9 @@ { "name": "angular-sanitize", - "version": "1.2.23", + "version": "1.4.3", "main": "./angular-sanitize.js", + "ignore": [], "dependencies": { - "angular": "1.2.23" + "angular": "1.4.3" } } diff --git a/awx/ui/client/lib/angular-sanitize/index.js b/awx/ui/client/lib/angular-sanitize/index.js new file mode 100644 index 0000000000..dd5d22e4a5 --- /dev/null +++ b/awx/ui/client/lib/angular-sanitize/index.js @@ -0,0 +1,2 @@ +require('./angular-sanitize'); +module.exports = 'ngSanitize'; diff --git a/awx/ui/client/lib/angular-sanitize/package.json b/awx/ui/client/lib/angular-sanitize/package.json new file mode 100644 index 0000000000..d8ee360019 --- /dev/null +++ b/awx/ui/client/lib/angular-sanitize/package.json @@ -0,0 +1,26 @@ +{ + "name": "angular-sanitize", + "version": "1.4.3", + "description": "AngularJS module for sanitizing HTML", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "https://github.com/angular/angular.js.git" + }, + "keywords": [ + "angular", + "framework", + "browser", + "html", + "client-side" + ], + "author": "Angular Core Team ", + "license": "MIT", + "bugs": { + "url": "https://github.com/angular/angular.js/issues" + }, + "homepage": "http://angularjs.org" +} diff --git a/awx/ui/static/lib/angular-scheduler/.bower.json b/awx/ui/client/lib/angular-scheduler/.bower.json similarity index 100% rename from awx/ui/static/lib/angular-scheduler/.bower.json rename to awx/ui/client/lib/angular-scheduler/.bower.json diff --git a/awx/ui/static/lib/angular-scheduler/Gruntfile.js b/awx/ui/client/lib/angular-scheduler/Gruntfile.js similarity index 100% rename from awx/ui/static/lib/angular-scheduler/Gruntfile.js rename to awx/ui/client/lib/angular-scheduler/Gruntfile.js diff --git a/awx/ui/static/lib/angular-scheduler/LICENSE b/awx/ui/client/lib/angular-scheduler/LICENSE similarity index 100% rename from awx/ui/static/lib/angular-scheduler/LICENSE rename to awx/ui/client/lib/angular-scheduler/LICENSE diff --git a/awx/ui/static/lib/angular-scheduler/README.md b/awx/ui/client/lib/angular-scheduler/README.md similarity index 100% rename from awx/ui/static/lib/angular-scheduler/README.md rename to awx/ui/client/lib/angular-scheduler/README.md diff --git a/awx/ui/static/lib/angular-scheduler/app/css/sampleApp.less b/awx/ui/client/lib/angular-scheduler/app/css/sampleApp.less similarity index 100% rename from awx/ui/static/lib/angular-scheduler/app/css/sampleApp.less rename to awx/ui/client/lib/angular-scheduler/app/css/sampleApp.less diff --git a/awx/ui/static/lib/angular-scheduler/app/index.html b/awx/ui/client/lib/angular-scheduler/app/index.html similarity index 100% rename from awx/ui/static/lib/angular-scheduler/app/index.html rename to awx/ui/client/lib/angular-scheduler/app/index.html diff --git a/awx/ui/static/lib/angular-scheduler/app/js/sampleApp.js b/awx/ui/client/lib/angular-scheduler/app/js/sampleApp.js similarity index 100% rename from awx/ui/static/lib/angular-scheduler/app/js/sampleApp.js rename to awx/ui/client/lib/angular-scheduler/app/js/sampleApp.js diff --git a/awx/ui/static/lib/angular-scheduler/app/partials/main.html b/awx/ui/client/lib/angular-scheduler/app/partials/main.html similarity index 100% rename from awx/ui/static/lib/angular-scheduler/app/partials/main.html rename to awx/ui/client/lib/angular-scheduler/app/partials/main.html diff --git a/awx/ui/static/lib/angular-scheduler/bower.json b/awx/ui/client/lib/angular-scheduler/bower.json similarity index 100% rename from awx/ui/static/lib/angular-scheduler/bower.json rename to awx/ui/client/lib/angular-scheduler/bower.json diff --git a/awx/ui/static/lib/angular-scheduler/lib/angular-scheduler-detail.html b/awx/ui/client/lib/angular-scheduler/lib/angular-scheduler-detail.html similarity index 100% rename from awx/ui/static/lib/angular-scheduler/lib/angular-scheduler-detail.html rename to awx/ui/client/lib/angular-scheduler/lib/angular-scheduler-detail.html diff --git a/awx/ui/static/lib/angular-scheduler/lib/angular-scheduler.css b/awx/ui/client/lib/angular-scheduler/lib/angular-scheduler.css similarity index 100% rename from awx/ui/static/lib/angular-scheduler/lib/angular-scheduler.css rename to awx/ui/client/lib/angular-scheduler/lib/angular-scheduler.css diff --git a/awx/ui/static/lib/angular-scheduler/lib/angular-scheduler.html b/awx/ui/client/lib/angular-scheduler/lib/angular-scheduler.html similarity index 99% rename from awx/ui/static/lib/angular-scheduler/lib/angular-scheduler.html rename to awx/ui/client/lib/angular-scheduler/lib/angular-scheduler.html index a13551c8a4..d20f5d6d82 100644 --- a/awx/ui/static/lib/angular-scheduler/lib/angular-scheduler.html +++ b/awx/ui/client/lib/angular-scheduler/lib/angular-scheduler.html @@ -25,7 +25,7 @@
Note: For facts collected older than the time period specified, save one fact scan (snapshot) per time window (frequency). For example, facts older than 30 days are purged, while one weekly fact scan is kept. Caution: Setting both numerical variables to "0" will delete all facts.
-
+
A value is required.
diff --git a/awx/ui/static/lib/angular-scheduler/lib/angular-scheduler.js b/awx/ui/client/lib/angular-scheduler/lib/angular-scheduler.js similarity index 99% rename from awx/ui/static/lib/angular-scheduler/lib/angular-scheduler.js rename to awx/ui/client/lib/angular-scheduler/lib/angular-scheduler.js index 3a3b77d8f3..a45cfcab31 100644 --- a/awx/ui/static/lib/angular-scheduler/lib/angular-scheduler.js +++ b/awx/ui/client/lib/angular-scheduler/lib/angular-scheduler.js @@ -297,7 +297,10 @@ angular.module('AngularScheduler', ['underscore']) } return false; }); - scope.rrule_nlp_description = rrule.toText().replace(/^RRule error.*$/,'Natural language description not available'); + scope.rrule_nlp_description = rrule.toText().replace(/^RRule error.*$/,'Minutely or hourly frequency selected'); + if(rrule === "none"){ + scope.rrule_nlp_description = 'Natural language description not available'; + } scope.rrule = rrule.toString(); } }; diff --git a/awx/ui/static/lib/angular-scheduler/lib/angular-scheduler.min.css b/awx/ui/client/lib/angular-scheduler/lib/angular-scheduler.min.css similarity index 100% rename from awx/ui/static/lib/angular-scheduler/lib/angular-scheduler.min.css rename to awx/ui/client/lib/angular-scheduler/lib/angular-scheduler.min.css diff --git a/awx/ui/static/lib/angular-scheduler/lib/angular-scheduler.min.js b/awx/ui/client/lib/angular-scheduler/lib/angular-scheduler.min.js similarity index 100% rename from awx/ui/static/lib/angular-scheduler/lib/angular-scheduler.min.js rename to awx/ui/client/lib/angular-scheduler/lib/angular-scheduler.min.js diff --git a/awx/ui/static/lib/angular-scheduler/package.json b/awx/ui/client/lib/angular-scheduler/package.json similarity index 100% rename from awx/ui/static/lib/angular-scheduler/package.json rename to awx/ui/client/lib/angular-scheduler/package.json diff --git a/awx/ui/static/lib/angular-scheduler/scripts/web-server.js b/awx/ui/client/lib/angular-scheduler/scripts/web-server.js similarity index 100% rename from awx/ui/static/lib/angular-scheduler/scripts/web-server.js rename to awx/ui/client/lib/angular-scheduler/scripts/web-server.js diff --git a/awx/ui/static/lib/angular-tz-extensions/.bower.json b/awx/ui/client/lib/angular-tz-extensions/.bower.json similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/.bower.json rename to awx/ui/client/lib/angular-tz-extensions/.bower.json diff --git a/awx/ui/static/lib/angular-tz-extensions/Gruntfile.js b/awx/ui/client/lib/angular-tz-extensions/Gruntfile.js similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/Gruntfile.js rename to awx/ui/client/lib/angular-tz-extensions/Gruntfile.js diff --git a/awx/ui/static/lib/angular-tz-extensions/LICENSE.md b/awx/ui/client/lib/angular-tz-extensions/LICENSE.md similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/LICENSE.md rename to awx/ui/client/lib/angular-tz-extensions/LICENSE.md diff --git a/awx/ui/static/lib/angular-tz-extensions/README.md b/awx/ui/client/lib/angular-tz-extensions/README.md similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/README.md rename to awx/ui/client/lib/angular-tz-extensions/README.md diff --git a/awx/ui/static/lib/angular-tz-extensions/app/filters.html b/awx/ui/client/lib/angular-tz-extensions/app/filters.html similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/app/filters.html rename to awx/ui/client/lib/angular-tz-extensions/app/filters.html diff --git a/awx/ui/static/lib/angular-tz-extensions/app/js/filters.js b/awx/ui/client/lib/angular-tz-extensions/app/js/filters.js similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/app/js/filters.js rename to awx/ui/client/lib/angular-tz-extensions/app/js/filters.js diff --git a/awx/ui/static/lib/angular-tz-extensions/bower.json b/awx/ui/client/lib/angular-tz-extensions/bower.json similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/bower.json rename to awx/ui/client/lib/angular-tz-extensions/bower.json diff --git a/awx/ui/static/lib/angular-tz-extensions/lib/angular-tz-extensions.js b/awx/ui/client/lib/angular-tz-extensions/lib/angular-tz-extensions.js similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/lib/angular-tz-extensions.js rename to awx/ui/client/lib/angular-tz-extensions/lib/angular-tz-extensions.js diff --git a/awx/ui/static/lib/angular-tz-extensions/lib/angular-tz-extensions.min.js b/awx/ui/client/lib/angular-tz-extensions/lib/angular-tz-extensions.min.js similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/lib/angular-tz-extensions.min.js rename to awx/ui/client/lib/angular-tz-extensions/lib/angular-tz-extensions.min.js diff --git a/awx/ui/static/lib/angular-tz-extensions/packages/jstimezonedetect/LICENCE.txt b/awx/ui/client/lib/angular-tz-extensions/packages/jstimezonedetect/LICENCE.txt similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/packages/jstimezonedetect/LICENCE.txt rename to awx/ui/client/lib/angular-tz-extensions/packages/jstimezonedetect/LICENCE.txt diff --git a/awx/ui/static/lib/angular-tz-extensions/packages/jstimezonedetect/README.md b/awx/ui/client/lib/angular-tz-extensions/packages/jstimezonedetect/README.md similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/packages/jstimezonedetect/README.md rename to awx/ui/client/lib/angular-tz-extensions/packages/jstimezonedetect/README.md diff --git a/awx/ui/static/lib/angular-tz-extensions/packages/jstimezonedetect/grunt.js b/awx/ui/client/lib/angular-tz-extensions/packages/jstimezonedetect/grunt.js similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/packages/jstimezonedetect/grunt.js rename to awx/ui/client/lib/angular-tz-extensions/packages/jstimezonedetect/grunt.js diff --git a/awx/ui/static/lib/angular-tz-extensions/packages/jstimezonedetect/jstz.js b/awx/ui/client/lib/angular-tz-extensions/packages/jstimezonedetect/jstz.js similarity index 97% rename from awx/ui/static/lib/angular-tz-extensions/packages/jstimezonedetect/jstz.js rename to awx/ui/client/lib/angular-tz-extensions/packages/jstimezonedetect/jstz.js index e368902d61..2ba1953f91 100644 --- a/awx/ui/static/lib/angular-tz-extensions/packages/jstimezonedetect/jstz.js +++ b/awx/ui/client/lib/angular-tz-extensions/packages/jstimezonedetect/jstz.js @@ -1,358 +1,358 @@ -/** - * This script gives you the zone info key representing your device's time zone setting. - * - * @name jsTimezoneDetect - * @version 1.0.5 - * @author Jon Nylander - * @license MIT License - http://www.opensource.org/licenses/mit-license.php - * - * For usage and examples, visit: - * http://pellepim.bitbucket.org/jstz/ - * - * Copyright (c) Jon Nylander - */ - -/*jslint undef: true */ -/*global console, exports*/ - -(function(root) { - /** - * Namespace to hold all the code for timezone detection. - */ - var jstz = (function () { - 'use strict'; - var HEMISPHERE_SOUTH = 's', - - /** - * Gets the offset in minutes from UTC for a certain date. - * @param {Date} date - * @returns {Number} - */ - get_date_offset = function (date) { - var offset = -date.getTimezoneOffset(); - return (offset !== null ? offset : 0); - }, - - get_date = function (year, month, date) { - var d = new Date(); - if (year !== undefined) { - d.setFullYear(year); - } - d.setMonth(month); - d.setDate(date); - return d; - }, - - get_january_offset = function (year) { - return get_date_offset(get_date(year, 0 ,2)); - }, - - get_june_offset = function (year) { - return get_date_offset(get_date(year, 5, 2)); - }, - - /** - * Private method. - * Checks whether a given date is in daylight saving time. - * If the date supplied is after august, we assume that we're checking - * for southern hemisphere DST. - * @param {Date} date - * @returns {Boolean} - */ - date_is_dst = function (date) { - var is_southern = date.getMonth() > 7, - base_offset = is_southern ? get_june_offset(date.getFullYear()) : - get_january_offset(date.getFullYear()), - date_offset = get_date_offset(date), - is_west = base_offset < 0, - dst_offset = base_offset - date_offset; - - if (!is_west && !is_southern) { - return dst_offset < 0; - } - - return dst_offset !== 0; - }, - - /** - * This function does some basic calculations to create information about - * the user's timezone. It uses REFERENCE_YEAR as a solid year for which - * the script has been tested rather than depend on the year set by the - * client device. - * - * Returns a key that can be used to do lookups in jstz.olson.timezones. - * eg: "720,1,2". - * - * @returns {String} - */ - - lookup_key = function () { - var january_offset = get_january_offset(), - june_offset = get_june_offset(), - diff = january_offset - june_offset; - - if (diff < 0) { - return january_offset + ",1"; - } else if (diff > 0) { - return june_offset + ",1," + HEMISPHERE_SOUTH; - } - - return january_offset + ",0"; - }, - - /** - * Uses get_timezone_info() to formulate a key to use in the olson.timezones dictionary. - * - * Returns a primitive object on the format: - * {'timezone': TimeZone, 'key' : 'the key used to find the TimeZone object'} - * - * @returns Object - */ - determine = function () { - var key = lookup_key(); - return new jstz.TimeZone(jstz.olson.timezones[key]); - }, - - /** - * This object contains information on when daylight savings starts for - * different timezones. - * - * The list is short for a reason. Often we do not have to be very specific - * to single out the correct timezone. But when we do, this list comes in - * handy. - * - * Each value is a date denoting when daylight savings starts for that timezone. - */ - dst_start_for = function (tz_name) { - - var ru_pre_dst_change = new Date(2010, 6, 15, 1, 0, 0, 0), // In 2010 Russia had DST, this allows us to detect Russia :) - dst_starts = { - 'America/Denver': new Date(2011, 2, 13, 3, 0, 0, 0), - 'America/Mazatlan': new Date(2011, 3, 3, 3, 0, 0, 0), - 'America/Chicago': new Date(2011, 2, 13, 3, 0, 0, 0), - 'America/Mexico_City': new Date(2011, 3, 3, 3, 0, 0, 0), - 'America/Asuncion': new Date(2012, 9, 7, 3, 0, 0, 0), - 'America/Santiago': new Date(2012, 9, 3, 3, 0, 0, 0), - 'America/Campo_Grande': new Date(2012, 9, 21, 5, 0, 0, 0), - 'America/Montevideo': new Date(2011, 9, 2, 3, 0, 0, 0), - 'America/Sao_Paulo': new Date(2011, 9, 16, 5, 0, 0, 0), - 'America/Los_Angeles': new Date(2011, 2, 13, 8, 0, 0, 0), - 'America/Santa_Isabel': new Date(2011, 3, 5, 8, 0, 0, 0), - 'America/Havana': new Date(2012, 2, 10, 2, 0, 0, 0), - 'America/New_York': new Date(2012, 2, 10, 7, 0, 0, 0), - 'Europe/Helsinki': new Date(2013, 2, 31, 5, 0, 0, 0), - 'Pacific/Auckland': new Date(2011, 8, 26, 7, 0, 0, 0), - 'America/Halifax': new Date(2011, 2, 13, 6, 0, 0, 0), - 'America/Goose_Bay': new Date(2011, 2, 13, 2, 1, 0, 0), - 'America/Miquelon': new Date(2011, 2, 13, 5, 0, 0, 0), - 'America/Godthab': new Date(2011, 2, 27, 1, 0, 0, 0), - 'Europe/Moscow': ru_pre_dst_change, - 'Asia/Amman': new Date(2013, 2, 29, 1, 0, 0, 0), - 'Asia/Beirut': new Date(2013, 2, 31, 2, 0, 0, 0), - 'Asia/Damascus': new Date(2013, 3, 6, 2, 0, 0, 0), - 'Asia/Jerusalem': new Date(2013, 2, 29, 5, 0, 0, 0), - 'Asia/Yekaterinburg': ru_pre_dst_change, - 'Asia/Omsk': ru_pre_dst_change, - 'Asia/Krasnoyarsk': ru_pre_dst_change, - 'Asia/Irkutsk': ru_pre_dst_change, - 'Asia/Yakutsk': ru_pre_dst_change, - 'Asia/Vladivostok': ru_pre_dst_change, - 'Asia/Baku': new Date(2013, 2, 31, 4, 0, 0), - 'Asia/Yerevan': new Date(2013, 2, 31, 3, 0, 0), - 'Asia/Kamchatka': ru_pre_dst_change, - 'Asia/Gaza': new Date(2010, 2, 27, 4, 0, 0), - 'Africa/Cairo': new Date(2010, 4, 1, 3, 0, 0), - 'Europe/Minsk': ru_pre_dst_change, - 'Pacific/Apia': new Date(2010, 10, 1, 1, 0, 0, 0), - 'Pacific/Fiji': new Date(2010, 11, 1, 0, 0, 0), - 'Australia/Perth': new Date(2008, 10, 1, 1, 0, 0, 0) - }; - - return dst_starts[tz_name]; - }; - - return { - determine: determine, - date_is_dst: date_is_dst, - dst_start_for: dst_start_for - }; - }()); - - /** - * Simple object to perform ambiguity check and to return name of time zone. - */ - jstz.TimeZone = function (tz_name) { - 'use strict'; - /** - * The keys in this object are timezones that we know may be ambiguous after - * a preliminary scan through the olson_tz object. - * - * The array of timezones to compare must be in the order that daylight savings - * starts for the regions. - */ - var AMBIGUITIES = { - 'America/Denver': ['America/Denver', 'America/Mazatlan'], - 'America/Chicago': ['America/Chicago', 'America/Mexico_City'], - 'America/Santiago': ['America/Santiago', 'America/Asuncion', 'America/Campo_Grande'], - 'America/Montevideo': ['America/Montevideo', 'America/Sao_Paulo'], - 'Asia/Beirut': ['Asia/Amman', 'Asia/Jerusalem', 'Asia/Beirut', 'Europe/Helsinki','Asia/Damascus'], - 'Pacific/Auckland': ['Pacific/Auckland', 'Pacific/Fiji'], - 'America/Los_Angeles': ['America/Los_Angeles', 'America/Santa_Isabel'], - 'America/New_York': ['America/Havana', 'America/New_York'], - 'America/Halifax': ['America/Goose_Bay', 'America/Halifax'], - 'America/Godthab': ['America/Miquelon', 'America/Godthab'], - 'Asia/Dubai': ['Europe/Moscow'], - 'Asia/Dhaka': ['Asia/Yekaterinburg'], - 'Asia/Jakarta': ['Asia/Omsk'], - 'Asia/Shanghai': ['Asia/Krasnoyarsk', 'Australia/Perth'], - 'Asia/Tokyo': ['Asia/Irkutsk'], - 'Australia/Brisbane': ['Asia/Yakutsk'], - 'Pacific/Noumea': ['Asia/Vladivostok'], - 'Pacific/Tarawa': ['Asia/Kamchatka', 'Pacific/Fiji'], - 'Pacific/Tongatapu': ['Pacific/Apia'], - 'Asia/Baghdad': ['Europe/Minsk'], - 'Asia/Baku': ['Asia/Yerevan','Asia/Baku'], - 'Africa/Johannesburg': ['Asia/Gaza', 'Africa/Cairo'] - }, - - timezone_name = tz_name, - - /** - * Checks if a timezone has possible ambiguities. I.e timezones that are similar. - * - * For example, if the preliminary scan determines that we're in America/Denver. - * We double check here that we're really there and not in America/Mazatlan. - * - * This is done by checking known dates for when daylight savings start for different - * timezones during 2010 and 2011. - */ - ambiguity_check = function () { - var ambiguity_list = AMBIGUITIES[timezone_name], - length = ambiguity_list.length, - i = 0, - tz = ambiguity_list[0]; - - for (; i < length; i += 1) { - tz = ambiguity_list[i]; - - if (jstz.date_is_dst(jstz.dst_start_for(tz))) { - timezone_name = tz; - return; - } - } - }, - - /** - * Checks if it is possible that the timezone is ambiguous. - */ - is_ambiguous = function () { - return typeof (AMBIGUITIES[timezone_name]) !== 'undefined'; - }; - - if (is_ambiguous()) { - ambiguity_check(); - } - - return { - name: function () { - return timezone_name; - } - }; - }; - - jstz.olson = {}; - - /* - * The keys in this dictionary are comma separated as such: - * - * First the offset compared to UTC time in minutes. - * - * Then a flag which is 0 if the timezone does not take daylight savings into account and 1 if it - * does. - * - * Thirdly an optional 's' signifies that the timezone is in the southern hemisphere, - * only interesting for timezones with DST. - * - * The mapped arrays is used for constructing the jstz.TimeZone object from within - * jstz.determine_timezone(); - */ - jstz.olson.timezones = { - '-720,0' : 'Pacific/Majuro', - '-660,0' : 'Pacific/Pago_Pago', - '-600,1' : 'America/Adak', - '-600,0' : 'Pacific/Honolulu', - '-570,0' : 'Pacific/Marquesas', - '-540,0' : 'Pacific/Gambier', - '-540,1' : 'America/Anchorage', - '-480,1' : 'America/Los_Angeles', - '-480,0' : 'Pacific/Pitcairn', - '-420,0' : 'America/Phoenix', - '-420,1' : 'America/Denver', - '-360,0' : 'America/Guatemala', - '-360,1' : 'America/Chicago', - '-360,1,s' : 'Pacific/Easter', - '-300,0' : 'America/Bogota', - '-300,1' : 'America/New_York', - '-270,0' : 'America/Caracas', - '-240,1' : 'America/Halifax', - '-240,0' : 'America/Santo_Domingo', - '-240,1,s' : 'America/Santiago', - '-210,1' : 'America/St_Johns', - '-180,1' : 'America/Godthab', - '-180,0' : 'America/Argentina/Buenos_Aires', - '-180,1,s' : 'America/Montevideo', - '-120,0' : 'America/Noronha', - '-120,1' : 'America/Noronha', - '-60,1' : 'Atlantic/Azores', - '-60,0' : 'Atlantic/Cape_Verde', - '0,0' : 'UTC', - '0,1' : 'Europe/London', - '60,1' : 'Europe/Berlin', - '60,0' : 'Africa/Lagos', - '60,1,s' : 'Africa/Windhoek', - '120,1' : 'Asia/Beirut', - '120,0' : 'Africa/Johannesburg', - '180,0' : 'Asia/Baghdad', - '180,1' : 'Europe/Moscow', - '210,1' : 'Asia/Tehran', - '240,0' : 'Asia/Dubai', - '240,1' : 'Asia/Baku', - '270,0' : 'Asia/Kabul', - '300,1' : 'Asia/Yekaterinburg', - '300,0' : 'Asia/Karachi', - '330,0' : 'Asia/Kolkata', - '345,0' : 'Asia/Kathmandu', - '360,0' : 'Asia/Dhaka', - '360,1' : 'Asia/Omsk', - '390,0' : 'Asia/Rangoon', - '420,1' : 'Asia/Krasnoyarsk', - '420,0' : 'Asia/Jakarta', - '480,0' : 'Asia/Shanghai', - '480,1' : 'Asia/Irkutsk', - '525,0' : 'Australia/Eucla', - '525,1,s' : 'Australia/Eucla', - '540,1' : 'Asia/Yakutsk', - '540,0' : 'Asia/Tokyo', - '570,0' : 'Australia/Darwin', - '570,1,s' : 'Australia/Adelaide', - '600,0' : 'Australia/Brisbane', - '600,1' : 'Asia/Vladivostok', - '600,1,s' : 'Australia/Sydney', - '630,1,s' : 'Australia/Lord_Howe', - '660,1' : 'Asia/Kamchatka', - '660,0' : 'Pacific/Noumea', - '690,0' : 'Pacific/Norfolk', - '720,1,s' : 'Pacific/Auckland', - '720,0' : 'Pacific/Tarawa', - '765,1,s' : 'Pacific/Chatham', - '780,0' : 'Pacific/Tongatapu', - '780,1,s' : 'Pacific/Apia', - '840,0' : 'Pacific/Kiritimati' - }; - - if (typeof exports !== 'undefined') { - exports.jstz = jstz; - } else { - root.jstz = jstz; - } -})(this); +/** + * This script gives you the zone info key representing your device's time zone setting. + * + * @name jsTimezoneDetect + * @version 1.0.5 + * @author Jon Nylander + * @license MIT License - http://www.opensource.org/licenses/mit-license.php + * + * For usage and examples, visit: + * http://pellepim.bitbucket.org/jstz/ + * + * Copyright (c) Jon Nylander + */ + +/*jslint undef: true */ +/*global console, exports*/ + +(function(root) { + /** + * Namespace to hold all the code for timezone detection. + */ + var jstz = (function () { + 'use strict'; + var HEMISPHERE_SOUTH = 's', + + /** + * Gets the offset in minutes from UTC for a certain date. + * @param {Date} date + * @returns {Number} + */ + get_date_offset = function (date) { + var offset = -date.getTimezoneOffset(); + return (offset !== null ? offset : 0); + }, + + get_date = function (year, month, date) { + var d = new Date(); + if (year !== undefined) { + d.setFullYear(year); + } + d.setMonth(month); + d.setDate(date); + return d; + }, + + get_january_offset = function (year) { + return get_date_offset(get_date(year, 0 ,2)); + }, + + get_june_offset = function (year) { + return get_date_offset(get_date(year, 5, 2)); + }, + + /** + * Private method. + * Checks whether a given date is in daylight saving time. + * If the date supplied is after august, we assume that we're checking + * for southern hemisphere DST. + * @param {Date} date + * @returns {Boolean} + */ + date_is_dst = function (date) { + var is_southern = date.getMonth() > 7, + base_offset = is_southern ? get_june_offset(date.getFullYear()) : + get_january_offset(date.getFullYear()), + date_offset = get_date_offset(date), + is_west = base_offset < 0, + dst_offset = base_offset - date_offset; + + if (!is_west && !is_southern) { + return dst_offset < 0; + } + + return dst_offset !== 0; + }, + + /** + * This function does some basic calculations to create information about + * the user's timezone. It uses REFERENCE_YEAR as a solid year for which + * the script has been tested rather than depend on the year set by the + * client device. + * + * Returns a key that can be used to do lookups in jstz.olson.timezones. + * eg: "720,1,2". + * + * @returns {String} + */ + + lookup_key = function () { + var january_offset = get_january_offset(), + june_offset = get_june_offset(), + diff = january_offset - june_offset; + + if (diff < 0) { + return january_offset + ",1"; + } else if (diff > 0) { + return june_offset + ",1," + HEMISPHERE_SOUTH; + } + + return january_offset + ",0"; + }, + + /** + * Uses get_timezone_info() to formulate a key to use in the olson.timezones dictionary. + * + * Returns a primitive object on the format: + * {'timezone': TimeZone, 'key' : 'the key used to find the TimeZone object'} + * + * @returns Object + */ + determine = function () { + var key = lookup_key(); + return new jstz.TimeZone(jstz.olson.timezones[key]); + }, + + /** + * This object contains information on when daylight savings starts for + * different timezones. + * + * The list is short for a reason. Often we do not have to be very specific + * to single out the correct timezone. But when we do, this list comes in + * handy. + * + * Each value is a date denoting when daylight savings starts for that timezone. + */ + dst_start_for = function (tz_name) { + + var ru_pre_dst_change = new Date(2010, 6, 15, 1, 0, 0, 0), // In 2010 Russia had DST, this allows us to detect Russia :) + dst_starts = { + 'America/Denver': new Date(2011, 2, 13, 3, 0, 0, 0), + 'America/Mazatlan': new Date(2011, 3, 3, 3, 0, 0, 0), + 'America/Chicago': new Date(2011, 2, 13, 3, 0, 0, 0), + 'America/Mexico_City': new Date(2011, 3, 3, 3, 0, 0, 0), + 'America/Asuncion': new Date(2012, 9, 7, 3, 0, 0, 0), + 'America/Santiago': new Date(2012, 9, 3, 3, 0, 0, 0), + 'America/Campo_Grande': new Date(2012, 9, 21, 5, 0, 0, 0), + 'America/Montevideo': new Date(2011, 9, 2, 3, 0, 0, 0), + 'America/Sao_Paulo': new Date(2011, 9, 16, 5, 0, 0, 0), + 'America/Los_Angeles': new Date(2011, 2, 13, 8, 0, 0, 0), + 'America/Santa_Isabel': new Date(2011, 3, 5, 8, 0, 0, 0), + 'America/Havana': new Date(2012, 2, 10, 2, 0, 0, 0), + 'America/New_York': new Date(2012, 2, 10, 7, 0, 0, 0), + 'Europe/Helsinki': new Date(2013, 2, 31, 5, 0, 0, 0), + 'Pacific/Auckland': new Date(2011, 8, 26, 7, 0, 0, 0), + 'America/Halifax': new Date(2011, 2, 13, 6, 0, 0, 0), + 'America/Goose_Bay': new Date(2011, 2, 13, 2, 1, 0, 0), + 'America/Miquelon': new Date(2011, 2, 13, 5, 0, 0, 0), + 'America/Godthab': new Date(2011, 2, 27, 1, 0, 0, 0), + 'Europe/Moscow': ru_pre_dst_change, + 'Asia/Amman': new Date(2013, 2, 29, 1, 0, 0, 0), + 'Asia/Beirut': new Date(2013, 2, 31, 2, 0, 0, 0), + 'Asia/Damascus': new Date(2013, 3, 6, 2, 0, 0, 0), + 'Asia/Jerusalem': new Date(2013, 2, 29, 5, 0, 0, 0), + 'Asia/Yekaterinburg': ru_pre_dst_change, + 'Asia/Omsk': ru_pre_dst_change, + 'Asia/Krasnoyarsk': ru_pre_dst_change, + 'Asia/Irkutsk': ru_pre_dst_change, + 'Asia/Yakutsk': ru_pre_dst_change, + 'Asia/Vladivostok': ru_pre_dst_change, + 'Asia/Baku': new Date(2013, 2, 31, 4, 0, 0), + 'Asia/Yerevan': new Date(2013, 2, 31, 3, 0, 0), + 'Asia/Kamchatka': ru_pre_dst_change, + 'Asia/Gaza': new Date(2010, 2, 27, 4, 0, 0), + 'Africa/Cairo': new Date(2010, 4, 1, 3, 0, 0), + 'Europe/Minsk': ru_pre_dst_change, + 'Pacific/Apia': new Date(2010, 10, 1, 1, 0, 0, 0), + 'Pacific/Fiji': new Date(2010, 11, 1, 0, 0, 0), + 'Australia/Perth': new Date(2008, 10, 1, 1, 0, 0, 0) + }; + + return dst_starts[tz_name]; + }; + + return { + determine: determine, + date_is_dst: date_is_dst, + dst_start_for: dst_start_for + }; + }()); + + /** + * Simple object to perform ambiguity check and to return name of time zone. + */ + jstz.TimeZone = function (tz_name) { + 'use strict'; + /** + * The keys in this object are timezones that we know may be ambiguous after + * a preliminary scan through the olson_tz object. + * + * The array of timezones to compare must be in the order that daylight savings + * starts for the regions. + */ + var AMBIGUITIES = { + 'America/Denver': ['America/Denver', 'America/Mazatlan'], + 'America/Chicago': ['America/Chicago', 'America/Mexico_City'], + 'America/Santiago': ['America/Santiago', 'America/Asuncion', 'America/Campo_Grande'], + 'America/Montevideo': ['America/Montevideo', 'America/Sao_Paulo'], + 'Asia/Beirut': ['Asia/Amman', 'Asia/Jerusalem', 'Asia/Beirut', 'Europe/Helsinki','Asia/Damascus'], + 'Pacific/Auckland': ['Pacific/Auckland', 'Pacific/Fiji'], + 'America/Los_Angeles': ['America/Los_Angeles', 'America/Santa_Isabel'], + 'America/New_York': ['America/Havana', 'America/New_York'], + 'America/Halifax': ['America/Goose_Bay', 'America/Halifax'], + 'America/Godthab': ['America/Miquelon', 'America/Godthab'], + 'Asia/Dubai': ['Europe/Moscow'], + 'Asia/Dhaka': ['Asia/Yekaterinburg'], + 'Asia/Jakarta': ['Asia/Omsk'], + 'Asia/Shanghai': ['Asia/Krasnoyarsk', 'Australia/Perth'], + 'Asia/Tokyo': ['Asia/Irkutsk'], + 'Australia/Brisbane': ['Asia/Yakutsk'], + 'Pacific/Noumea': ['Asia/Vladivostok'], + 'Pacific/Tarawa': ['Asia/Kamchatka', 'Pacific/Fiji'], + 'Pacific/Tongatapu': ['Pacific/Apia'], + 'Asia/Baghdad': ['Europe/Minsk'], + 'Asia/Baku': ['Asia/Yerevan','Asia/Baku'], + 'Africa/Johannesburg': ['Asia/Gaza', 'Africa/Cairo'] + }, + + timezone_name = tz_name, + + /** + * Checks if a timezone has possible ambiguities. I.e timezones that are similar. + * + * For example, if the preliminary scan determines that we're in America/Denver. + * We double check here that we're really there and not in America/Mazatlan. + * + * This is done by checking known dates for when daylight savings start for different + * timezones during 2010 and 2011. + */ + ambiguity_check = function () { + var ambiguity_list = AMBIGUITIES[timezone_name], + length = ambiguity_list.length, + i = 0, + tz = ambiguity_list[0]; + + for (; i < length; i += 1) { + tz = ambiguity_list[i]; + + if (jstz.date_is_dst(jstz.dst_start_for(tz))) { + timezone_name = tz; + return; + } + } + }, + + /** + * Checks if it is possible that the timezone is ambiguous. + */ + is_ambiguous = function () { + return typeof (AMBIGUITIES[timezone_name]) !== 'undefined'; + }; + + if (is_ambiguous()) { + ambiguity_check(); + } + + return { + name: function () { + return timezone_name; + } + }; + }; + + jstz.olson = {}; + + /* + * The keys in this dictionary are comma separated as such: + * + * First the offset compared to UTC time in minutes. + * + * Then a flag which is 0 if the timezone does not take daylight savings into account and 1 if it + * does. + * + * Thirdly an optional 's' signifies that the timezone is in the southern hemisphere, + * only interesting for timezones with DST. + * + * The mapped arrays is used for constructing the jstz.TimeZone object from within + * jstz.determine_timezone(); + */ + jstz.olson.timezones = { + '-720,0' : 'Pacific/Majuro', + '-660,0' : 'Pacific/Pago_Pago', + '-600,1' : 'America/Adak', + '-600,0' : 'Pacific/Honolulu', + '-570,0' : 'Pacific/Marquesas', + '-540,0' : 'Pacific/Gambier', + '-540,1' : 'America/Anchorage', + '-480,1' : 'America/Los_Angeles', + '-480,0' : 'Pacific/Pitcairn', + '-420,0' : 'America/Phoenix', + '-420,1' : 'America/Denver', + '-360,0' : 'America/Guatemala', + '-360,1' : 'America/Chicago', + '-360,1,s' : 'Pacific/Easter', + '-300,0' : 'America/Bogota', + '-300,1' : 'America/New_York', + '-270,0' : 'America/Caracas', + '-240,1' : 'America/Halifax', + '-240,0' : 'America/Santo_Domingo', + '-240,1,s' : 'America/Santiago', + '-210,1' : 'America/St_Johns', + '-180,1' : 'America/Godthab', + '-180,0' : 'America/Argentina/Buenos_Aires', + '-180,1,s' : 'America/Montevideo', + '-120,0' : 'America/Noronha', + '-120,1' : 'America/Noronha', + '-60,1' : 'Atlantic/Azores', + '-60,0' : 'Atlantic/Cape_Verde', + '0,0' : 'UTC', + '0,1' : 'Europe/London', + '60,1' : 'Europe/Berlin', + '60,0' : 'Africa/Lagos', + '60,1,s' : 'Africa/Windhoek', + '120,1' : 'Asia/Beirut', + '120,0' : 'Africa/Johannesburg', + '180,0' : 'Asia/Baghdad', + '180,1' : 'Europe/Moscow', + '210,1' : 'Asia/Tehran', + '240,0' : 'Asia/Dubai', + '240,1' : 'Asia/Baku', + '270,0' : 'Asia/Kabul', + '300,1' : 'Asia/Yekaterinburg', + '300,0' : 'Asia/Karachi', + '330,0' : 'Asia/Kolkata', + '345,0' : 'Asia/Kathmandu', + '360,0' : 'Asia/Dhaka', + '360,1' : 'Asia/Omsk', + '390,0' : 'Asia/Rangoon', + '420,1' : 'Asia/Krasnoyarsk', + '420,0' : 'Asia/Jakarta', + '480,0' : 'Asia/Shanghai', + '480,1' : 'Asia/Irkutsk', + '525,0' : 'Australia/Eucla', + '525,1,s' : 'Australia/Eucla', + '540,1' : 'Asia/Yakutsk', + '540,0' : 'Asia/Tokyo', + '570,0' : 'Australia/Darwin', + '570,1,s' : 'Australia/Adelaide', + '600,0' : 'Australia/Brisbane', + '600,1' : 'Asia/Vladivostok', + '600,1,s' : 'Australia/Sydney', + '630,1,s' : 'Australia/Lord_Howe', + '660,1' : 'Asia/Kamchatka', + '660,0' : 'Pacific/Noumea', + '690,0' : 'Pacific/Norfolk', + '720,1,s' : 'Pacific/Auckland', + '720,0' : 'Pacific/Tarawa', + '765,1,s' : 'Pacific/Chatham', + '780,0' : 'Pacific/Tongatapu', + '780,1,s' : 'Pacific/Apia', + '840,0' : 'Pacific/Kiritimati' + }; + + if (typeof exports !== 'undefined') { + exports.jstz = jstz; + } else { + root.jstz = jstz; + } +})(this); diff --git a/awx/ui/static/lib/angular-tz-extensions/packages/jstimezonedetect/jstz.min.js b/awx/ui/client/lib/angular-tz-extensions/packages/jstimezonedetect/jstz.min.js similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/packages/jstimezonedetect/jstz.min.js rename to awx/ui/client/lib/angular-tz-extensions/packages/jstimezonedetect/jstz.min.js diff --git a/awx/ui/static/lib/angular-tz-extensions/scripts/web-server.js b/awx/ui/client/lib/angular-tz-extensions/scripts/web-server.js similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/scripts/web-server.js rename to awx/ui/client/lib/angular-tz-extensions/scripts/web-server.js diff --git a/awx/ui/static/lib/angular-tz-extensions/tz/data/Makefile b/awx/ui/client/lib/angular-tz-extensions/tz/data/Makefile similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/tz/data/Makefile rename to awx/ui/client/lib/angular-tz-extensions/tz/data/Makefile diff --git a/awx/ui/static/lib/angular-tz-extensions/tz/data/africa b/awx/ui/client/lib/angular-tz-extensions/tz/data/africa similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/tz/data/africa rename to awx/ui/client/lib/angular-tz-extensions/tz/data/africa diff --git a/awx/ui/static/lib/angular-tz-extensions/tz/data/antarctica b/awx/ui/client/lib/angular-tz-extensions/tz/data/antarctica similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/tz/data/antarctica rename to awx/ui/client/lib/angular-tz-extensions/tz/data/antarctica diff --git a/awx/ui/static/lib/angular-tz-extensions/tz/data/asia b/awx/ui/client/lib/angular-tz-extensions/tz/data/asia similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/tz/data/asia rename to awx/ui/client/lib/angular-tz-extensions/tz/data/asia diff --git a/awx/ui/static/lib/angular-tz-extensions/tz/data/australasia b/awx/ui/client/lib/angular-tz-extensions/tz/data/australasia similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/tz/data/australasia rename to awx/ui/client/lib/angular-tz-extensions/tz/data/australasia diff --git a/awx/ui/static/lib/angular-tz-extensions/tz/data/backward b/awx/ui/client/lib/angular-tz-extensions/tz/data/backward similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/tz/data/backward rename to awx/ui/client/lib/angular-tz-extensions/tz/data/backward diff --git a/awx/ui/static/lib/angular-tz-extensions/tz/data/etcetera b/awx/ui/client/lib/angular-tz-extensions/tz/data/etcetera similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/tz/data/etcetera rename to awx/ui/client/lib/angular-tz-extensions/tz/data/etcetera diff --git a/awx/ui/static/lib/angular-tz-extensions/tz/data/europe b/awx/ui/client/lib/angular-tz-extensions/tz/data/europe similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/tz/data/europe rename to awx/ui/client/lib/angular-tz-extensions/tz/data/europe diff --git a/awx/ui/static/lib/angular-tz-extensions/tz/data/factory b/awx/ui/client/lib/angular-tz-extensions/tz/data/factory similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/tz/data/factory rename to awx/ui/client/lib/angular-tz-extensions/tz/data/factory diff --git a/awx/ui/static/lib/angular-tz-extensions/tz/data/iso3166.tab b/awx/ui/client/lib/angular-tz-extensions/tz/data/iso3166.tab similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/tz/data/iso3166.tab rename to awx/ui/client/lib/angular-tz-extensions/tz/data/iso3166.tab diff --git a/awx/ui/static/lib/angular-tz-extensions/tz/data/leapseconds b/awx/ui/client/lib/angular-tz-extensions/tz/data/leapseconds similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/tz/data/leapseconds rename to awx/ui/client/lib/angular-tz-extensions/tz/data/leapseconds diff --git a/awx/ui/static/lib/angular-tz-extensions/tz/data/northamerica b/awx/ui/client/lib/angular-tz-extensions/tz/data/northamerica similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/tz/data/northamerica rename to awx/ui/client/lib/angular-tz-extensions/tz/data/northamerica diff --git a/awx/ui/static/lib/angular-tz-extensions/tz/data/pacificnew b/awx/ui/client/lib/angular-tz-extensions/tz/data/pacificnew similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/tz/data/pacificnew rename to awx/ui/client/lib/angular-tz-extensions/tz/data/pacificnew diff --git a/awx/ui/static/lib/angular-tz-extensions/tz/data/solar87 b/awx/ui/client/lib/angular-tz-extensions/tz/data/solar87 similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/tz/data/solar87 rename to awx/ui/client/lib/angular-tz-extensions/tz/data/solar87 diff --git a/awx/ui/static/lib/angular-tz-extensions/tz/data/solar88 b/awx/ui/client/lib/angular-tz-extensions/tz/data/solar88 similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/tz/data/solar88 rename to awx/ui/client/lib/angular-tz-extensions/tz/data/solar88 diff --git a/awx/ui/static/lib/angular-tz-extensions/tz/data/solar89 b/awx/ui/client/lib/angular-tz-extensions/tz/data/solar89 similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/tz/data/solar89 rename to awx/ui/client/lib/angular-tz-extensions/tz/data/solar89 diff --git a/awx/ui/static/lib/angular-tz-extensions/tz/data/southamerica b/awx/ui/client/lib/angular-tz-extensions/tz/data/southamerica similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/tz/data/southamerica rename to awx/ui/client/lib/angular-tz-extensions/tz/data/southamerica diff --git a/awx/ui/static/lib/angular-tz-extensions/tz/data/systemv b/awx/ui/client/lib/angular-tz-extensions/tz/data/systemv similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/tz/data/systemv rename to awx/ui/client/lib/angular-tz-extensions/tz/data/systemv diff --git a/awx/ui/static/lib/angular-tz-extensions/tz/data/yearistype.sh b/awx/ui/client/lib/angular-tz-extensions/tz/data/yearistype.sh similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/tz/data/yearistype.sh rename to awx/ui/client/lib/angular-tz-extensions/tz/data/yearistype.sh diff --git a/awx/ui/static/lib/angular-tz-extensions/tz/data/zone.tab b/awx/ui/client/lib/angular-tz-extensions/tz/data/zone.tab similarity index 100% rename from awx/ui/static/lib/angular-tz-extensions/tz/data/zone.tab rename to awx/ui/client/lib/angular-tz-extensions/tz/data/zone.tab diff --git a/awx/ui/static/lib/angular/.bower.json b/awx/ui/client/lib/angular/.bower.json similarity index 62% rename from awx/ui/static/lib/angular/.bower.json rename to awx/ui/client/lib/angular/.bower.json index 8824a203bc..3aafa83d22 100644 --- a/awx/ui/static/lib/angular/.bower.json +++ b/awx/ui/client/lib/angular/.bower.json @@ -1,16 +1,17 @@ { "name": "angular", - "version": "1.2.23", + "version": "1.4.3", "main": "./angular.js", + "ignore": [], "dependencies": {}, "homepage": "https://github.com/angular/bower-angular", - "_release": "1.2.23", + "_release": "1.4.3", "_resolution": { "type": "version", - "tag": "v1.2.23", - "commit": "53716560a512e598c32c5dbc70b2e41a793443e9" + "tag": "v1.4.3", + "commit": "dbd689e8103a6366e53e1f6786727f7c65ccfd75" }, "_source": "git://github.com/angular/bower-angular.git", - "_target": "1.2.23", + "_target": "~1.4.3", "_originalSource": "angular" } \ No newline at end of file diff --git a/awx/ui/static/lib/angular/README.md b/awx/ui/client/lib/angular/README.md similarity index 74% rename from awx/ui/static/lib/angular/README.md rename to awx/ui/client/lib/angular/README.md index fc0c09987e..d1bc0eddf4 100644 --- a/awx/ui/static/lib/angular/README.md +++ b/awx/ui/client/lib/angular/README.md @@ -1,18 +1,34 @@ -# bower-angular +# packaged angular -This repo is for distribution on `bower`. The source for this module is in the +This repo is for distribution on `npm` and `bower`. The source for this module is in the [main AngularJS repo](https://github.com/angular/angular.js). Please file issues and pull requests against that repo. ## Install -Install with `bower`: +You can install this package either with `npm` or with `bower`. + +### npm + +```shell +npm install angular +``` + +Then add a ` +``` + +Or `require('angular')` from your code. + +### bower ```shell bower install angular ``` -Add a ` @@ -27,7 +43,7 @@ Documentation is available on the The MIT License -Copyright (c) 2010-2012 Google, Inc. http://angularjs.org +Copyright (c) 2010-2015 Google, Inc. http://angularjs.org Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/awx/ui/client/lib/angular/angular-csp.css b/awx/ui/client/lib/angular/angular-csp.css new file mode 100644 index 0000000000..f3cd926cb3 --- /dev/null +++ b/awx/ui/client/lib/angular/angular-csp.css @@ -0,0 +1,21 @@ +/* Include this file in your html if you are using the CSP mode. */ + +@charset "UTF-8"; + +[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], +.ng-cloak, .x-ng-cloak, +.ng-hide:not(.ng-hide-animate) { + display: none !important; +} + +ng\:form { + display: block; +} + +.ng-animate-shim { + visibility:hidden; +} + +.ng-anchor { + position:absolute; +} diff --git a/awx/ui/static/lib/angular/angular.js b/awx/ui/client/lib/angular/angular.js similarity index 56% rename from awx/ui/static/lib/angular/angular.js rename to awx/ui/client/lib/angular/angular.js index 59f7a96768..f7442c0b03 100644 --- a/awx/ui/static/lib/angular/angular.js +++ b/awx/ui/client/lib/angular/angular.js @@ -1,6 +1,6 @@ /** - * @license AngularJS v1.2.23 - * (c) 2010-2014 Google, Inc. http://angularjs.org + * @license AngularJS v1.4.3 + * (c) 2010-2015 Google, Inc. http://angularjs.org * License: MIT */ (function(window, document, undefined) {'use strict'; @@ -30,138 +30,139 @@ * should all be static strings, not variables or general expressions. * * @param {string} module The namespace to use for the new minErr instance. + * @param {function} ErrorConstructor Custom error constructor to be instantiated when returning + * error from returned function, for cases when a particular type of error is useful. * @returns {function(code:string, template:string, ...templateArgs): Error} minErr instance */ -function minErr(module) { - return function () { - var code = arguments[0], - prefix = '[' + (module ? module + ':' : '') + code + '] ', - template = arguments[1], - templateArgs = arguments, - stringify = function (obj) { - if (typeof obj === 'function') { - return obj.toString().replace(/ \{[\s\S]*$/, ''); - } else if (typeof obj === 'undefined') { - return 'undefined'; - } else if (typeof obj !== 'string') { - return JSON.stringify(obj); - } - return obj; - }, - message, i; +function minErr(module, ErrorConstructor) { + ErrorConstructor = ErrorConstructor || Error; + return function() { + var SKIP_INDEXES = 2; - message = prefix + template.replace(/\{\d+\}/g, function (match) { - var index = +match.slice(1, -1), arg; + var templateArgs = arguments, + code = templateArgs[0], + message = '[' + (module ? module + ':' : '') + code + '] ', + template = templateArgs[1], + paramPrefix, i; - if (index + 2 < templateArgs.length) { - arg = templateArgs[index + 2]; - if (typeof arg === 'function') { - return arg.toString().replace(/ ?\{[\s\S]*$/, ''); - } else if (typeof arg === 'undefined') { - return 'undefined'; - } else if (typeof arg !== 'string') { - return toJson(arg); - } - return arg; + message += template.replace(/\{\d+\}/g, function(match) { + var index = +match.slice(1, -1), + shiftedIndex = index + SKIP_INDEXES; + + if (shiftedIndex < templateArgs.length) { + return toDebugString(templateArgs[shiftedIndex]); } + return match; }); - message = message + '\nhttp://errors.angularjs.org/1.2.23/' + + message += '\nhttp://errors.angularjs.org/1.4.3/' + (module ? module + '/' : '') + code; - for (i = 2; i < arguments.length; i++) { - message = message + (i == 2 ? '?' : '&') + 'p' + (i-2) + '=' + - encodeURIComponent(stringify(arguments[i])); + + for (i = SKIP_INDEXES, paramPrefix = '?'; i < templateArgs.length; i++, paramPrefix = '&') { + message += paramPrefix + 'p' + (i - SKIP_INDEXES) + '=' + + encodeURIComponent(toDebugString(templateArgs[i])); } - return new Error(message); + return new ErrorConstructor(message); }; } /* We need to tell jshint what variables are being exported */ /* global angular: true, - msie: true, - jqLite: true, - jQuery: true, - slice: true, - push: true, - toString: true, - ngMinErr: true, - angularModule: true, - nodeName_: true, - uid: true, - VALIDITY_STATE_PROPERTY: true, + msie: true, + jqLite: true, + jQuery: true, + slice: true, + splice: true, + push: true, + toString: true, + ngMinErr: true, + angularModule: true, + uid: true, + REGEX_STRING_REGEXP: true, + VALIDITY_STATE_PROPERTY: true, - lowercase: true, - uppercase: true, - manualLowercase: true, - manualUppercase: true, - nodeName_: true, - isArrayLike: true, - forEach: true, - sortedKeys: true, - forEachSorted: true, - reverseParams: true, - nextUid: true, - setHashKey: true, - extend: true, - int: true, - inherit: true, - noop: true, - identity: true, - valueFn: true, - isUndefined: true, - isDefined: true, - isObject: true, - isString: true, - isNumber: true, - isDate: true, - isArray: true, - isFunction: true, - isRegExp: true, - isWindow: true, - isScope: true, - isFile: true, - isBlob: true, - isBoolean: true, - isPromiseLike: true, - trim: true, - isElement: true, - makeMap: true, - map: true, - size: true, - includes: true, - indexOf: true, - arrayRemove: true, - isLeafNode: true, - copy: true, - shallowCopy: true, - equals: true, - csp: true, - concat: true, - sliceArgs: true, - bind: true, - toJsonReplacer: true, - toJson: true, - fromJson: true, - toBoolean: true, - startingTag: true, - tryDecodeURIComponent: true, - parseKeyValue: true, - toKeyValue: true, - encodeUriSegment: true, - encodeUriQuery: true, - angularInit: true, - bootstrap: true, - snake_case: true, - bindJQuery: true, - assertArg: true, - assertArgFn: true, - assertNotHasOwnProperty: true, - getter: true, - getBlockElements: true, - hasOwnProperty: true, + lowercase: true, + uppercase: true, + manualLowercase: true, + manualUppercase: true, + nodeName_: true, + isArrayLike: true, + forEach: true, + forEachSorted: true, + reverseParams: true, + nextUid: true, + setHashKey: true, + extend: true, + toInt: true, + inherit: true, + merge: true, + noop: true, + identity: true, + valueFn: true, + isUndefined: true, + isDefined: true, + isObject: true, + isBlankObject: true, + isString: true, + isNumber: true, + isDate: true, + isArray: true, + isFunction: true, + isRegExp: true, + isWindow: true, + isScope: true, + isFile: true, + isFormData: true, + isBlob: true, + isBoolean: true, + isPromiseLike: true, + trim: true, + escapeForRegexp: true, + isElement: true, + makeMap: true, + includes: true, + arrayRemove: true, + copy: true, + shallowCopy: true, + equals: true, + csp: true, + jq: true, + concat: true, + sliceArgs: true, + bind: true, + toJsonReplacer: true, + toJson: true, + fromJson: true, + convertTimezoneToLocal: true, + timezoneToOffset: true, + startingTag: true, + tryDecodeURIComponent: true, + parseKeyValue: true, + toKeyValue: true, + encodeUriSegment: true, + encodeUriQuery: true, + angularInit: true, + bootstrap: true, + getTestability: true, + snake_case: true, + bindJQuery: true, + assertArg: true, + assertArgFn: true, + assertNotHasOwnProperty: true, + getter: true, + getBlockNodes: true, + hasOwnProperty: true, + createMap: true, + + NODE_TYPE_ELEMENT: true, + NODE_TYPE_ATTRIBUTE: true, + NODE_TYPE_TEXT: true, + NODE_TYPE_COMMENT: true, + NODE_TYPE_DOCUMENT: true, + NODE_TYPE_DOCUMENT_FRAGMENT: true, */ //////////////////////////////////// @@ -181,6 +182,8 @@ function minErr(module) { *
*/ +var REGEX_STRING_REGEXP = /^\/(.+)\/([a-z]*)$/; + // The name of a form control's ValidityState property. // This is used so that it's possible for internal tests to create mock ValidityStates. var VALIDITY_STATE_PROPERTY = 'validity'; @@ -195,7 +198,7 @@ var VALIDITY_STATE_PROPERTY = 'validity'; * @param {string} string String to be converted to lowercase. * @returns {string} Lowercased string. */ -var lowercase = function(string){return isString(string) ? string.toLowerCase() : string;}; +var lowercase = function(string) {return isString(string) ? string.toLowerCase() : string;}; var hasOwnProperty = Object.prototype.hasOwnProperty; /** @@ -208,7 +211,7 @@ var hasOwnProperty = Object.prototype.hasOwnProperty; * @param {string} string String to be converted to uppercase. * @returns {string} Uppercased string. */ -var uppercase = function(string){return isString(string) ? string.toUpperCase() : string;}; +var uppercase = function(string) {return isString(string) ? string.toUpperCase() : string;}; var manualLowercase = function(s) { @@ -234,29 +237,27 @@ if ('i' !== 'I'.toLowerCase()) { } -var /** holds major version number for IE or NaN for real browsers */ - msie, +var + msie, // holds major version number for IE, or NaN if UA is not IE. jqLite, // delay binding since jQuery could be loaded after us. jQuery, // delay binding slice = [].slice, + splice = [].splice, push = [].push, toString = Object.prototype.toString, + getPrototypeOf = Object.getPrototypeOf, ngMinErr = minErr('ng'), /** @name angular */ angular = window.angular || (window.angular = {}), angularModule, - nodeName_, - uid = ['0', '0', '0']; + uid = 0; /** - * IE 11 changed the format of the UserAgent string. - * See http://msdn.microsoft.com/en-us/library/ms537503.aspx + * documentMode is an IE-only property + * http://msdn.microsoft.com/en-us/library/ie/cc196988(v=vs.85).aspx */ -msie = int((/msie (\d+)/.exec(lowercase(navigator.userAgent)) || [])[1]); -if (isNaN(msie)) { - msie = int((/trident\/.*; rv:(\d+)/.exec(lowercase(navigator.userAgent)) || [])[1]); -} +msie = document.documentMode; /** @@ -270,9 +271,11 @@ function isArrayLike(obj) { return false; } - var length = obj.length; + // Support: iOS 8.2 (not reproducible in simulator) + // "length" in obj used to prevent JIT error (gh-11508) + var length = "length" in Object(obj) && obj.length; - if (obj.nodeType === 1 && length) { + if (obj.nodeType === NODE_TYPE_ELEMENT && length) { return true; } @@ -288,12 +291,17 @@ function isArrayLike(obj) { * * @description * Invokes the `iterator` function once for each item in `obj` collection, which can be either an - * object or an array. The `iterator` function is invoked with `iterator(value, key)`, where `value` - * is the value of an object property or an array element and `key` is the object property key or - * array element index. Specifying a `context` for the function is optional. + * object or an array. The `iterator` function is invoked with `iterator(value, key, obj)`, where `value` + * is the value of an object property or an array element, `key` is the object property key or + * array element index and obj is the `obj` itself. Specifying a `context` for the function is optional. * * It is worth noting that `.forEach` does not iterate over inherited properties because it filters * using the `hasOwnProperty` method. + * + * Unlike ES262's + * [Array.prototype.forEach](http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.18), + * Providing 'undefined' or 'null' values for `obj` will not throw a TypeError, but rather just + * return the value provided. * ```js var values = {name: 'misko', gender: 'male'}; @@ -309,27 +317,44 @@ function isArrayLike(obj) { * @param {Object=} context Object to become context (`this`) for the iterator function. * @returns {Object|Array} Reference to `obj`. */ + function forEach(obj, iterator, context) { - var key; + var key, length; if (obj) { if (isFunction(obj)) { for (key in obj) { // Need to check if hasOwnProperty exists, // as on IE8 the result of querySelectorAll is an object without a hasOwnProperty function if (key != 'prototype' && key != 'length' && key != 'name' && (!obj.hasOwnProperty || obj.hasOwnProperty(key))) { - iterator.call(context, obj[key], key); + iterator.call(context, obj[key], key, obj); } } } else if (isArray(obj) || isArrayLike(obj)) { - for (key = 0; key < obj.length; key++) { - iterator.call(context, obj[key], key); + var isPrimitive = typeof obj !== 'object'; + for (key = 0, length = obj.length; key < length; key++) { + if (isPrimitive || key in obj) { + iterator.call(context, obj[key], key, obj); + } } } else if (obj.forEach && obj.forEach !== forEach) { - obj.forEach(iterator, context); - } else { + obj.forEach(iterator, context, obj); + } else if (isBlankObject(obj)) { + // createMap() fast path --- Safe to avoid hasOwnProperty check because prototype chain is empty + for (key in obj) { + iterator.call(context, obj[key], key, obj); + } + } else if (typeof obj.hasOwnProperty === 'function') { + // Slow path for objects inheriting Object.prototype, hasOwnProperty check needed for (key in obj) { if (obj.hasOwnProperty(key)) { - iterator.call(context, obj[key], key); + iterator.call(context, obj[key], key, obj); + } + } + } else { + // Slow path for objects which do not have a method `hasOwnProperty` + for (key in obj) { + if (hasOwnProperty.call(obj, key)) { + iterator.call(context, obj[key], key, obj); } } } @@ -337,19 +362,9 @@ function forEach(obj, iterator, context) { return obj; } -function sortedKeys(obj) { - var keys = []; - for (var key in obj) { - if (obj.hasOwnProperty(key)) { - keys.push(key); - } - } - return keys.sort(); -} - function forEachSorted(obj, iterator, context) { - var keys = sortedKeys(obj); - for ( var i = 0; i < keys.length; i++) { + var keys = Object.keys(obj).sort(); + for (var i = 0; i < keys.length; i++) { iterator.call(context, obj[keys[i]], keys[i]); } return keys; @@ -366,33 +381,17 @@ function reverseParams(iteratorFn) { } /** - * A consistent way of creating unique IDs in angular. The ID is a sequence of alpha numeric - * characters such as '012ABC'. The reason why we are not using simply a number counter is that - * the number string gets longer over time, and it can also overflow, where as the nextId - * will grow much slower, it is a string, and it will never overflow. + * A consistent way of creating unique IDs in angular. * - * @returns {string} an unique alpha-numeric string + * Using simple numbers allows us to generate 28.6 million unique ids per second for 10 years before + * we hit number precision issues in JavaScript. + * + * Math.pow(2,53) / 60 / 60 / 24 / 365 / 10 = 28.6M + * + * @returns {number} an unique alpha-numeric string */ function nextUid() { - var index = uid.length; - var digit; - - while(index) { - index--; - digit = uid[index].charCodeAt(0); - if (digit == 57 /*'9'*/) { - uid[index] = 'A'; - return uid.join(''); - } - if (digit == 90 /*'Z'*/) { - uid[index] = '0'; - } else { - uid[index] = String.fromCharCode(digit + 1); - return uid.join(''); - } - } - uid.unshift('0'); - return uid.join(''); + return ++uid; } @@ -404,12 +403,40 @@ function nextUid() { function setHashKey(obj, h) { if (h) { obj.$$hashKey = h; - } - else { + } else { delete obj.$$hashKey; } } + +function baseExtend(dst, objs, deep) { + var h = dst.$$hashKey; + + for (var i = 0, ii = objs.length; i < ii; ++i) { + var obj = objs[i]; + if (!isObject(obj) && !isFunction(obj)) continue; + var keys = Object.keys(obj); + for (var j = 0, jj = keys.length; j < jj; j++) { + var key = keys[j]; + var src = obj[key]; + + if (deep && isObject(src)) { + if (isDate(src)) { + dst[key] = new Date(src.valueOf()); + } else { + if (!isObject(dst[key])) dst[key] = isArray(src) ? [] : {}; + baseExtend(dst[key], [src], true); + } + } else { + dst[key] = src; + } + } + } + + setHashKey(dst, h); + return dst; +} + /** * @ngdoc function * @name angular.extend @@ -417,34 +444,53 @@ function setHashKey(obj, h) { * @kind function * * @description - * Extends the destination object `dst` by copying all of the properties from the `src` object(s) - * to `dst`. You can specify multiple `src` objects. + * Extends the destination object `dst` by copying own enumerable properties from the `src` object(s) + * to `dst`. You can specify multiple `src` objects. If you want to preserve original objects, you can do so + * by passing an empty object as the target: `var object = angular.extend({}, object1, object2)`. + * + * **Note:** Keep in mind that `angular.extend` does not support recursive merge (deep copy). Use + * {@link angular.merge} for this. * * @param {Object} dst Destination object. * @param {...Object} src Source object(s). * @returns {Object} Reference to `dst`. */ function extend(dst) { - var h = dst.$$hashKey; - forEach(arguments, function(obj) { - if (obj !== dst) { - forEach(obj, function(value, key) { - dst[key] = value; - }); - } - }); - - setHashKey(dst,h); - return dst; + return baseExtend(dst, slice.call(arguments, 1), false); } -function int(str) { + +/** +* @ngdoc function +* @name angular.merge +* @module ng +* @kind function +* +* @description +* Deeply extends the destination object `dst` by copying own enumerable properties from the `src` object(s) +* to `dst`. You can specify multiple `src` objects. If you want to preserve original objects, you can do so +* by passing an empty object as the target: `var object = angular.merge({}, object1, object2)`. +* +* Unlike {@link angular.extend extend()}, `merge()` recursively descends into object properties of source +* objects, performing a deep copy. +* +* @param {Object} dst Destination object. +* @param {...Object} src Source object(s). +* @returns {Object} Reference to `dst`. +*/ +function merge(dst) { + return baseExtend(dst, slice.call(arguments, 1), true); +} + + + +function toInt(str) { return parseInt(str, 10); } function inherit(parent, extra) { - return extend(new (extend(function() {}, {prototype:parent}))(), extra); + return extend(Object.create(parent), extra); } /** @@ -482,6 +528,8 @@ noop.$inject = []; return (transformationFn || angular.identity)(value); }; ``` + * @param {*} value to be returned. + * @returns {*} the value passed in. */ function identity($) {return $;} identity.$inject = []; @@ -489,6 +537,11 @@ identity.$inject = []; function valueFn(value) {return function() {return value;};} +function hasCustomToString(obj) { + return isFunction(obj.toString) && obj.toString !== Object.prototype.toString; +} + + /** * @ngdoc function * @name angular.isUndefined @@ -501,7 +554,7 @@ function valueFn(value) {return function() {return value;};} * @param {*} value Reference to check. * @returns {boolean} True if `value` is undefined. */ -function isUndefined(value){return typeof value === 'undefined';} +function isUndefined(value) {return typeof value === 'undefined';} /** @@ -516,7 +569,7 @@ function isUndefined(value){return typeof value === 'undefined';} * @param {*} value Reference to check. * @returns {boolean} True if `value` is defined. */ -function isDefined(value){return typeof value !== 'undefined';} +function isDefined(value) {return typeof value !== 'undefined';} /** @@ -532,7 +585,20 @@ function isDefined(value){return typeof value !== 'undefined';} * @param {*} value Reference to check. * @returns {boolean} True if `value` is an `Object` but not `null`. */ -function isObject(value){return value != null && typeof value === 'object';} +function isObject(value) { + // http://jsperf.com/isobject4 + return value !== null && typeof value === 'object'; +} + + +/** + * Determine if a value is an object with a null prototype + * + * @returns {boolean} True if `value` is an `Object` with a null prototype + */ +function isBlankObject(value) { + return value !== null && typeof value === 'object' && !getPrototypeOf(value); +} /** @@ -547,7 +613,7 @@ function isObject(value){return value != null && typeof value === 'object';} * @param {*} value Reference to check. * @returns {boolean} True if `value` is a `String`. */ -function isString(value){return typeof value === 'string';} +function isString(value) {return typeof value === 'string';} /** @@ -559,10 +625,16 @@ function isString(value){return typeof value === 'string';} * @description * Determines if a reference is a `Number`. * + * This includes the "special" numbers `NaN`, `+Infinity` and `-Infinity`. + * + * If you wish to exclude these then you can use the native + * [`isFinite'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isFinite) + * method. + * * @param {*} value Reference to check. * @returns {boolean} True if `value` is a `Number`. */ -function isNumber(value){return typeof value === 'number';} +function isNumber(value) {return typeof value === 'number';} /** @@ -594,14 +666,7 @@ function isDate(value) { * @param {*} value Reference to check. * @returns {boolean} True if `value` is an `Array`. */ -var isArray = (function() { - if (!isFunction(Array.isArray)) { - return function(value) { - return toString.call(value) === '[object Array]'; - }; - } - return Array.isArray; -})(); +var isArray = Array.isArray; /** * @ngdoc function @@ -615,7 +680,7 @@ var isArray = (function() { * @param {*} value Reference to check. * @returns {boolean} True if `value` is a `Function`. */ -function isFunction(value){return typeof value === 'function';} +function isFunction(value) {return typeof value === 'function';} /** @@ -638,7 +703,7 @@ function isRegExp(value) { * @returns {boolean} True if `obj` is a window obj. */ function isWindow(obj) { - return obj && obj.document && obj.location && obj.alert && obj.setInterval; + return obj && obj.window === obj; } @@ -652,6 +717,11 @@ function isFile(obj) { } +function isFormData(obj) { + return toString.call(obj) === '[object FormData]'; +} + + function isBlob(obj) { return toString.call(obj) === '[object Blob]'; } @@ -667,19 +737,23 @@ function isPromiseLike(obj) { } -var trim = (function() { - // native trim is way faster: http://jsperf.com/angular-trim-test - // but IE doesn't have it... :-( - // TODO: we should move this into IE/ES5 polyfill - if (!String.prototype.trim) { - return function(value) { - return isString(value) ? value.replace(/^\s\s*/, '').replace(/\s\s*$/, '') : value; - }; - } - return function(value) { - return isString(value) ? value.trim() : value; - }; -})(); +var TYPED_ARRAY_REGEXP = /^\[object (Uint8(Clamped)?)|(Uint16)|(Uint32)|(Int8)|(Int16)|(Int32)|(Float(32)|(64))Array\]$/; +function isTypedArray(value) { + return TYPED_ARRAY_REGEXP.test(toString.call(value)); +} + + +var trim = function(value) { + return isString(value) ? value.trim() : value; +}; + +// Copied from: +// http://docs.closure-library.googlecode.com/git/local_closure_goog_string_string.js.source.html#line1021 +// Prereq: s is a string. +var escapeForRegexp = function(s) { + return s.replace(/([-()\[\]{}+?*.$\^|,:#=0) + var index = array.indexOf(value); + if (index >= 0) { array.splice(index, 1); - return value; -} - -function isLeafNode (node) { - if (node) { - switch (node.nodeName) { - case "OPTION": - case "PRE": - case "TITLE": - return true; - } } - return false; + return index; } /** @@ -803,7 +813,7 @@ function isLeafNode (node) { * Creates a deep copy of `source`, which should be an object or an array. * * * If no destination is supplied, a copy of the object or array is created. - * * If a destination is provided, all of its elements (for array) or properties (for objects) + * * If a destination is provided, all of its elements (for arrays) or properties (for objects) * are deleted and then all elements/properties from the source are copied to it. * * If `source` is not an object or array (inc. `null` and `undefined`), `source` is returned. * * If `source` is identical to 'destination' an exception will be thrown. @@ -856,19 +866,40 @@ function copy(source, destination, stackSource, stackDest) { throw ngMinErr('cpws', "Can't copy! Making copies of Window or Scope instances is not supported."); } + if (isTypedArray(destination)) { + throw ngMinErr('cpta', + "Can't copy! TypedArray destination cannot be mutated."); + } if (!destination) { destination = source; - if (source) { + if (isObject(source)) { + var index; + if (stackSource && (index = stackSource.indexOf(source)) !== -1) { + return stackDest[index]; + } + + // TypedArray, Date and RegExp have specific copy functionality and must be + // pushed onto the stack before returning. + // Array and other objects create the base object and recurse to copy child + // objects. The array/object will be pushed onto the stack when recursed. if (isArray(source)) { - destination = copy(source, [], stackSource, stackDest); + return copy(source, [], stackSource, stackDest); + } else if (isTypedArray(source)) { + destination = new source.constructor(source); } else if (isDate(source)) { destination = new Date(source.getTime()); } else if (isRegExp(source)) { destination = new RegExp(source.source, source.toString().match(/[^\/]*$/)[0]); destination.lastIndex = source.lastIndex; - } else if (isObject(source)) { - destination = copy(source, {}, stackSource, stackDest); + } else { + var emptyObject = Object.create(getPrototypeOf(source)); + return copy(source, emptyObject, stackSource, stackDest); + } + + if (stackDest) { + stackSource.push(source); + stackDest.push(destination); } } } else { @@ -879,23 +910,15 @@ function copy(source, destination, stackSource, stackDest) { stackDest = stackDest || []; if (isObject(source)) { - var index = indexOf(stackSource, source); - if (index !== -1) return stackDest[index]; - stackSource.push(source); stackDest.push(destination); } - var result; + var result, key; if (isArray(source)) { destination.length = 0; - for ( var i = 0; i < source.length; i++) { - result = copy(source[i], null, stackSource, stackDest); - if (isObject(source[i])) { - stackSource.push(source[i]); - stackDest.push(result); - } - destination.push(result); + for (var i = 0; i < source.length; i++) { + destination.push(copy(source[i], null, stackSource, stackDest)); } } else { var h = destination.$$hashKey; @@ -906,36 +929,49 @@ function copy(source, destination, stackSource, stackDest) { delete destination[key]; }); } - for ( var key in source) { - result = copy(source[key], null, stackSource, stackDest); - if (isObject(source[key])) { - stackSource.push(source[key]); - stackDest.push(result); + if (isBlankObject(source)) { + // createMap() fast path --- Safe to avoid hasOwnProperty check because prototype chain is empty + for (key in source) { + destination[key] = copy(source[key], null, stackSource, stackDest); + } + } else if (source && typeof source.hasOwnProperty === 'function') { + // Slow path, which must rely on hasOwnProperty + for (key in source) { + if (source.hasOwnProperty(key)) { + destination[key] = copy(source[key], null, stackSource, stackDest); + } + } + } else { + // Slowest path --- hasOwnProperty can't be called as a method + for (key in source) { + if (hasOwnProperty.call(source, key)) { + destination[key] = copy(source[key], null, stackSource, stackDest); + } } - destination[key] = result; } setHashKey(destination,h); } - } return destination; } /** - * Creates a shallow copy of an object, an array or a primitive + * Creates a shallow copy of an object, an array or a primitive. + * + * Assumes that there are no proto properties for objects. */ function shallowCopy(src, dst) { if (isArray(src)) { dst = dst || []; - for ( var i = 0; i < src.length; i++) { + for (var i = 0, ii = src.length; i < ii; i++) { dst[i] = src[i]; } } else if (isObject(src)) { dst = dst || {}; for (var key in src) { - if (hasOwnProperty.call(src, key) && !(key.charAt(0) === '$' && key.charAt(1) === '$')) { + if (!(key.charAt(0) === '$' && key.charAt(1) === '$')) { dst[key] = src[key]; } } @@ -984,26 +1020,27 @@ function equals(o1, o2) { if (isArray(o1)) { if (!isArray(o2)) return false; if ((length = o1.length) == o2.length) { - for(key=0; key + + ... + ... + + ``` + * @example + * This example shows how to use a jQuery based library of a different name. + * The library name must be available at the top most 'window'. + ```html + + + ... + ... + + ``` + */ +var jq = function() { + if (isDefined(jq.name_)) return jq.name_; + var el; + var i, ii = ngAttrPrefixes.length, prefix, name; + for (i = 0; i < ii; ++i) { + prefix = ngAttrPrefixes[i]; + if (el = document.querySelector('[' + prefix.replace(':', '\\:') + 'jq]')) { + name = el.getAttribute(prefix + 'jq'); + break; + } + } + return (jq.name_ = name); +}; function concat(array1, array2, index) { return array1.concat(slice.call(array2, index)); @@ -1070,7 +1158,7 @@ function bind(self, fn) { return curryArgs.length ? function() { return arguments.length - ? fn.apply(self, curryArgs.concat(slice.call(arguments, 0))) + ? fn.apply(self, concat(curryArgs, arguments, 0)) : fn.apply(self, curryArgs); } : function() { @@ -1088,7 +1176,7 @@ function bind(self, fn) { function toJsonReplacer(key, value) { var val = value; - if (typeof key === 'string' && key.charAt(0) === '$') { + if (typeof key === 'string' && key.charAt(0) === '$' && key.charAt(1) === '$') { val = undefined; } else if (isWindow(value)) { val = '$WINDOW'; @@ -1109,16 +1197,20 @@ function toJsonReplacer(key, value) { * @kind function * * @description - * Serializes input into a JSON-formatted string. Properties with leading $ characters will be + * Serializes input into a JSON-formatted string. Properties with leading $$ characters will be * stripped since angular uses this notation internally. * * @param {Object|Array|Date|string|number} obj Input to be serialized into JSON. - * @param {boolean=} pretty If set to true, the JSON output will contain newlines and whitespace. + * @param {boolean|number} [pretty=2] If set to true, the JSON output will contain newlines and whitespace. + * If set to an integer, the JSON output will contain that many spaces per indentation. * @returns {string|undefined} JSON-ified string representing `obj`. */ function toJson(obj, pretty) { if (typeof obj === 'undefined') return undefined; - return JSON.stringify(obj, toJsonReplacer, pretty ? ' ' : null); + if (!isNumber(pretty)) { + pretty = pretty ? 2 : null; + } + return JSON.stringify(obj, toJsonReplacer, pretty); } @@ -1132,7 +1224,7 @@ function toJson(obj, pretty) { * Deserializes a JSON string. * * @param {string} json JSON string to deserialize. - * @returns {Object|Array|string|number} Deserialized thingy. + * @returns {Object|Array|string|number} Deserialized JSON string. */ function fromJson(json) { return isString(json) @@ -1141,18 +1233,26 @@ function fromJson(json) { } -function toBoolean(value) { - if (typeof value === 'function') { - value = true; - } else if (value && value.length !== 0) { - var v = lowercase("" + value); - value = !(v == 'f' || v == '0' || v == 'false' || v == 'no' || v == 'n' || v == '[]'); - } else { - value = false; - } - return value; +function timezoneToOffset(timezone, fallback) { + var requestedTimezoneOffset = Date.parse('Jan 01, 1970 00:00:00 ' + timezone) / 60000; + return isNaN(requestedTimezoneOffset) ? fallback : requestedTimezoneOffset; } + +function addDateMinutes(date, minutes) { + date = new Date(date.getTime()); + date.setMinutes(date.getMinutes() + minutes); + return date; +} + + +function convertTimezoneToLocal(date, timezone, reverse) { + reverse = reverse ? -1 : 1; + var timezoneOffset = timezoneToOffset(timezone, date.getTimezoneOffset()); + return addDateMinutes(date, reverse * (timezoneOffset - date.getTimezoneOffset())); +} + + /** * @returns {string} Returns the string representation of the element. */ @@ -1162,16 +1262,14 @@ function startingTag(element) { // turns out IE does not let you set .html() on elements which // are not allowed to have children. So we just ignore it. element.empty(); - } catch(e) {} - // As Per DOM Standards - var TEXT_NODE = 3; + } catch (e) {} var elemHtml = jqLite('
').append(element).html(); try { - return element[0].nodeType === TEXT_NODE ? lowercase(elemHtml) : + return element[0].nodeType === NODE_TYPE_TEXT ? lowercase(elemHtml) : elemHtml. match(/^(<[^>]+>)/)[1]. replace(/^<([\w\-]+)/, function(match, nodeName) { return '<' + lowercase(nodeName); }); - } catch(e) { + } catch (e) { return lowercase(elemHtml); } @@ -1191,7 +1289,7 @@ function startingTag(element) { function tryDecodeURIComponent(value) { try { return decodeURIComponent(value); - } catch(e) { + } catch (e) { // Ignore any invalid uri component } } @@ -1204,14 +1302,14 @@ function tryDecodeURIComponent(value) { function parseKeyValue(/**string*/keyValue) { var obj = {}, key_value, key; forEach((keyValue || "").split('&'), function(keyValue) { - if ( keyValue ) { + if (keyValue) { key_value = keyValue.replace(/\+/g,'%20').split('='); key = tryDecodeURIComponent(key_value[0]); - if ( isDefined(key) ) { + if (isDefined(key)) { var val = isDefined(key_value[1]) ? tryDecodeURIComponent(key_value[1]) : true; if (!hasOwnProperty.call(obj, key)) { obj[key] = val; - } else if(isArray(obj[key])) { + } else if (isArray(obj[key])) { obj[key].push(val); } else { obj[key] = [obj[key],val]; @@ -1275,9 +1373,22 @@ function encodeUriQuery(val, pctEncodeSpaces) { replace(/%3A/gi, ':'). replace(/%24/g, '$'). replace(/%2C/gi, ','). + replace(/%3B/gi, ';'). replace(/%20/g, (pctEncodeSpaces ? '%20' : '+')); } +var ngAttrPrefixes = ['ng-', 'data-ng-', 'ng:', 'x-ng-']; + +function getNgAttribute(element, ngAttr) { + var attr, i, ii = ngAttrPrefixes.length; + for (i = 0; i < ii; ++i) { + attr = ngAttrPrefixes[i] + ngAttr; + if (isString(attr = element.getAttribute(attr))) { + return attr; + } + } + return null; +} /** * @ngdoc directive @@ -1287,6 +1398,11 @@ function encodeUriQuery(val, pctEncodeSpaces) { * @element ANY * @param {angular.Module} ngApp an optional application * {@link angular.module module} name to load. + * @param {boolean=} ngStrictDi if this attribute is present on the app element, the injector will be + * created in "strict-di" mode. This means that the application will fail to invoke functions which + * do not use explicit function annotation (and are thus unsuitable for minification), as described + * in {@link guide/di the Dependency Injection guide}, and useful debugging info will assist in + * tracking down the root of these bugs. * * @description * @@ -1300,7 +1416,7 @@ function encodeUriQuery(val, pctEncodeSpaces) { * {@link angular.bootstrap} instead. AngularJS applications cannot be nested within each other. * * You can specify an **AngularJS module** to be used as the root module for the application. This - * module will be loaded into the {@link auto.$injector} when the application is bootstrapped and + * module will be loaded into the {@link auto.$injector} when the application is bootstrapped. It * should contain the application code needed or have dependencies on other modules that will * contain the code. See {@link angular.module} for more information. * @@ -1308,7 +1424,7 @@ function encodeUriQuery(val, pctEncodeSpaces) { * document would not be compiled, the `AppController` would not be instantiated and the `{{ a+b }}` * would not be resolved to `3`. * - * `ngApp` is the easiest, and most common, way to bootstrap an application. + * `ngApp` is the easiest, and most common way to bootstrap an application. * @@ -1324,48 +1440,109 @@ function encodeUriQuery(val, pctEncodeSpaces) { * + * Using `ngStrictDi`, you would see something like this: + * + + +
+
+ I can add: {{a}} + {{b}} = {{ a+b }} + +

This renders because the controller does not fail to + instantiate, by using explicit annotation style (see + script.js for details) +

+
+ +
+ Name:
+ Hello, {{name}}! + +

This renders because the controller does not fail to + instantiate, by using explicit annotation style + (see script.js for details) +

+
+ +
+ I can add: {{a}} + {{b}} = {{ a+b }} + +

The controller could not be instantiated, due to relying + on automatic function annotations (which are disabled in + strict mode). As such, the content of this section is not + interpolated, and there should be an error in your web console. +

+
+
+
+ + angular.module('ngAppStrictDemo', []) + // BadController will fail to instantiate, due to relying on automatic function annotation, + // rather than an explicit annotation + .controller('BadController', function($scope) { + $scope.a = 1; + $scope.b = 2; + }) + // Unlike BadController, GoodController1 and GoodController2 will not fail to be instantiated, + // due to using explicit annotations using the array style and $inject property, respectively. + .controller('GoodController1', ['$scope', function($scope) { + $scope.a = 1; + $scope.b = 2; + }]) + .controller('GoodController2', GoodController2); + function GoodController2($scope) { + $scope.name = "World"; + } + GoodController2.$inject = ['$scope']; + + + div[ng-controller] { + margin-bottom: 1em; + -webkit-border-radius: 4px; + border-radius: 4px; + border: 1px solid; + padding: .5em; + } + div[ng-controller^=Good] { + border-color: #d6e9c6; + background-color: #dff0d8; + color: #3c763d; + } + div[ng-controller^=Bad] { + border-color: #ebccd1; + background-color: #f2dede; + color: #a94442; + margin-bottom: 0; + } + +
*/ function angularInit(element, bootstrap) { - var elements = [element], - appElement, + var appElement, module, - names = ['ng:app', 'ng-app', 'x-ng-app', 'data-ng-app'], - NG_APP_CLASS_REGEXP = /\sng[:\-]app(:\s*([\w\d_]+);?)?\s/; + config = {}; - function append(element) { - element && elements.push(element); - } + // The element `element` has priority over any other element + forEach(ngAttrPrefixes, function(prefix) { + var name = prefix + 'app'; - forEach(names, function(name) { - names[name] = true; - append(document.getElementById(name)); - name = name.replace(':', '\\:'); - if (element.querySelectorAll) { - forEach(element.querySelectorAll('.' + name), append); - forEach(element.querySelectorAll('.' + name + '\\:'), append); - forEach(element.querySelectorAll('[' + name + ']'), append); + if (!appElement && element.hasAttribute && element.hasAttribute(name)) { + appElement = element; + module = element.getAttribute(name); } }); + forEach(ngAttrPrefixes, function(prefix) { + var name = prefix + 'app'; + var candidate; - forEach(elements, function(element) { - if (!appElement) { - var className = ' ' + element.className + ' '; - var match = NG_APP_CLASS_REGEXP.exec(className); - if (match) { - appElement = element; - module = (match[2] || '').replace(/\s+/g, ','); - } else { - forEach(element.attributes, function(attr) { - if (!appElement && names[attr.name]) { - appElement = element; - module = attr.value; - } - }); - } + if (!appElement && (candidate = element.querySelector('[' + name.replace(':', '\\:') + ']'))) { + appElement = candidate; + module = candidate.getAttribute(name); } }); if (appElement) { - bootstrap(appElement, module ? [module] : []); + config.strictDi = getNgAttribute(appElement, "strict-di") !== null; + bootstrap(appElement, module ? [module] : [], config); } } @@ -1378,7 +1555,7 @@ function angularInit(element, bootstrap) { * * See: {@link guide/bootstrap Bootstrap} * - * Note that ngScenario-based end-to-end tests cannot use this function to bootstrap manually. + * Note that Protractor based end-to-end tests cannot use this function to bootstrap manually. * They must use {@link ng.directive:ngApp ngApp}. * * Angular will detect if it has been loaded into the browser more than once and only allow the @@ -1386,44 +1563,45 @@ function angularInit(element, bootstrap) { * each of the subsequent scripts. This prevents strange results in applications, where otherwise * multiple instances of Angular try to work on the DOM. * - * - * - * - *
- * - * - * - * - * - * - * - *
{{heading}}
{{fill}}
+ * ```html + * + * + * + *
+ * {{greeting}} *
- * - * - * var app = angular.module('multi-bootstrap', []) * - * .controller('BrokenTable', function($scope) { - * $scope.headings = ['One', 'Two', 'Three']; - * $scope.fillings = [[1, 2, 3], ['A', 'B', 'C'], [7, 8, 9]]; - * }); - * - * - * it('should only insert one table cell for each item in $scope.fillings', function() { - * expect(element.all(by.css('td')).count()) - * .toBe(9); - * }); - * - * + * + * + * + * + * ``` * * @param {DOMElement} element DOM element which is the root of angular application. * @param {Array=} modules an array of modules to load into the application. * Each item in the array should be the name of a predefined module or a (DI annotated) - * function that will be invoked by the injector as a run block. + * function that will be invoked by the injector as a `config` block. * See: {@link angular.module modules} + * @param {Object=} config an object for defining configuration options for the application. The + * following keys are supported: + * + * * `strictDi` - disable automatic function annotation for the application. This is meant to + * assist in finding bugs which break minified code. Defaults to `false`. + * * @returns {auto.$injector} Returns the newly created injector for this app. */ -function bootstrap(element, modules) { +function bootstrap(element, modules, config) { + if (!isObject(config)) config = {}; + var defaultConfig = { + strictDi: false + }; + config = extend(defaultConfig, config); var doBootstrap = function() { element = jqLite(element); @@ -1440,10 +1618,18 @@ function bootstrap(element, modules) { modules.unshift(['$provide', function($provide) { $provide.value('$rootElement', element); }]); + + if (config.debugInfoEnabled) { + // Pushing so that this overrides `debugInfoEnabled` setting defined in user's `modules`. + modules.push(['$compileProvider', function($compileProvider) { + $compileProvider.debugInfoEnabled(true); + }]); + } + modules.unshift('ng'); - var injector = createInjector(modules); - injector.invoke(['$rootScope', '$rootElement', '$compile', '$injector', '$animate', - function(scope, element, compile, injector, animate) { + var injector = createInjector(modules, config.strictDi); + injector.invoke(['$rootScope', '$rootElement', '$compile', '$injector', + function bootstrapApply(scope, element, compile, injector) { scope.$apply(function() { element.data('$injector', injector); compile(element)(scope); @@ -1453,8 +1639,14 @@ function bootstrap(element, modules) { return injector; }; + var NG_ENABLE_DEBUG_INFO = /^NG_ENABLE_DEBUG_INFO!/; var NG_DEFER_BOOTSTRAP = /^NG_DEFER_BOOTSTRAP!/; + if (window && NG_ENABLE_DEBUG_INFO.test(window.name)) { + config.debugInfoEnabled = true; + window.name = window.name.replace(NG_ENABLE_DEBUG_INFO, ''); + } + if (window && !NG_DEFER_BOOTSTRAP.test(window.name)) { return doBootstrap(); } @@ -1464,8 +1656,44 @@ function bootstrap(element, modules) { forEach(extraModules, function(module) { modules.push(module); }); - doBootstrap(); + return doBootstrap(); }; + + if (isFunction(angular.resumeDeferredBootstrap)) { + angular.resumeDeferredBootstrap(); + } +} + +/** + * @ngdoc function + * @name angular.reloadWithDebugInfo + * @module ng + * @description + * Use this function to reload the current application with debug information turned on. + * This takes precedence over a call to `$compileProvider.debugInfoEnabled(false)`. + * + * See {@link ng.$compileProvider#debugInfoEnabled} for more. + */ +function reloadWithDebugInfo() { + window.name = 'NG_ENABLE_DEBUG_INFO!' + window.name; + window.location.reload(); +} + +/** + * @name angular.getTestability + * @module ng + * @description + * Get the testability service for the instance of Angular on the given + * element. + * @param {DOMElement} element DOM element which is the root of angular application. + */ +function getTestability(rootElement) { + var injector = angular.element(rootElement).injector(); + if (!injector) { + throw ngMinErr('test', + 'no injector found for element argument to getTestability'); + } + return injector.get('$$testability'); } var SNAKE_CASE_REGEXP = /[A-Z]/g; @@ -1476,11 +1704,26 @@ function snake_case(name, separator) { }); } +var bindJQueryFired = false; +var skipDestroyOnNextJQueryCleanData; function bindJQuery() { + var originalCleanData; + + if (bindJQueryFired) { + return; + } + // bind to jQuery if present; - jQuery = window.jQuery; + var jqName = jq(); + jQuery = window.jQuery; // use default jQuery. + if (isDefined(jqName)) { // `ngJq` present + jQuery = jqName === null ? undefined : window[jqName]; // if empty; use jqLite. if not empty, use jQuery specified by `ngJq`. + } + // Use jQuery if it exists with proper functionality, otherwise default to us. - // Angular 1.2+ requires jQuery 1.7.1+ for on()/off() support. + // Angular 1.2+ requires jQuery 1.7+ for on()/off() support. + // Angular 1.3+ technically requires at least jQuery 2.1+ but it may work with older + // versions. It will not work for sure with jQuery <1.7, though. if (jQuery && jQuery.fn.on) { jqLite = jQuery; extend(jQuery.fn, { @@ -1490,15 +1733,33 @@ function bindJQuery() { injector: JQLitePrototype.injector, inheritedData: JQLitePrototype.inheritedData }); - // Method signature: - // jqLitePatchJQueryRemove(name, dispatchThis, filterElems, getterIfNoArguments) - jqLitePatchJQueryRemove('remove', true, true, false); - jqLitePatchJQueryRemove('empty', false, false, false); - jqLitePatchJQueryRemove('html', false, false, true); + + // All nodes removed from the DOM via various jQuery APIs like .remove() + // are passed through jQuery.cleanData. Monkey-patch this method to fire + // the $destroy event on all removed nodes. + originalCleanData = jQuery.cleanData; + jQuery.cleanData = function(elems) { + var events; + if (!skipDestroyOnNextJQueryCleanData) { + for (var i = 0, elem; (elem = elems[i]) != null; i++) { + events = jQuery._data(elem, "events"); + if (events && events.$destroy) { + jQuery(elem).triggerHandler('$destroy'); + } + } + } else { + skipDestroyOnNextJQueryCleanData = false; + } + originalCleanData(elems); + }; } else { jqLite = JQLite; } + angular.element = jqLite; + + // Prevent double-proxying. + bindJQueryFired = true; } /** @@ -1562,27 +1823,47 @@ function getter(obj, path, bindFnToScope) { /** * Return the DOM siblings between the first and last node in the given array. * @param {Array} array like object - * @returns {DOMElement} object containing the elements + * @returns {jqLite} jqLite collection containing the nodes */ -function getBlockElements(nodes) { - var startNode = nodes[0], - endNode = nodes[nodes.length - 1]; - if (startNode === endNode) { - return jqLite(startNode); - } - - var element = startNode; - var elements = [element]; +function getBlockNodes(nodes) { + // TODO(perf): just check if all items in `nodes` are siblings and if they are return the original + // collection, otherwise update the original collection. + var node = nodes[0]; + var endNode = nodes[nodes.length - 1]; + var blockNodes = [node]; do { - element = element.nextSibling; - if (!element) break; - elements.push(element); - } while (element !== endNode); + node = node.nextSibling; + if (!node) break; + blockNodes.push(node); + } while (node !== endNode); - return jqLite(elements); + return jqLite(blockNodes); } + +/** + * Creates a new object without a prototype. This object is useful for lookup without having to + * guard against prototypically inherited properties via hasOwnProperty. + * + * Related micro-benchmarks: + * - http://jsperf.com/object-create2 + * - http://jsperf.com/proto-map-lookup/2 + * - http://jsperf.com/for-in-vs-object-keys2 + * + * @returns {Object} + */ +function createMap() { + return Object.create(null); +} + +var NODE_TYPE_ELEMENT = 1; +var NODE_TYPE_ATTRIBUTE = 2; +var NODE_TYPE_TEXT = 3; +var NODE_TYPE_COMMENT = 8; +var NODE_TYPE_DOCUMENT = 9; +var NODE_TYPE_DOCUMENT_FRAGMENT = 11; + /** * @ngdoc type * @name angular.Module @@ -1682,15 +1963,19 @@ function setupModuleLoader(window) { /** @type {!Array.>} */ var invokeQueue = []; + /** @type {!Array.} */ + var configBlocks = []; + /** @type {!Array.} */ var runBlocks = []; - var config = invokeLater('$injector', 'invoke'); + var config = invokeLater('$injector', 'invoke', 'push', configBlocks); /** @type {angular.Module} */ var moduleInstance = { // Private state _invokeQueue: invokeQueue, + _configBlocks: configBlocks, _runBlocks: runBlocks, /** @@ -1725,7 +2010,7 @@ function setupModuleLoader(window) { * @description * See {@link auto.$provide#provider $provide.provider()}. */ - provider: invokeLater('$provide', 'provider'), + provider: invokeLaterAndSetModuleName('$provide', 'provider'), /** * @ngdoc method @@ -1736,7 +2021,7 @@ function setupModuleLoader(window) { * @description * See {@link auto.$provide#factory $provide.factory()}. */ - factory: invokeLater('$provide', 'factory'), + factory: invokeLaterAndSetModuleName('$provide', 'factory'), /** * @ngdoc method @@ -1747,7 +2032,7 @@ function setupModuleLoader(window) { * @description * See {@link auto.$provide#service $provide.service()}. */ - service: invokeLater('$provide', 'service'), + service: invokeLaterAndSetModuleName('$provide', 'service'), /** * @ngdoc method @@ -1772,6 +2057,18 @@ function setupModuleLoader(window) { */ constant: invokeLater('$provide', 'constant', 'unshift'), + /** + * @ngdoc method + * @name angular.Module#decorator + * @module ng + * @param {string} The name of the service to decorate. + * @param {Function} This function will be invoked when the service needs to be + * instantiated and should return the decorated service instance. + * @description + * See {@link auto.$provide#decorator $provide.decorator()}. + */ + decorator: invokeLaterAndSetModuleName('$provide', 'decorator'), + /** * @ngdoc method * @name angular.Module#animation @@ -1785,7 +2082,7 @@ function setupModuleLoader(window) { * * * Defines an animation hook that can be later used with - * {@link ngAnimate.$animate $animate} service and directives that use this service. + * {@link $animate $animate} service and directives that use this service. * * ```js * module.animation('.animation-name', function($inject1, $inject2) { @@ -1801,21 +2098,28 @@ function setupModuleLoader(window) { * }) * ``` * - * See {@link ngAnimate.$animateProvider#register $animateProvider.register()} and + * See {@link ng.$animateProvider#register $animateProvider.register()} and * {@link ngAnimate ngAnimate module} for more information. */ - animation: invokeLater('$animateProvider', 'register'), + animation: invokeLaterAndSetModuleName('$animateProvider', 'register'), /** * @ngdoc method * @name angular.Module#filter * @module ng - * @param {string} name Filter name. + * @param {string} name Filter name - this must be a valid angular expression identifier * @param {Function} filterFactory Factory function for creating new instance of filter. * @description * See {@link ng.$filterProvider#register $filterProvider.register()}. + * + *
+ * **Note:** Filter names must be valid angular {@link expression} identifiers, such as `uppercase` or `orderBy`. + * Names with special characters, such as hyphens and dots, are not allowed. If you wish to namespace + * your filters, then you can use capitalization (`myappSubsectionFilterx`) or underscores + * (`myapp_subsection_filterx`). + *
*/ - filter: invokeLater('$filterProvider', 'register'), + filter: invokeLaterAndSetModuleName('$filterProvider', 'register'), /** * @ngdoc method @@ -1827,7 +2131,7 @@ function setupModuleLoader(window) { * @description * See {@link ng.$controllerProvider#register $controllerProvider.register()}. */ - controller: invokeLater('$controllerProvider', 'register'), + controller: invokeLaterAndSetModuleName('$controllerProvider', 'register'), /** * @ngdoc method @@ -1840,7 +2144,7 @@ function setupModuleLoader(window) { * @description * See {@link ng.$compileProvider#directive $compileProvider.directive()}. */ - directive: invokeLater('$compileProvider', 'directive'), + directive: invokeLaterAndSetModuleName('$compileProvider', 'directive'), /** * @ngdoc method @@ -1851,7 +2155,7 @@ function setupModuleLoader(window) { * @description * Use this method to register work which needs to be performed on module loading. * For more about how to configure services, see - * {@link providers#providers_provider-recipe Provider Recipe}. + * {@link providers#provider-recipe Provider Recipe}. */ config: config, @@ -1875,7 +2179,7 @@ function setupModuleLoader(window) { config(configFn); } - return moduleInstance; + return moduleInstance; /** * @param {string} provider @@ -1883,9 +2187,23 @@ function setupModuleLoader(window) { * @param {String=} insertMethod * @returns {angular.Module} */ - function invokeLater(provider, method, insertMethod) { + function invokeLater(provider, method, insertMethod, queue) { + if (!queue) queue = invokeQueue; return function() { - invokeQueue[insertMethod || 'push']([provider, method, arguments]); + queue[insertMethod || 'push']([provider, method, arguments]); + return moduleInstance; + }; + } + + /** + * @param {string} provider + * @param {string} method + * @returns {angular.Module} + */ + function invokeLaterAndSetModuleName(provider, method) { + return function(recipeName, factoryFunction) { + if (factoryFunction && isFunction(factoryFunction)) factoryFunction.$$moduleName = name; + invokeQueue.push([provider, method, arguments]); return moduleInstance; }; } @@ -1895,80 +2213,124 @@ function setupModuleLoader(window) { } +/* global: toDebugString: true */ + +function serializeObject(obj) { + var seen = []; + + return JSON.stringify(obj, function(key, val) { + val = toJsonReplacer(key, val); + if (isObject(val)) { + + if (seen.indexOf(val) >= 0) return '<>'; + + seen.push(val); + } + return val; + }); +} + +function toDebugString(obj) { + if (typeof obj === 'function') { + return obj.toString().replace(/ \{[\s\S]*$/, ''); + } else if (typeof obj === 'undefined') { + return 'undefined'; + } else if (typeof obj !== 'string') { + return serializeObject(obj); + } + return obj; +} + /* global angularModule: true, version: true, $LocaleProvider, $CompileProvider, - htmlAnchorDirective, - inputDirective, - inputDirective, - formDirective, - scriptDirective, - selectDirective, - styleDirective, - optionDirective, - ngBindDirective, - ngBindHtmlDirective, - ngBindTemplateDirective, - ngClassDirective, - ngClassEvenDirective, - ngClassOddDirective, - ngCspDirective, - ngCloakDirective, - ngControllerDirective, - ngFormDirective, - ngHideDirective, - ngIfDirective, - ngIncludeDirective, - ngIncludeFillContentDirective, - ngInitDirective, - ngNonBindableDirective, - ngPluralizeDirective, - ngRepeatDirective, - ngShowDirective, - ngStyleDirective, - ngSwitchDirective, - ngSwitchWhenDirective, - ngSwitchDefaultDirective, - ngOptionsDirective, - ngTranscludeDirective, - ngModelDirective, - ngListDirective, - ngChangeDirective, - requiredDirective, - requiredDirective, - ngValueDirective, - ngAttributeAliasDirectives, - ngEventDirectives, + htmlAnchorDirective, + inputDirective, + inputDirective, + formDirective, + scriptDirective, + selectDirective, + styleDirective, + optionDirective, + ngBindDirective, + ngBindHtmlDirective, + ngBindTemplateDirective, + ngClassDirective, + ngClassEvenDirective, + ngClassOddDirective, + ngCspDirective, + ngCloakDirective, + ngControllerDirective, + ngFormDirective, + ngHideDirective, + ngIfDirective, + ngIncludeDirective, + ngIncludeFillContentDirective, + ngInitDirective, + ngNonBindableDirective, + ngPluralizeDirective, + ngRepeatDirective, + ngShowDirective, + ngStyleDirective, + ngSwitchDirective, + ngSwitchWhenDirective, + ngSwitchDefaultDirective, + ngOptionsDirective, + ngTranscludeDirective, + ngModelDirective, + ngListDirective, + ngChangeDirective, + patternDirective, + patternDirective, + requiredDirective, + requiredDirective, + minlengthDirective, + minlengthDirective, + maxlengthDirective, + maxlengthDirective, + ngValueDirective, + ngModelOptionsDirective, + ngAttributeAliasDirectives, + ngEventDirectives, - $AnchorScrollProvider, - $AnimateProvider, - $BrowserProvider, - $CacheFactoryProvider, - $ControllerProvider, - $DocumentProvider, - $ExceptionHandlerProvider, - $FilterProvider, - $InterpolateProvider, - $IntervalProvider, - $HttpProvider, - $HttpBackendProvider, - $LocationProvider, - $LogProvider, - $ParseProvider, - $RootScopeProvider, - $QProvider, - $$SanitizeUriProvider, - $SceProvider, - $SceDelegateProvider, - $SnifferProvider, - $TemplateCacheProvider, - $TimeoutProvider, - $$RAFProvider, - $$AsyncCallbackProvider, - $WindowProvider + $AnchorScrollProvider, + $AnimateProvider, + $$CoreAnimateQueueProvider, + $$CoreAnimateRunnerProvider, + $BrowserProvider, + $CacheFactoryProvider, + $ControllerProvider, + $DocumentProvider, + $ExceptionHandlerProvider, + $FilterProvider, + $InterpolateProvider, + $IntervalProvider, + $$HashMapProvider, + $HttpProvider, + $HttpParamSerializerProvider, + $HttpParamSerializerJQLikeProvider, + $HttpBackendProvider, + $LocationProvider, + $LogProvider, + $ParseProvider, + $RootScopeProvider, + $QProvider, + $$QProvider, + $$SanitizeUriProvider, + $SceProvider, + $SceDelegateProvider, + $SnifferProvider, + $TemplateCacheProvider, + $TemplateRequestProvider, + $$TestabilityProvider, + $TimeoutProvider, + $$RAFProvider, + $WindowProvider, + $$jqLiteProvider, + $$CookieReaderProvider */ @@ -1987,19 +2349,20 @@ function setupModuleLoader(window) { * - `codeName` – `{string}` – Code name of the release, such as "jiggling-armfat". */ var version = { - full: '1.2.23', // all of these placeholder strings will be replaced by grunt's + full: '1.4.3', // all of these placeholder strings will be replaced by grunt's major: 1, // package task - minor: 2, - dot: 23, - codeName: 'superficial-malady' + minor: 4, + dot: 3, + codeName: 'foam-acceleration' }; -function publishExternalAPI(angular){ +function publishExternalAPI(angular) { extend(angular, { 'bootstrap': bootstrap, 'copy': copy, 'extend': extend, + 'merge': merge, 'equals': equals, 'element': jqLite, 'forEach': forEach, @@ -2022,8 +2385,10 @@ function publishExternalAPI(angular){ 'lowercase': lowercase, 'uppercase': uppercase, 'callbacks': {counter: 0}, + 'getTestability': getTestability, '$$minErr': minErr, - '$$csp': csp + '$$csp': csp, + 'reloadWithDebugInfo': reloadWithDebugInfo }); angularModule = setupModuleLoader(window); @@ -2075,9 +2440,16 @@ function publishExternalAPI(angular){ ngModel: ngModelDirective, ngList: ngListDirective, ngChange: ngChangeDirective, + pattern: patternDirective, + ngPattern: patternDirective, required: requiredDirective, ngRequired: requiredDirective, - ngValue: ngValueDirective + minlength: minlengthDirective, + ngMinlength: minlengthDirective, + maxlength: maxlengthDirective, + ngMaxlength: maxlengthDirective, + ngValue: ngValueDirective, + ngModelOptions: ngModelOptionsDirective }). directive({ ngInclude: ngIncludeFillContentDirective @@ -2087,6 +2459,8 @@ function publishExternalAPI(angular){ $provide.provider({ $anchorScroll: $AnchorScrollProvider, $animate: $AnimateProvider, + $$animateQueue: $$CoreAnimateQueueProvider, + $$AnimateRunner: $$CoreAnimateRunnerProvider, $browser: $BrowserProvider, $cacheFactory: $CacheFactoryProvider, $controller: $ControllerProvider, @@ -2096,29 +2470,48 @@ function publishExternalAPI(angular){ $interpolate: $InterpolateProvider, $interval: $IntervalProvider, $http: $HttpProvider, + $httpParamSerializer: $HttpParamSerializerProvider, + $httpParamSerializerJQLike: $HttpParamSerializerJQLikeProvider, $httpBackend: $HttpBackendProvider, $location: $LocationProvider, $log: $LogProvider, $parse: $ParseProvider, $rootScope: $RootScopeProvider, $q: $QProvider, + $$q: $$QProvider, $sce: $SceProvider, $sceDelegate: $SceDelegateProvider, $sniffer: $SnifferProvider, $templateCache: $TemplateCacheProvider, + $templateRequest: $TemplateRequestProvider, + $$testability: $$TestabilityProvider, $timeout: $TimeoutProvider, $window: $WindowProvider, $$rAF: $$RAFProvider, - $$asyncCallback : $$AsyncCallbackProvider + $$jqLite: $$jqLiteProvider, + $$HashMap: $$HashMapProvider, + $$cookieReader: $$CookieReaderProvider }); } ]); } +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Any commits to this file should be reviewed with security in mind. * + * Changes to this file can potentially create security vulnerabilities. * + * An approval from 2 Core members with history of modifying * + * this file is required. * + * * + * Does the change somehow allow for arbitrary javascript to be executed? * + * Or allows for someone to change the prototype of built-in objects? * + * Or gives undesired access to variables likes document or window? * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + /* global JQLitePrototype: true, addEventListenerFn: true, removeEventListenerFn: true, - BOOLEAN_ATTR: true + BOOLEAN_ATTR: true, + ALIASED_ATTR: true, */ ////////////////////////////////// @@ -2142,7 +2535,7 @@ function publishExternalAPI(angular){ * Angular to manipulate the DOM in a cross-browser compatible way. **jqLite** implements only the most * commonly needed functionality with the goal of having a very small footprint.
* - * To use jQuery, simply load it before `DOMContentLoaded` event fired. + * To use `jQuery`, simply ensure it is loaded before the `angular.js` file. * *
**Note:** all element references in Angular are always wrapped with jQuery or * jqLite; they are never raw DOM references.
@@ -2153,13 +2546,14 @@ function publishExternalAPI(angular){ * - [`addClass()`](http://api.jquery.com/addClass/) * - [`after()`](http://api.jquery.com/after/) * - [`append()`](http://api.jquery.com/append/) - * - [`attr()`](http://api.jquery.com/attr/) + * - [`attr()`](http://api.jquery.com/attr/) - Does not support functions as parameters * - [`bind()`](http://api.jquery.com/bind/) - Does not support namespaces, selectors or eventData * - [`children()`](http://api.jquery.com/children/) - Does not support selectors * - [`clone()`](http://api.jquery.com/clone/) * - [`contents()`](http://api.jquery.com/contents/) - * - [`css()`](http://api.jquery.com/css/) + * - [`css()`](http://api.jquery.com/css/) - Only retrieves inline-styles, does not call `getComputedStyle()`. As a setter, does not convert numbers to strings or append 'px'. * - [`data()`](http://api.jquery.com/data/) + * - [`detach()`](http://api.jquery.com/detach/) * - [`empty()`](http://api.jquery.com/empty/) * - [`eq()`](http://api.jquery.com/eq/) * - [`find()`](http://api.jquery.com/find/) - Limited to lookups by tag name @@ -2200,10 +2594,12 @@ function publishExternalAPI(angular){ * `'ngModel'`). * - `injector()` - retrieves the injector of the current element or its parent. * - `scope()` - retrieves the {@link ng.$rootScope.Scope scope} of the current - * element or its parent. + * element or its parent. Requires {@link guide/production#disabling-debug-data Debug Data} to + * be enabled. * - `isolateScope()` - retrieves an isolate {@link ng.$rootScope.Scope scope} if one is attached directly to the * current element. This getter should be used only on elements that contain a directive which starts a new isolate * scope. Calling `scope()` on this element always returns the original non-isolate scope. + * Requires {@link guide/production#disabling-debug-data Debug Data} to be enabled. * - `inheritedData()` - same as `data()`, but walks up the DOM until a value is found or the top * parent element is reached. * @@ -2215,17 +2611,17 @@ JQLite.expando = 'ng339'; var jqCache = JQLite.cache = {}, jqId = 1, - addEventListenerFn = (window.document.addEventListener - ? function(element, type, fn) {element.addEventListener(type, fn, false);} - : function(element, type, fn) {element.attachEvent('on' + type, fn);}), - removeEventListenerFn = (window.document.removeEventListener - ? function(element, type, fn) {element.removeEventListener(type, fn, false); } - : function(element, type, fn) {element.detachEvent('on' + type, fn); }); + addEventListenerFn = function(element, type, fn) { + element.addEventListener(type, fn, false); + }, + removeEventListenerFn = function(element, type, fn) { + element.removeEventListener(type, fn, false); + }; /* * !!! This is an undocumented "private" function !!! */ -var jqData = JQLite._data = function(node) { +JQLite._data = function(node) { //jQuery always returns an object on cache miss return this.cache[node[this.expando]] || {}; }; @@ -2235,6 +2631,7 @@ function jqNextId() { return ++jqId; } var SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g; var MOZ_HACK_REGEXP = /^moz([A-Z])/; +var MOUSE_EVENT_MAP= { mouseleave: "mouseout", mouseenter: "mouseover"}; var jqLiteMinErr = minErr('jqLite'); /** @@ -2250,49 +2647,6 @@ function camelCase(name) { replace(MOZ_HACK_REGEXP, 'Moz$1'); } -///////////////////////////////////////////// -// jQuery mutation patch -// -// In conjunction with bindJQuery intercepts all jQuery's DOM destruction apis and fires a -// $destroy event on all DOM nodes being removed. -// -///////////////////////////////////////////// - -function jqLitePatchJQueryRemove(name, dispatchThis, filterElems, getterIfNoArguments) { - var originalJqFn = jQuery.fn[name]; - originalJqFn = originalJqFn.$original || originalJqFn; - removePatch.$original = originalJqFn; - jQuery.fn[name] = removePatch; - - function removePatch(param) { - // jshint -W040 - var list = filterElems && param ? [this.filter(param)] : [this], - fireEvent = dispatchThis, - set, setIndex, setLength, - element, childIndex, childLength, children; - - if (!getterIfNoArguments || param != null) { - while(list.length) { - set = list.shift(); - for(setIndex = 0, setLength = set.length; setIndex < setLength; setIndex++) { - element = jqLite(set[setIndex]); - if (fireEvent) { - element.triggerHandler('$destroy'); - } else { - fireEvent = !fireEvent; - } - for(childIndex = 0, childLength = (children = element.children()).length; - childIndex < childLength; - childIndex++) { - list.push(jQuery(children[childIndex])); - } - } - } - } - return originalJqFn.apply(this, arguments); - } -} - var SINGLE_TAG_REGEXP = /^<(\w+)\s*\/?>(?:<\/\1>|)$/; var HTML_REGEXP = /<|&#?\w+;/; var TAG_NAME_REGEXP = /<([\w:]+)/; @@ -2312,26 +2666,39 @@ wrapMap.optgroup = wrapMap.option; wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; wrapMap.th = wrapMap.td; + function jqLiteIsTextNode(html) { return !HTML_REGEXP.test(html); } +function jqLiteAcceptsData(node) { + // The window object can accept data but has no nodeType + // Otherwise we are only interested in elements (1) and documents (9) + var nodeType = node.nodeType; + return nodeType === NODE_TYPE_ELEMENT || !nodeType || nodeType === NODE_TYPE_DOCUMENT; +} + +function jqLiteHasData(node) { + for (var key in jqCache[node.ng339]) { + return true; + } + return false; +} + function jqLiteBuildFragment(html, context) { - var elem, tmp, tag, wrap, + var tmp, tag, wrap, fragment = context.createDocumentFragment(), - nodes = [], i, j, jj; + nodes = [], i; if (jqLiteIsTextNode(html)) { // Convert non-html into a text node nodes.push(context.createTextNode(html)); } else { - tmp = fragment.appendChild(context.createElement('div')); // Convert html into DOM nodes + tmp = tmp || fragment.appendChild(context.createElement("div")); tag = (TAG_NAME_REGEXP.exec(html) || ["", ""])[1].toLowerCase(); wrap = wrapMap[tag] || wrapMap._default; - tmp.innerHTML = '
 
' + - wrap[1] + html.replace(XHTML_TAG_REGEXP, "<$1>") + wrap[2]; - tmp.removeChild(tmp.firstChild); + tmp.innerHTML = wrap[1] + html.replace(XHTML_TAG_REGEXP, "<$1>") + wrap[2]; // Descend through wrappers to the right content i = wrap[0]; @@ -2339,7 +2706,7 @@ function jqLiteBuildFragment(html, context) { tmp = tmp.lastChild; } - for (j=0, jj=tmp.childNodes.length; j 0) { + return; + } } + + removeEventListenerFn(element, type, handle); + delete events[type]; }); } } function jqLiteRemoveData(element, name) { - var expandoId = element.ng339, - expandoStore = jqCache[expandoId]; + var expandoId = element.ng339; + var expandoStore = expandoId && jqCache[expandoId]; if (expandoStore) { if (name) { - delete jqCache[expandoId].data[name]; + delete expandoStore.data[name]; return; } if (expandoStore.handle) { - expandoStore.events.$destroy && expandoStore.handle({}, '$destroy'); + if (expandoStore.events.$destroy) { + expandoStore.handle({}, '$destroy'); + } jqLiteOff(element); } delete jqCache[expandoId]; @@ -2441,43 +2831,42 @@ function jqLiteRemoveData(element, name) { } } -function jqLiteExpandoStore(element, key, value) { - var expandoId = element.ng339, - expandoStore = jqCache[expandoId || -1]; - if (isDefined(value)) { - if (!expandoStore) { - element.ng339 = expandoId = jqNextId(); - expandoStore = jqCache[expandoId] = {}; - } - expandoStore[key] = value; - } else { - return expandoStore && expandoStore[key]; +function jqLiteExpandoStore(element, createIfNecessary) { + var expandoId = element.ng339, + expandoStore = expandoId && jqCache[expandoId]; + + if (createIfNecessary && !expandoStore) { + element.ng339 = expandoId = jqNextId(); + expandoStore = jqCache[expandoId] = {events: {}, data: {}, handle: undefined}; } + + return expandoStore; } + function jqLiteData(element, key, value) { - var data = jqLiteExpandoStore(element, 'data'), - isSetter = isDefined(value), - keyDefined = !isSetter && isDefined(key), - isSimpleGetter = keyDefined && !isObject(key); + if (jqLiteAcceptsData(element)) { - if (!data && !isSimpleGetter) { - jqLiteExpandoStore(element, 'data', data = {}); - } + var isSimpleSetter = isDefined(value); + var isSimpleGetter = !isSimpleSetter && key && !isObject(key); + var massGetter = !key; + var expandoStore = jqLiteExpandoStore(element, !isSimpleGetter); + var data = expandoStore && expandoStore.data; - if (isSetter) { - data[key] = value; - } else { - if (keyDefined) { - if (isSimpleGetter) { - // don't create data in this case. - return data && data[key]; - } else { - extend(data, key); - } + if (isSimpleSetter) { // data('key', value) + data[key] = value; } else { - return data; + if (massGetter) { // data() + return data; + } else { + if (isSimpleGetter) { // data('key') + // don't force creation of expandoStore if it doesn't exist yet + return data && data[key]; + } else { // mass-setter: data({key1: val1, key2: val2}) + extend(data, key); + } + } } } } @@ -2485,7 +2874,7 @@ function jqLiteData(element, key, value) { function jqLiteHasClass(element, selector) { if (!element.getAttribute) return false; return ((" " + (element.getAttribute('class') || '') + " ").replace(/[\n\t]/g, " "). - indexOf( " " + selector + " " ) > -1); + indexOf(" " + selector + " ") > -1); } function jqLiteRemoveClass(element, cssClasses) { @@ -2516,25 +2905,41 @@ function jqLiteAddClass(element, cssClasses) { } } + function jqLiteAddNodes(root, elements) { + // THIS CODE IS VERY HOT. Don't make changes without benchmarking. + if (elements) { - elements = (!elements.nodeName && isDefined(elements.length) && !isWindow(elements)) - ? elements - : [ elements ]; - for(var i=0; i < elements.length; i++) { - root.push(elements[i]); + + // if a Node (the most common case) + if (elements.nodeType) { + root[root.length++] = elements; + } else { + var length = elements.length; + + // if an Array or NodeList and not a Window + if (typeof length === 'number' && elements.window !== elements) { + if (length) { + for (var i = 0; i < length; i++) { + root[root.length++] = elements[i]; + } + } + } else { + root[root.length++] = elements; + } } } } + function jqLiteController(element, name) { - return jqLiteInheritedData(element, '$' + (name || 'ngController' ) + 'Controller'); + return jqLiteInheritedData(element, '$' + (name || 'ngController') + 'Controller'); } function jqLiteInheritedData(element, name, value) { // if element is the document object work with the html element instead // this makes $(document).scope() possible - if(element.nodeType == 9) { + if (element.nodeType == NODE_TYPE_DOCUMENT) { element = element.documentElement; } var names = isArray(name) ? name : [name]; @@ -2547,19 +2952,37 @@ function jqLiteInheritedData(element, name, value) { // If dealing with a document fragment node with a host element, and no parent, use the host // element as the parent. This enables directives within a Shadow DOM or polyfilled Shadow DOM // to lookup parent controllers. - element = element.parentNode || (element.nodeType === 11 && element.host); + element = element.parentNode || (element.nodeType === NODE_TYPE_DOCUMENT_FRAGMENT && element.host); } } function jqLiteEmpty(element) { - for (var i = 0, childNodes = element.childNodes; i < childNodes.length; i++) { - jqLiteDealoc(childNodes[i]); - } + jqLiteDealoc(element, true); while (element.firstChild) { element.removeChild(element.firstChild); } } +function jqLiteRemove(element, keepData) { + if (!keepData) jqLiteDealoc(element); + var parent = element.parentNode; + if (parent) parent.removeChild(element); +} + + +function jqLiteDocumentLoaded(action, win) { + win = win || window; + if (win.document.readyState === 'complete') { + // Force the action to be run async for consistent behaviour + // from the action's point of view + // i.e. it will definitely not be in a $apply + win.setTimeout(action); + } else { + // No need to unbind this handler as load is only ever called once + jqLite(win).on('load', action); + } +} + ////////////////////////////////////////// // Functions which are declared directly. ////////////////////////////////////////// @@ -2573,8 +2996,8 @@ var JQLitePrototype = JQLite.prototype = { fn(); } - // check if document already is loaded - if (document.readyState === 'complete'){ + // check if document is already loaded + if (document.readyState === 'complete') { setTimeout(trigger); } else { this.on('DOMContentLoaded', trigger); // works for modern browsers and IE9 @@ -2586,7 +3009,7 @@ var JQLitePrototype = JQLite.prototype = { }, toString: function() { var value = []; - forEach(this, function(e){ value.push('' + e);}); + forEach(this, function(e) { value.push('' + e);}); return '[' + value.join(', ') + ']'; }, @@ -2611,20 +3034,33 @@ forEach('multiple,selected,checked,disabled,readOnly,required,open'.split(','), }); var BOOLEAN_ELEMENTS = {}; forEach('input,select,option,textarea,button,form,details'.split(','), function(value) { - BOOLEAN_ELEMENTS[uppercase(value)] = true; + BOOLEAN_ELEMENTS[value] = true; }); +var ALIASED_ATTR = { + 'ngMinlength': 'minlength', + 'ngMaxlength': 'maxlength', + 'ngMin': 'min', + 'ngMax': 'max', + 'ngPattern': 'pattern' +}; function getBooleanAttrName(element, name) { // check dom last since we will most likely fail on name var booleanAttr = BOOLEAN_ATTR[name.toLowerCase()]; // booleanAttr is here twice to minimize DOM access - return booleanAttr && BOOLEAN_ELEMENTS[element.nodeName] && booleanAttr; + return booleanAttr && BOOLEAN_ELEMENTS[nodeName_(element)] && booleanAttr; +} + +function getAliasedAttrName(element, name) { + var nodeName = element.nodeName; + return (nodeName === 'INPUT' || nodeName === 'TEXTAREA') && ALIASED_ATTR[name]; } forEach({ data: jqLiteData, - removeData: jqLiteRemoveData + removeData: jqLiteRemoveData, + hasData: jqLiteHasData }, function(fn, name) { JQLite[name] = fn; }); @@ -2649,7 +3085,7 @@ forEach({ return jqLiteInheritedData(element, '$injector'); }, - removeAttr: function(element,name) { + removeAttr: function(element, name) { element.removeAttribute(name); }, @@ -2661,26 +3097,15 @@ forEach({ if (isDefined(value)) { element.style[name] = value; } else { - var val; - - if (msie <= 8) { - // this is some IE specific weirdness that jQuery 1.6.4 does not sure why - val = element.currentStyle && element.currentStyle[name]; - if (val === '') val = 'auto'; - } - - val = val || element.style[name]; - - if (msie <= 8) { - // jquery weirdness :-/ - val = (val === '') ? undefined : val; - } - - return val; + return element.style[name]; } }, - attr: function(element, name, value){ + attr: function(element, name, value) { + var nodeType = element.nodeType; + if (nodeType === NODE_TYPE_TEXT || nodeType === NODE_TYPE_ATTRIBUTE || nodeType === NODE_TYPE_COMMENT) { + return; + } var lowercasedName = lowercase(name); if (BOOLEAN_ATTR[lowercasedName]) { if (isDefined(value)) { @@ -2693,7 +3118,7 @@ forEach({ } } else { return (element[name] || - (element.attributes.getNamedItem(name)|| noop).specified) + (element.attributes.getNamedItem(name) || noop).specified) ? lowercasedName : undefined; } @@ -2717,31 +3142,23 @@ forEach({ }, text: (function() { - var NODE_TYPE_TEXT_PROPERTY = []; - if (msie < 9) { - NODE_TYPE_TEXT_PROPERTY[1] = 'innerText'; /** Element **/ - NODE_TYPE_TEXT_PROPERTY[3] = 'nodeValue'; /** Text **/ - } else { - NODE_TYPE_TEXT_PROPERTY[1] = /** Element **/ - NODE_TYPE_TEXT_PROPERTY[3] = 'textContent'; /** Text **/ - } getText.$dv = ''; return getText; function getText(element, value) { - var textProp = NODE_TYPE_TEXT_PROPERTY[element.nodeType]; if (isUndefined(value)) { - return textProp ? element[textProp] : ''; + var nodeType = element.nodeType; + return (nodeType === NODE_TYPE_ELEMENT || nodeType === NODE_TYPE_TEXT) ? element.textContent : ''; } - element[textProp] = value; + element.textContent = value; } })(), val: function(element, value) { if (isUndefined(value)) { - if (nodeName_(element) === 'SELECT' && element.multiple) { + if (element.multiple && nodeName_(element) === 'select') { var result = []; - forEach(element.options, function (option) { + forEach(element.options, function(option) { if (option.selected) { result.push(option.value || option.text); } @@ -2757,14 +3174,12 @@ forEach({ if (isUndefined(value)) { return element.innerHTML; } - for (var i = 0, childNodes = element.childNodes; i < childNodes.length; i++) { - jqLiteDealoc(childNodes[i]); - } + jqLiteDealoc(element, true); element.innerHTML = value; }, empty: jqLiteEmpty -}, function(fn, name){ +}, function(fn, name) { /** * Properties: writes return selection, reads return first value */ @@ -2816,57 +3231,50 @@ forEach({ }); function createEventHandler(element, events) { - var eventHandler = function (event, type) { - if (!event.preventDefault) { - event.preventDefault = function() { - event.returnValue = false; //ie - }; - } - - if (!event.stopPropagation) { - event.stopPropagation = function() { - event.cancelBubble = true; //ie - }; - } - - if (!event.target) { - event.target = event.srcElement || document; - } - - if (isUndefined(event.defaultPrevented)) { - var prevent = event.preventDefault; - event.preventDefault = function() { - event.defaultPrevented = true; - prevent.call(event); - }; - event.defaultPrevented = false; - } - + var eventHandler = function(event, type) { + // jQuery specific api event.isDefaultPrevented = function() { - return event.defaultPrevented || event.returnValue === false; + return event.defaultPrevented; + }; + + var eventFns = events[type || event.type]; + var eventFnsLength = eventFns ? eventFns.length : 0; + + if (!eventFnsLength) return; + + if (isUndefined(event.immediatePropagationStopped)) { + var originalStopImmediatePropagation = event.stopImmediatePropagation; + event.stopImmediatePropagation = function() { + event.immediatePropagationStopped = true; + + if (event.stopPropagation) { + event.stopPropagation(); + } + + if (originalStopImmediatePropagation) { + originalStopImmediatePropagation.call(event); + } + }; + } + + event.isImmediatePropagationStopped = function() { + return event.immediatePropagationStopped === true; }; // Copy event handlers in case event handlers array is modified during execution. - var eventHandlersCopy = shallowCopy(events[type || event.type] || []); + if ((eventFnsLength > 1)) { + eventFns = shallowCopy(eventFns); + } - forEach(eventHandlersCopy, function(fn) { - fn.call(element, event); - }); - - // Remove monkey-patched methods (IE), - // as they would cause memory leaks in IE8. - if (msie <= 8) { - // IE7/8 does not allow to delete property on native object - event.preventDefault = null; - event.stopPropagation = null; - event.isDefaultPrevented = null; - } else { - // It shouldn't affect normal browsers (native methods are defined on prototype). - delete event.preventDefault; - delete event.stopPropagation; - delete event.isDefaultPrevented; + for (var i = 0; i < eventFnsLength; i++) { + if (!event.isImmediatePropagationStopped()) { + eventFns[i].call(element, event); + } } }; + + // TODO: this is a hack for angularMocks/clearDataCache that makes it possible to deregister all + // events on `element` eventHandler.elem = element; return eventHandler; } @@ -2879,68 +3287,56 @@ function createEventHandler(element, events) { forEach({ removeData: jqLiteRemoveData, - dealoc: jqLiteDealoc, - - on: function onFn(element, type, fn, unsupported){ + on: function jqLiteOn(element, type, fn, unsupported) { if (isDefined(unsupported)) throw jqLiteMinErr('onargs', 'jqLite#on() does not support the `selector` or `eventData` parameters'); - var events = jqLiteExpandoStore(element, 'events'), - handle = jqLiteExpandoStore(element, 'handle'); + // Do not add event handlers to non-elements because they will not be cleaned up. + if (!jqLiteAcceptsData(element)) { + return; + } - if (!events) jqLiteExpandoStore(element, 'events', events = {}); - if (!handle) jqLiteExpandoStore(element, 'handle', handle = createEventHandler(element, events)); + var expandoStore = jqLiteExpandoStore(element, true); + var events = expandoStore.events; + var handle = expandoStore.handle; - forEach(type.split(' '), function(type){ + if (!handle) { + handle = expandoStore.handle = createEventHandler(element, events); + } + + // http://jsperf.com/string-indexof-vs-split + var types = type.indexOf(' ') >= 0 ? type.split(' ') : [type]; + var i = types.length; + + while (i--) { + type = types[i]; var eventFns = events[type]; if (!eventFns) { - if (type == 'mouseenter' || type == 'mouseleave') { - var contains = document.body.contains || document.body.compareDocumentPosition ? - function( a, b ) { - // jshint bitwise: false - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); - } : - function( a, b ) { - if ( b ) { - while ( (b = b.parentNode) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - events[type] = []; + events[type] = []; + if (type === 'mouseenter' || type === 'mouseleave') { // Refer to jQuery's implementation of mouseenter & mouseleave // Read about mouseenter and mouseleave: // http://www.quirksmode.org/js/events_mouse.html#link8 - var eventmap = { mouseleave : "mouseout", mouseenter : "mouseover"}; - onFn(element, eventmap[type], function(event) { + jqLiteOn(element, MOUSE_EVENT_MAP[type], function(event) { var target = this, related = event.relatedTarget; // For mousenter/leave call the handler if related is outside the target. // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || (related !== target && !contains(target, related)) ){ + if (!related || (related !== target && !target.contains(related))) { handle(event, type); } }); } else { - addEventListenerFn(element, type, handle); - events[type] = []; + if (type !== '$destroy') { + addEventListenerFn(element, type, handle); + } } eventFns = events[type]; } eventFns.push(fn); - }); + } }, off: jqLiteOff, @@ -2961,7 +3357,7 @@ forEach({ replaceWith: function(element, replaceNode) { var index, parent = element.parentNode; jqLiteDealoc(element); - forEach(new JQLite(replaceNode), function(node){ + forEach(new JQLite(replaceNode), function(node) { if (index) { parent.insertBefore(node, index.nextSibling); } else { @@ -2973,9 +3369,10 @@ forEach({ children: function(element) { var children = []; - forEach(element.childNodes, function(element){ - if (element.nodeType === 1) + forEach(element.childNodes, function(element) { + if (element.nodeType === NODE_TYPE_ELEMENT) { children.push(element); + } }); return children; }, @@ -2985,24 +3382,28 @@ forEach({ }, append: function(element, node) { - forEach(new JQLite(node), function(child){ - if (element.nodeType === 1 || element.nodeType === 11) { - element.appendChild(child); - } - }); + var nodeType = element.nodeType; + if (nodeType !== NODE_TYPE_ELEMENT && nodeType !== NODE_TYPE_DOCUMENT_FRAGMENT) return; + + node = new JQLite(node); + + for (var i = 0, ii = node.length; i < ii; i++) { + var child = node[i]; + element.appendChild(child); + } }, prepend: function(element, node) { - if (element.nodeType === 1) { + if (element.nodeType === NODE_TYPE_ELEMENT) { var index = element.firstChild; - forEach(new JQLite(node), function(child){ + forEach(new JQLite(node), function(child) { element.insertBefore(child, index); }); } }, wrap: function(element, wrapNode) { - wrapNode = jqLite(wrapNode)[0]; + wrapNode = jqLite(wrapNode).eq(0).clone()[0]; var parent = element.parentNode; if (parent) { parent.replaceChild(wrapNode, element); @@ -3010,18 +3411,21 @@ forEach({ wrapNode.appendChild(element); }, - remove: function(element) { - jqLiteDealoc(element); - var parent = element.parentNode; - if (parent) parent.removeChild(element); + remove: jqLiteRemove, + + detach: function(element) { + jqLiteRemove(element, true); }, after: function(element, newElement) { var index = element, parent = element.parentNode; - forEach(new JQLite(newElement), function(node){ + newElement = new JQLite(newElement); + + for (var i = 0, ii = newElement.length; i < ii; i++) { + var node = newElement[i]; parent.insertBefore(node, index.nextSibling); index = node; - }); + } }, addClass: jqLiteAddClass, @@ -3029,7 +3433,7 @@ forEach({ toggleClass: function(element, selector, condition) { if (selector) { - forEach(selector.split(' '), function(className){ + forEach(selector.split(' '), function(className) { var classCondition = condition; if (isUndefined(classCondition)) { classCondition = !jqLiteHasClass(element, className); @@ -3041,20 +3445,11 @@ forEach({ parent: function(element) { var parent = element.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; + return parent && parent.nodeType !== NODE_TYPE_DOCUMENT_FRAGMENT ? parent : null; }, next: function(element) { - if (element.nextElementSibling) { - return element.nextElementSibling; - } - - // IE8 doesn't have nextElementSibling - var elm = element.nextSibling; - while (elm != null && elm.nodeType !== 1) { - elm = elm.nextSibling; - } - return elm; + return element.nextElementSibling; }, find: function(element, selector) { @@ -3071,14 +3466,17 @@ forEach({ var dummyEvent, eventFnsCopy, handlerArgs; var eventName = event.type || event; - var eventFns = (jqLiteExpandoStore(element, 'events') || {})[eventName]; + var expandoStore = jqLiteExpandoStore(element); + var events = expandoStore && expandoStore.events; + var eventFns = events && events[eventName]; if (eventFns) { - // Create a dummy event to pass to the handlers dummyEvent = { preventDefault: function() { this.defaultPrevented = true; }, isDefaultPrevented: function() { return this.defaultPrevented === true; }, + stopImmediatePropagation: function() { this.immediatePropagationStopped = true; }, + isImmediatePropagationStopped: function() { return this.immediatePropagationStopped === true; }, stopPropagation: noop, type: eventName, target: element @@ -3094,18 +3492,20 @@ forEach({ handlerArgs = extraParameters ? [dummyEvent].concat(extraParameters) : [dummyEvent]; forEach(eventFnsCopy, function(fn) { - fn.apply(element, handlerArgs); + if (!dummyEvent.isImmediatePropagationStopped()) { + fn.apply(element, handlerArgs); + } }); - } } -}, function(fn, name){ +}, function(fn, name) { /** * chaining functions */ JQLite.prototype[name] = function(arg1, arg2, arg3) { var value; - for(var i=0; i < this.length; i++) { + + for (var i = 0, ii = this.length; i < ii; i++) { if (isUndefined(value)) { value = fn(this[i], arg1, arg2, arg3); if (isDefined(value)) { @@ -3124,6 +3524,27 @@ forEach({ JQLite.prototype.unbind = JQLite.prototype.off; }); + +// Provider for private $$jqLite service +function $$jqLiteProvider() { + this.$get = function $$jqLite() { + return extend(JQLite, { + hasClass: function(node, classes) { + if (node.attr) node = node[0]; + return jqLiteHasClass(node, classes); + }, + addClass: function(node, classes) { + if (node.attr) node = node[0]; + return jqLiteAddClass(node, classes); + }, + removeClass: function(node, classes) { + if (node.attr) node = node[0]; + return jqLiteRemoveClass(node, classes); + } + }); + }; +} + /** * Computes a hash of an 'obj'. * Hash of a: @@ -3137,21 +3558,23 @@ forEach({ * The resulting string key is in 'type:hashKey' format. */ function hashKey(obj, nextUidFn) { - var objType = typeof obj, - key; + var key = obj && obj.$$hashKey; - if (objType == 'function' || (objType == 'object' && obj !== null)) { - if (typeof (key = obj.$$hashKey) == 'function') { - // must invoke on object to keep the right this + if (key) { + if (typeof key === 'function') { key = obj.$$hashKey(); - } else if (key === undefined) { - key = obj.$$hashKey = (nextUidFn || nextUid)(); } - } else { - key = obj; + return key; } - return objType + ':' + key; + var objType = typeof obj; + if (objType == 'function' || (objType == 'object' && obj !== null)) { + key = obj.$$hashKey = objType + ':' + (nextUidFn || nextUid)(); + } else { + key = objType + ':' + obj; + } + + return key; } /** @@ -3195,6 +3618,12 @@ HashMap.prototype = { } }; +var $$HashMapProvider = [function() { + this.$get = [function() { + return HashMap; + }]; +}]; + /** * @ngdoc function * @module ng @@ -3202,13 +3631,14 @@ HashMap.prototype = { * @kind function * * @description - * Creates an injector function that can be used for retrieving services as well as for + * Creates an injector object that can be used for retrieving services as well as for * dependency injection (see {@link guide/di dependency injection}). * - * @param {Array.} modules A list of module functions or their aliases. See - * {@link angular.module}. The `ng` module must be explicitly added. - * @returns {function()} Injector function. See {@link auto.$injector $injector}. + * {@link angular.module}. The `ng` module must be explicitly added. + * @param {boolean=} [strictDi=false] Whether the injector should be in strict mode, which + * disallows argument name annotation inference. + * @returns {injector} Injector object. See {@link auto.$injector $injector}. * * @example * Typical usage @@ -3218,7 +3648,7 @@ HashMap.prototype = { * * // use the injector to kick off your application * // use the type inference to auto inject arguments, or use implicit injection - * $injector.invoke(function($rootScope, $compile, $document){ + * $injector.invoke(function($rootScope, $compile, $document) { * $compile($document)($rootScope); * $rootScope.$digest(); * }); @@ -3261,7 +3691,19 @@ var FN_ARG_SPLIT = /,/; var FN_ARG = /^\s*(_?)(\S+?)\1\s*$/; var STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg; var $injectorMinErr = minErr('$injector'); -function annotate(fn) { + +function anonFn(fn) { + // For anonymous functions, showing at the very least the function signature can help in + // debugging. + var fnText = fn.toString().replace(STRIP_COMMENTS, ''), + args = fnText.match(FN_ARGS); + if (args) { + return 'function(' + (args[1] || '').replace(/[\s\r\n]+/, ' ') + ')'; + } + return 'fn'; +} + +function annotate(fn, strictDi, name) { var $inject, fnText, argDecl, @@ -3271,10 +3713,17 @@ function annotate(fn) { if (!($inject = fn.$inject)) { $inject = []; if (fn.length) { + if (strictDi) { + if (!isString(name) || !name) { + name = fn.name || anonFn(fn); + } + throw $injectorMinErr('strictdi', + '{0} is not using explicit annotation and cannot be invoked in strict mode', name); + } fnText = fn.toString().replace(STRIP_COMMENTS, ''); argDecl = fnText.match(FN_ARGS); - forEach(argDecl[1].split(FN_ARG_SPLIT), function(arg){ - arg.replace(FN_ARG, function(all, underscore, name){ + forEach(argDecl[1].split(FN_ARG_SPLIT), function(arg) { + arg.replace(FN_ARG, function(all, underscore, name) { $inject.push(name); }); }); @@ -3296,7 +3745,6 @@ function annotate(fn) { /** * @ngdoc service * @name $injector - * @kind function * * @description * @@ -3309,9 +3757,9 @@ function annotate(fn) { * ```js * var $injector = angular.injector(); * expect($injector.get('$injector')).toBe($injector); - * expect($injector.invoke(function($injector){ + * expect($injector.invoke(function($injector) { * return $injector; - * }).toBe($injector); + * })).toBe($injector); * ``` * * # Injection Function Annotation @@ -3335,8 +3783,10 @@ function annotate(fn) { * ## Inference * * In JavaScript calling `toString()` on a function returns the function definition. The definition - * can then be parsed and the function arguments can be extracted. *NOTE:* This does not work with - * minification, and obfuscation tools since these tools change the argument names. + * can then be parsed and the function arguments can be extracted. This method of discovering + * annotations is disallowed when the injector is in strict mode. + * *NOTE:* This does not work with minification, and obfuscation tools since these tools change the + * argument names. * * ## `$inject` Annotation * By adding an `$inject` property onto a function the injection parameters can be specified. @@ -3353,6 +3803,7 @@ function annotate(fn) { * Return an instance of the service. * * @param {string} name The name of the instance to retrieve. + * @param {string=} caller An optional string to provide the origin of the function call for error messages. * @return {*} The instance. */ @@ -3363,8 +3814,8 @@ function annotate(fn) { * @description * Invoke the method and supply the method arguments from the `$injector`. * - * @param {!Function} fn The function to invoke. Function parameters are injected according to the - * {@link guide/di $inject Annotation} rules. + * @param {Function|Array.} fn The injectable function to invoke. Function parameters are + * injected according to the {@link guide/di $inject Annotation} rules. * @param {Object=} self The `this` for the invoked method. * @param {Object=} locals Optional object. If preset then any argument names are read from this * object first, before the `$injector` is consulted. @@ -3378,8 +3829,8 @@ function annotate(fn) { * @description * Allows the user to query if the particular service exists. * - * @param {string} Name of the service to query. - * @returns {boolean} returns true if injector has given service. + * @param {string} name Name of the service to query. + * @returns {boolean} `true` if injector has given service. */ /** @@ -3421,6 +3872,8 @@ function annotate(fn) { * expect(injector.annotate(MyController)).toEqual(['$scope', '$route']); * ``` * + * You can disallow this method by using strict injection mode. + * * This method does not work with code minification / obfuscation. For this reason the following * annotation strategies are supported. * @@ -3473,6 +3926,8 @@ function annotate(fn) { * @param {Function|Array.} fn Function for which dependent service names need to * be retrieved as described above. * + * @param {boolean=} [strictDi=false] Disallow argument name annotation inference. + * * @returns {Array.} The names of the services which the function requires. */ @@ -3627,8 +4082,8 @@ function annotate(fn) { * configure your service in a provider. * * @param {string} name The name of the instance. - * @param {function()} $getFn The $getFn for the instance creation. Internally this is a short hand - * for `$provide.provider(name, {$get: $getFn})`. + * @param {Function|Array.} $getFn The injectable $getFn for the instance creation. + * Internally this is a short hand for `$provide.provider(name, {$get: $getFn})`. * @returns {Object} registered provider instance * * @example @@ -3663,7 +4118,8 @@ function annotate(fn) { * as a type/class. * * @param {string} name The name of the instance. - * @param {Function} constructor A class (constructor function) that will be instantiated. + * @param {Function|Array.} constructor An injectable class (constructor function) + * that will be instantiated. * @returns {Object} registered provider instance * * @example @@ -3762,7 +4218,7 @@ function annotate(fn) { * object which replaces or wraps and delegates to the original service. * * @param {string} name The name of the service to decorate. - * @param {function()} decorator This function will be invoked when the service needs to be + * @param {Function|Array.} decorator This function will be invoked when the service needs to be * instantiated and should return the decorated service instance. The function is called using * the {@link auto.$injector#invoke injector.invoke} method and is therefore fully injectable. * Local injection arguments: @@ -3782,7 +4238,8 @@ function annotate(fn) { */ -function createInjector(modulesToLoad) { +function createInjector(modulesToLoad, strictDi) { + strictDi = (strictDi === true); var INSTANTIATING = {}, providerSuffix = 'Provider', path = [], @@ -3798,18 +4255,21 @@ function createInjector(modulesToLoad) { } }, providerInjector = (providerCache.$injector = - createInternalInjector(providerCache, function() { + createInternalInjector(providerCache, function(serviceName, caller) { + if (angular.isString(caller)) { + path.push(caller); + } throw $injectorMinErr('unpr', "Unknown provider: {0}", path.join(' <- ')); })), instanceCache = {}, instanceInjector = (instanceCache.$injector = - createInternalInjector(instanceCache, function(servicename) { - var provider = providerInjector.get(servicename + providerSuffix); - return instanceInjector.invoke(provider.$get, provider); + createInternalInjector(instanceCache, function(serviceName, caller) { + var provider = providerInjector.get(serviceName + providerSuffix, caller); + return instanceInjector.invoke(provider.$get, provider, undefined, serviceName); })); - forEach(loadModules(modulesToLoad), function(fn) { instanceInjector.invoke(fn || noop); }); + forEach(loadModules(modulesToLoad), function(fn) { if (fn) instanceInjector.invoke(fn); }); return instanceInjector; @@ -3838,7 +4298,21 @@ function createInjector(modulesToLoad) { return providerCache[name + providerSuffix] = provider_; } - function factory(name, factoryFn) { return provider(name, { $get: factoryFn }); } + function enforceReturnValue(name, factory) { + return function enforcedReturnValue() { + var result = instanceInjector.invoke(factory, this); + if (isUndefined(result)) { + throw $injectorMinErr('undef', "Provider '{0}' must return a value from $get factory method.", name); + } + return result; + }; + } + + function factory(name, factoryFn, enforce) { + return provider(name, { + $get: enforce !== false ? enforceReturnValue(name, factoryFn) : factoryFn + }); + } function service(name, constructor) { return factory(name, ['$injector', function($injector) { @@ -3846,7 +4320,7 @@ function createInjector(modulesToLoad) { }]); } - function value(name, val) { return factory(name, valueFn(val)); } + function value(name, val) { return factory(name, valueFn(val), false); } function constant(name, value) { assertNotHasOwnProperty(name, 'constant'); @@ -3867,23 +4341,28 @@ function createInjector(modulesToLoad) { //////////////////////////////////// // Module Loading //////////////////////////////////// - function loadModules(modulesToLoad){ - var runBlocks = [], moduleFn, invokeQueue, i, ii; + function loadModules(modulesToLoad) { + var runBlocks = [], moduleFn; forEach(modulesToLoad, function(module) { if (loadedModules.get(module)) return; loadedModules.put(module, true); + function runInvokeQueue(queue) { + var i, ii; + for (i = 0, ii = queue.length; i < ii; i++) { + var invokeArgs = queue[i], + provider = providerInjector.get(invokeArgs[0]); + + provider[invokeArgs[1]].apply(provider, invokeArgs[2]); + } + } + try { if (isString(module)) { moduleFn = angularModule(module); runBlocks = runBlocks.concat(loadModules(moduleFn.requires)).concat(moduleFn._runBlocks); - - for(invokeQueue = moduleFn._invokeQueue, i = 0, ii = invokeQueue.length; i < ii; i++) { - var invokeArgs = invokeQueue[i], - provider = providerInjector.get(invokeArgs[0]); - - provider[invokeArgs[1]].apply(provider, invokeArgs[2]); - } + runInvokeQueue(moduleFn._invokeQueue); + runInvokeQueue(moduleFn._configBlocks); } else if (isFunction(module)) { runBlocks.push(providerInjector.invoke(module)); } else if (isArray(module)) { @@ -3916,7 +4395,7 @@ function createInjector(modulesToLoad) { function createInternalInjector(cache, factory) { - function getService(serviceName) { + function getService(serviceName, caller) { if (cache.hasOwnProperty(serviceName)) { if (cache[serviceName] === INSTANTIATING) { throw $injectorMinErr('cdep', 'Circular dependency found: {0}', @@ -3927,7 +4406,7 @@ function createInjector(modulesToLoad) { try { path.unshift(serviceName); cache[serviceName] = INSTANTIATING; - return cache[serviceName] = factory(serviceName); + return cache[serviceName] = factory(serviceName, caller); } catch (err) { if (cache[serviceName] === INSTANTIATING) { delete cache[serviceName]; @@ -3939,13 +4418,18 @@ function createInjector(modulesToLoad) { } } - function invoke(fn, self, locals){ + function invoke(fn, self, locals, serviceName) { + if (typeof locals === 'string') { + serviceName = locals; + locals = null; + } + var args = [], - $inject = annotate(fn), + $inject = createInjector.$$annotate(fn, strictDi, serviceName), length, i, key; - for(i = 0, length = $inject.length; i < length; i++) { + for (i = 0, length = $inject.length; i < length; i++) { key = $inject[i]; if (typeof key !== 'string') { throw $injectorMinErr('itkn', @@ -3954,7 +4438,7 @@ function createInjector(modulesToLoad) { args.push( locals && locals.hasOwnProperty(key) ? locals[key] - : getService(key) + : getService(key, serviceName) ); } if (isArray(fn)) { @@ -3966,15 +4450,12 @@ function createInjector(modulesToLoad) { return fn.apply(self, args); } - function instantiate(Type, locals) { - var Constructor = function() {}, - instance, returnedValue; - + function instantiate(Type, locals, serviceName) { // Check if Type is annotated and use just the given function at n-1 as parameter // e.g. someModule.factory('greeter', ['$window', function(renamed$window) {}]); - Constructor.prototype = (isArray(Type) ? Type[Type.length - 1] : Type).prototype; - instance = new Constructor(); - returnedValue = invoke(Type, instance, locals); + // Object creation: http://jsperf.com/create-constructor/2 + var instance = Object.create((isArray(Type) ? Type[Type.length - 1] : Type).prototype || null); + var returnedValue = invoke(Type, instance, locals, serviceName); return isObject(returnedValue) || isFunction(returnedValue) ? returnedValue : instance; } @@ -3983,7 +4464,7 @@ function createInjector(modulesToLoad) { invoke: invoke, instantiate: instantiate, get: getService, - annotate: annotate, + annotate: createInjector.$$annotate, has: function(name) { return providerCache.hasOwnProperty(name + providerSuffix) || cache.hasOwnProperty(name); } @@ -3991,100 +4472,272 @@ function createInjector(modulesToLoad) { } } +createInjector.$$annotate = annotate; + /** - * @ngdoc service - * @name $anchorScroll - * @kind function - * @requires $window - * @requires $location - * @requires $rootScope + * @ngdoc provider + * @name $anchorScrollProvider * * @description - * When called, it checks current value of `$location.hash()` and scrolls to the related element, - * according to rules specified in - * [Html5 spec](http://dev.w3.org/html5/spec/Overview.html#the-indicated-part-of-the-document). - * - * It also watches the `$location.hash()` and scrolls whenever it changes to match any anchor. - * This can be disabled by calling `$anchorScrollProvider.disableAutoScrolling()`. - * - * @example - - -
- Go to bottom - You're at the bottom! -
-
- - function ScrollCtrl($scope, $location, $anchorScroll) { - $scope.gotoBottom = function (){ - // set the location.hash to the id of - // the element you wish to scroll to. - $location.hash('bottom'); - - // call $anchorScroll() - $anchorScroll(); - }; - } - - - #scrollArea { - height: 350px; - overflow: auto; - } - - #bottom { - display: block; - margin-top: 2000px; - } - -
+ * Use `$anchorScrollProvider` to disable automatic scrolling whenever + * {@link ng.$location#hash $location.hash()} changes. */ function $AnchorScrollProvider() { var autoScrollingEnabled = true; + /** + * @ngdoc method + * @name $anchorScrollProvider#disableAutoScrolling + * + * @description + * By default, {@link ng.$anchorScroll $anchorScroll()} will automatically detect changes to + * {@link ng.$location#hash $location.hash()} and scroll to the element matching the new hash.
+ * Use this method to disable automatic scrolling. + * + * If automatic scrolling is disabled, one must explicitly call + * {@link ng.$anchorScroll $anchorScroll()} in order to scroll to the element related to the + * current hash. + */ this.disableAutoScrolling = function() { autoScrollingEnabled = false; }; + /** + * @ngdoc service + * @name $anchorScroll + * @kind function + * @requires $window + * @requires $location + * @requires $rootScope + * + * @description + * When called, it scrolls to the element related to the specified `hash` or (if omitted) to the + * current value of {@link ng.$location#hash $location.hash()}, according to the rules specified + * in the + * [HTML5 spec](http://dev.w3.org/html5/spec/Overview.html#the-indicated-part-of-the-document). + * + * It also watches the {@link ng.$location#hash $location.hash()} and automatically scrolls to + * match any anchor whenever it changes. This can be disabled by calling + * {@link ng.$anchorScrollProvider#disableAutoScrolling $anchorScrollProvider.disableAutoScrolling()}. + * + * Additionally, you can use its {@link ng.$anchorScroll#yOffset yOffset} property to specify a + * vertical scroll-offset (either fixed or dynamic). + * + * @param {string=} hash The hash specifying the element to scroll to. If omitted, the value of + * {@link ng.$location#hash $location.hash()} will be used. + * + * @property {(number|function|jqLite)} yOffset + * If set, specifies a vertical scroll-offset. This is often useful when there are fixed + * positioned elements at the top of the page, such as navbars, headers etc. + * + * `yOffset` can be specified in various ways: + * - **number**: A fixed number of pixels to be used as offset.

+ * - **function**: A getter function called everytime `$anchorScroll()` is executed. Must return + * a number representing the offset (in pixels).

+ * - **jqLite**: A jqLite/jQuery element to be used for specifying the offset. The distance from + * the top of the page to the element's bottom will be used as offset.
+ * **Note**: The element will be taken into account only as long as its `position` is set to + * `fixed`. This option is useful, when dealing with responsive navbars/headers that adjust + * their height and/or positioning according to the viewport's size. + * + *
+ *
+ * In order for `yOffset` to work properly, scrolling should take place on the document's root and + * not some child element. + *
+ * + * @example + + +
+ Go to bottom + You're at the bottom! +
+
+ + angular.module('anchorScrollExample', []) + .controller('ScrollController', ['$scope', '$location', '$anchorScroll', + function ($scope, $location, $anchorScroll) { + $scope.gotoBottom = function() { + // set the location.hash to the id of + // the element you wish to scroll to. + $location.hash('bottom'); + + // call $anchorScroll() + $anchorScroll(); + }; + }]); + + + #scrollArea { + height: 280px; + overflow: auto; + } + + #bottom { + display: block; + margin-top: 2000px; + } + +
+ * + *
+ * The example below illustrates the use of a vertical scroll-offset (specified as a fixed value). + * See {@link ng.$anchorScroll#yOffset $anchorScroll.yOffset} for more details. + * + * @example + + + +
+ Anchor {{x}} of 5 +
+
+ + angular.module('anchorScrollOffsetExample', []) + .run(['$anchorScroll', function($anchorScroll) { + $anchorScroll.yOffset = 50; // always scroll by 50 extra pixels + }]) + .controller('headerCtrl', ['$anchorScroll', '$location', '$scope', + function ($anchorScroll, $location, $scope) { + $scope.gotoAnchor = function(x) { + var newHash = 'anchor' + x; + if ($location.hash() !== newHash) { + // set the $location.hash to `newHash` and + // $anchorScroll will automatically scroll to it + $location.hash('anchor' + x); + } else { + // call $anchorScroll() explicitly, + // since $location.hash hasn't changed + $anchorScroll(); + } + }; + } + ]); + + + body { + padding-top: 50px; + } + + .anchor { + border: 2px dashed DarkOrchid; + padding: 10px 10px 200px 10px; + } + + .fixed-header { + background-color: rgba(0, 0, 0, 0.2); + height: 50px; + position: fixed; + top: 0; left: 0; right: 0; + } + + .fixed-header > a { + display: inline-block; + margin: 5px 15px; + } + +
+ */ this.$get = ['$window', '$location', '$rootScope', function($window, $location, $rootScope) { var document = $window.document; - // helper function to get first anchor from a NodeList - // can't use filter.filter, as it accepts only instances of Array - // and IE can't convert NodeList to an array using [].slice - // TODO(vojta): use filter if we change it to accept lists as well + // Helper function to get first anchor from a NodeList + // (using `Array#some()` instead of `angular#forEach()` since it's more performant + // and working in all supported browsers.) function getFirstAnchor(list) { var result = null; - forEach(list, function(element) { - if (!result && lowercase(element.nodeName) === 'a') result = element; + Array.prototype.some.call(list, function(element) { + if (nodeName_(element) === 'a') { + result = element; + return true; + } }); return result; } - function scroll() { - var hash = $location.hash(), elm; + function getYOffset() { + + var offset = scroll.yOffset; + + if (isFunction(offset)) { + offset = offset(); + } else if (isElement(offset)) { + var elem = offset[0]; + var style = $window.getComputedStyle(elem); + if (style.position !== 'fixed') { + offset = 0; + } else { + offset = elem.getBoundingClientRect().bottom; + } + } else if (!isNumber(offset)) { + offset = 0; + } + + return offset; + } + + function scrollTo(elem) { + if (elem) { + elem.scrollIntoView(); + + var offset = getYOffset(); + + if (offset) { + // `offset` is the number of pixels we should scroll UP in order to align `elem` properly. + // This is true ONLY if the call to `elem.scrollIntoView()` initially aligns `elem` at the + // top of the viewport. + // + // IF the number of pixels from the top of `elem` to the end of the page's content is less + // than the height of the viewport, then `elem.scrollIntoView()` will align the `elem` some + // way down the page. + // + // This is often the case for elements near the bottom of the page. + // + // In such cases we do not need to scroll the whole `offset` up, just the difference between + // the top of the element and the offset, which is enough to align the top of `elem` at the + // desired position. + var elemTop = elem.getBoundingClientRect().top; + $window.scrollBy(0, elemTop - offset); + } + } else { + $window.scrollTo(0, 0); + } + } + + function scroll(hash) { + hash = isString(hash) ? hash : $location.hash(); + var elm; // empty hash, scroll to the top of the page - if (!hash) $window.scrollTo(0, 0); + if (!hash) scrollTo(null); // element with given id - else if ((elm = document.getElementById(hash))) elm.scrollIntoView(); + else if ((elm = document.getElementById(hash))) scrollTo(elm); // first anchor with given name :-D - else if ((elm = getFirstAnchor(document.getElementsByName(hash)))) elm.scrollIntoView(); + else if ((elm = getFirstAnchor(document.getElementsByName(hash)))) scrollTo(elm); // no element and hash == 'top', scroll to the top of the page - else if (hash === 'top') $window.scrollTo(0, 0); + else if (hash === 'top') scrollTo(null); } // does not scroll when user clicks on anchor link that is currently on // (no url change, no $location.hash() change), browser native does scroll if (autoScrollingEnabled) { $rootScope.$watch(function autoScrollWatch() {return $location.hash();}, - function autoScrollWatchAction() { - $rootScope.$evalAsync(scroll); + function autoScrollWatchAction(newVal, oldVal) { + // skip the initial scroll if $location.hash is empty + if (newVal === oldVal && newVal === '') return; + + jqLiteDocumentLoaded(function() { + $rootScope.$evalAsync(scroll); + }); }); } @@ -4093,6 +4746,168 @@ function $AnchorScrollProvider() { } var $animateMinErr = minErr('$animate'); +var ELEMENT_NODE = 1; +var NG_ANIMATE_CLASSNAME = 'ng-animate'; + +function mergeClasses(a,b) { + if (!a && !b) return ''; + if (!a) return b; + if (!b) return a; + if (isArray(a)) a = a.join(' '); + if (isArray(b)) b = b.join(' '); + return a + ' ' + b; +} + +function extractElementNode(element) { + for (var i = 0; i < element.length; i++) { + var elm = element[i]; + if (elm.nodeType === ELEMENT_NODE) { + return elm; + } + } +} + +function splitClasses(classes) { + if (isString(classes)) { + classes = classes.split(' '); + } + + // Use createMap() to prevent class assumptions involving property names in + // Object.prototype + var obj = createMap(); + forEach(classes, function(klass) { + // sometimes the split leaves empty string values + // incase extra spaces were applied to the options + if (klass.length) { + obj[klass] = true; + } + }); + return obj; +} + +// if any other type of options value besides an Object value is +// passed into the $animate.method() animation then this helper code +// will be run which will ignore it. While this patch is not the +// greatest solution to this, a lot of existing plugins depend on +// $animate to either call the callback (< 1.2) or return a promise +// that can be changed. This helper function ensures that the options +// are wiped clean incase a callback function is provided. +function prepareAnimateOptions(options) { + return isObject(options) + ? options + : {}; +} + +var $$CoreAnimateRunnerProvider = function() { + this.$get = ['$q', '$$rAF', function($q, $$rAF) { + function AnimateRunner() {} + AnimateRunner.all = noop; + AnimateRunner.chain = noop; + AnimateRunner.prototype = { + end: noop, + cancel: noop, + resume: noop, + pause: noop, + complete: noop, + then: function(pass, fail) { + return $q(function(resolve) { + $$rAF(function() { + resolve(); + }); + }).then(pass, fail); + } + }; + return AnimateRunner; + }]; +}; + +// this is prefixed with Core since it conflicts with +// the animateQueueProvider defined in ngAnimate/animateQueue.js +var $$CoreAnimateQueueProvider = function() { + var postDigestQueue = new HashMap(); + var postDigestElements = []; + + this.$get = ['$$AnimateRunner', '$rootScope', + function($$AnimateRunner, $rootScope) { + return { + enabled: noop, + on: noop, + off: noop, + pin: noop, + + push: function(element, event, options, domOperation) { + domOperation && domOperation(); + + options = options || {}; + options.from && element.css(options.from); + options.to && element.css(options.to); + + if (options.addClass || options.removeClass) { + addRemoveClassesPostDigest(element, options.addClass, options.removeClass); + } + + return new $$AnimateRunner(); // jshint ignore:line + } + }; + + function addRemoveClassesPostDigest(element, add, remove) { + var data = postDigestQueue.get(element); + var classVal; + + if (!data) { + postDigestQueue.put(element, data = {}); + postDigestElements.push(element); + } + + if (add) { + forEach(add.split(' '), function(className) { + if (className) { + data[className] = true; + } + }); + } + + if (remove) { + forEach(remove.split(' '), function(className) { + if (className) { + data[className] = false; + } + }); + } + + if (postDigestElements.length > 1) return; + + $rootScope.$$postDigest(function() { + forEach(postDigestElements, function(element) { + var data = postDigestQueue.get(element); + if (data) { + var existing = splitClasses(element.attr('class')); + var toAdd = ''; + var toRemove = ''; + forEach(data, function(status, className) { + var hasClass = !!existing[className]; + if (status !== hasClass) { + if (status) { + toAdd += (toAdd.length ? ' ' : '') + className; + } else { + toRemove += (toRemove.length ? ' ' : '') + className; + } + } + }); + + forEach(element, function(elm) { + toAdd && jqLiteAddClass(elm, toAdd); + toRemove && jqLiteRemoveClass(elm, toRemove); + }); + postDigestQueue.remove(element); + } + }); + + postDigestElements.length = 0; + }); + } + }]; +}; /** * @ngdoc provider @@ -4100,20 +4915,18 @@ var $animateMinErr = minErr('$animate'); * * @description * Default implementation of $animate that doesn't perform any animations, instead just - * synchronously performs DOM - * updates and calls done() callbacks. + * synchronously performs DOM updates and resolves the returned runner promise. * - * In order to enable animations the ngAnimate module has to be loaded. + * In order to enable animations the `ngAnimate` module has to be loaded. * - * To see the functional implementation check out src/ngAnimate/animate.js + * To see the functional implementation check out `src/ngAnimate/animate.js`. */ var $AnimateProvider = ['$provide', function($provide) { + var provider = this; + this.$$registeredAnimations = Object.create(null); - this.$$selectors = {}; - - - /** + /** * @ngdoc method * @name $animateProvider#register * @@ -4122,33 +4935,43 @@ var $AnimateProvider = ['$provide', function($provide) { * animation object which contains callback functions for each event that is expected to be * animated. * - * * `eventFn`: `function(Element, doneFunction)` The element to animate, the `doneFunction` - * must be called once the element animation is complete. If a function is returned then the - * animation service will use this function to cancel the animation whenever a cancel event is - * triggered. + * * `eventFn`: `function(element, ... , doneFunction, options)` + * The element to animate, the `doneFunction` and the options fed into the animation. Depending + * on the type of animation additional arguments will be injected into the animation function. The + * list below explains the function signatures for the different animation methods: * + * - setClass: function(element, addedClasses, removedClasses, doneFunction, options) + * - addClass: function(element, addedClasses, doneFunction, options) + * - removeClass: function(element, removedClasses, doneFunction, options) + * - enter, leave, move: function(element, doneFunction, options) + * - animate: function(element, fromStyles, toStyles, doneFunction, options) + * + * Make sure to trigger the `doneFunction` once the animation is fully complete. * * ```js * return { - * eventFn : function(element, done) { - * //code to run the animation - * //once complete, then run done() - * return function cancellationFunction() { - * //code to cancel the animation - * } - * } - * } + * //enter, leave, move signature + * eventFn : function(element, done, options) { + * //code to run the animation + * //once complete, then run done() + * return function endFunction(wasCancelled) { + * //code to cancel the animation + * } + * } + * } * ``` * - * @param {string} name The name of the animation. + * @param {string} name The name of the animation (this is what the class-based CSS value will be compared to). * @param {Function} factory The factory function that will be executed to return the animation * object. */ this.register = function(name, factory) { + if (name && name.charAt(0) !== '.') { + throw $animateMinErr('notcsel', "Expecting class selector starting with '.' got '{0}'.", name); + } + var key = name + '-animation'; - if (name && name.charAt(0) != '.') throw $animateMinErr('notcsel', - "Expecting class selector starting with '.' got '{0}'.", name); - this.$$selectors[name.substr(1)] = key; + provider.$$registeredAnimations[name.substr(1)] = key; $provide.factory(key, factory); }; @@ -4159,86 +4982,203 @@ var $AnimateProvider = ['$provide', function($provide) { * @description * Sets and/or returns the CSS class regular expression that is checked when performing * an animation. Upon bootstrap the classNameFilter value is not set at all and will - * therefore enable $animate to attempt to perform an animation on any element. - * When setting the classNameFilter value, animations will only be performed on elements + * therefore enable $animate to attempt to perform an animation on any element that is triggered. + * When setting the `classNameFilter` value, animations will only be performed on elements * that successfully match the filter expression. This in turn can boost performance * for low-powered devices as well as applications containing a lot of structural operations. * @param {RegExp=} expression The className expression which will be checked against all animations * @return {RegExp} The current CSS className expression value. If null then there is no expression value */ this.classNameFilter = function(expression) { - if(arguments.length === 1) { + if (arguments.length === 1) { this.$$classNameFilter = (expression instanceof RegExp) ? expression : null; + if (this.$$classNameFilter) { + var reservedRegex = new RegExp("(\\s+|\\/)" + NG_ANIMATE_CLASSNAME + "(\\s+|\\/)"); + if (reservedRegex.test(this.$$classNameFilter.toString())) { + throw $animateMinErr('nongcls','$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.', NG_ANIMATE_CLASSNAME); + + } + } } return this.$$classNameFilter; }; - this.$get = ['$timeout', '$$asyncCallback', function($timeout, $$asyncCallback) { - - function async(fn) { - fn && $$asyncCallback(fn); + this.$get = ['$$animateQueue', function($$animateQueue) { + function domInsert(element, parentElement, afterElement) { + // if for some reason the previous element was removed + // from the dom sometime before this code runs then let's + // just stick to using the parent element as the anchor + if (afterElement) { + var afterNode = extractElementNode(afterElement); + if (afterNode && !afterNode.parentNode && !afterNode.previousElementSibling) { + afterElement = null; + } + } + afterElement ? afterElement.after(element) : parentElement.prepend(element); } /** - * * @ngdoc service * @name $animate - * @description The $animate service provides rudimentary DOM manipulation functions to - * insert, remove and move elements within the DOM, as well as adding and removing classes. - * This service is the core service used by the ngAnimate $animator service which provides - * high-level animation hooks for CSS and JavaScript. + * @description The $animate service exposes a series of DOM utility methods that provide support + * for animation hooks. The default behavior is the application of DOM operations, however, + * when an animation is detected (and animations are enabled), $animate will do the heavy lifting + * to ensure that animation runs with the triggered DOM operation. * - * $animate is available in the AngularJS core, however, the ngAnimate module must be included - * to enable full out animation support. Otherwise, $animate will only perform simple DOM - * manipulation operations. + * By default $animate doesn't trigger an animations. This is because the `ngAnimate` module isn't + * included and only when it is active then the animation hooks that `$animate` triggers will be + * functional. Once active then all structural `ng-` directives will trigger animations as they perform + * their DOM-related operations (enter, leave and move). Other directives such as `ngClass`, + * `ngShow`, `ngHide` and `ngMessages` also provide support for animations. * - * To learn more about enabling animation support, click here to visit the {@link ngAnimate - * ngAnimate module page} as well as the {@link ngAnimate.$animate ngAnimate $animate service - * page}. + * It is recommended that the`$animate` service is always used when executing DOM-related procedures within directives. + * + * To learn more about enabling animation support, click here to visit the + * {@link ngAnimate ngAnimate module page}. */ return { + // we don't call it directly since non-existant arguments may + // be interpreted as null within the sub enabled function + + /** + * + * @ngdoc method + * @name $animate#on + * @kind function + * @description Sets up an event listener to fire whenever the animation event (enter, leave, move, etc...) + * has fired on the given element or among any of its children. Once the listener is fired, the provided callback + * is fired with the following params: + * + * ```js + * $animate.on('enter', container, + * function callback(element, phase) { + * // cool we detected an enter animation within the container + * } + * ); + * ``` + * + * @param {string} event the animation event that will be captured (e.g. enter, leave, move, addClass, removeClass, etc...) + * @param {DOMElement} container the container element that will capture each of the animation events that are fired on itself + * as well as among its children + * @param {Function} callback the callback function that will be fired when the listener is triggered + * + * The arguments present in the callback function are: + * * `element` - The captured DOM element that the animation was fired on. + * * `phase` - The phase of the animation. The two possible phases are **start** (when the animation starts) and **close** (when it ends). + */ + on: $$animateQueue.on, + + /** + * + * @ngdoc method + * @name $animate#off + * @kind function + * @description Deregisters an event listener based on the event which has been associated with the provided element. This method + * can be used in three different ways depending on the arguments: + * + * ```js + * // remove all the animation event listeners listening for `enter` + * $animate.off('enter'); + * + * // remove all the animation event listeners listening for `enter` on the given element and its children + * $animate.off('enter', container); + * + * // remove the event listener function provided by `listenerFn` that is set + * // to listen for `enter` on the given `element` as well as its children + * $animate.off('enter', container, callback); + * ``` + * + * @param {string} event the animation event (e.g. enter, leave, move, addClass, removeClass, etc...) + * @param {DOMElement=} container the container element the event listener was placed on + * @param {Function=} callback the callback function that was registered as the listener + */ + off: $$animateQueue.off, + + /** + * @ngdoc method + * @name $animate#pin + * @kind function + * @description Associates the provided element with a host parent element to allow the element to be animated even if it exists + * outside of the DOM structure of the Angular application. By doing so, any animation triggered via `$animate` can be issued on the + * element despite being outside the realm of the application or within another application. Say for example if the application + * was bootstrapped on an element that is somewhere inside of the `` tag, but we wanted to allow for an element to be situated + * as a direct child of `document.body`, then this can be achieved by pinning the element via `$animate.pin(element)`. Keep in mind + * that calling `$animate.pin(element, parentElement)` will not actually insert into the DOM anywhere; it will just create the association. + * + * Note that this feature is only active when the `ngAnimate` module is used. + * + * @param {DOMElement} element the external element that will be pinned + * @param {DOMElement} parentElement the host parent element that will be associated with the external element + */ + pin: $$animateQueue.pin, + + /** + * + * @ngdoc method + * @name $animate#enabled + * @kind function + * @description Used to get and set whether animations are enabled or not on the entire application or on an element and its children. This + * function can be called in four ways: + * + * ```js + * // returns true or false + * $animate.enabled(); + * + * // changes the enabled state for all animations + * $animate.enabled(false); + * $animate.enabled(true); + * + * // returns true or false if animations are enabled for an element + * $animate.enabled(element); + * + * // changes the enabled state for an element and its children + * $animate.enabled(element, true); + * $animate.enabled(element, false); + * ``` + * + * @param {DOMElement=} element the element that will be considered for checking/setting the enabled state + * @param {boolean=} enabled whether or not the animations will be enabled for the element + * + * @return {boolean} whether or not animations are enabled + */ + enabled: $$animateQueue.enabled, + + /** + * @ngdoc method + * @name $animate#cancel + * @kind function + * @description Cancels the provided animation. + * + * @param {Promise} animationPromise The animation promise that is returned when an animation is started. + */ + cancel: function(runner) { + runner.end && runner.end(); + }, /** * * @ngdoc method * @name $animate#enter * @kind function - * @description Inserts the element into the DOM either after the `after` element or within - * the `parent` element. Once complete, the done() callback will be fired (if provided). + * @description Inserts the element into the DOM either after the `after` element (if provided) or + * as the first child within the `parent` element and then triggers an animation. + * A promise is returned that will be resolved during the next digest once the animation + * has completed. + * * @param {DOMElement} element the element which will be inserted into the DOM * @param {DOMElement} parent the parent element which will append the element as - * a child (if the after element is not present) - * @param {DOMElement} after the sibling element which will append the element - * after itself - * @param {Function=} done callback function that will be called after the element has been - * inserted into the DOM - */ - enter : function(element, parent, after, done) { - if (after) { - after.after(element); - } else { - if (!parent || !parent[0]) { - parent = after.parent(); - } - parent.append(element); - } - async(done); - }, - - /** + * a child (so long as the after element is not present) + * @param {DOMElement=} after the sibling element after which the element will be appended + * @param {object=} options an optional collection of options/styles that will be applied to the element * - * @ngdoc method - * @name $animate#leave - * @kind function - * @description Removes the element from the DOM. Once complete, the done() callback will be - * fired (if provided). - * @param {DOMElement} element the element which will be removed from the DOM - * @param {Function=} done callback function that will be called after the element has been - * removed from the DOM + * @return {Promise} the animation callback promise */ - leave : function(element, done) { - element.remove(); - async(done); + enter: function(element, parent, after, options) { + parent = parent && jqLite(parent); + after = after && jqLite(after); + parent = parent || after.parent(); + domInsert(element, parent, after); + return $$animateQueue.push(element, 'enter', prepareAnimateOptions(options)); }, /** @@ -4246,99 +5186,155 @@ var $AnimateProvider = ['$provide', function($provide) { * @ngdoc method * @name $animate#move * @kind function - * @description Moves the position of the provided element within the DOM to be placed - * either after the `after` element or inside of the `parent` element. Once complete, the - * done() callback will be fired (if provided). + * @description Inserts (moves) the element into its new position in the DOM either after + * the `after` element (if provided) or as the first child within the `parent` element + * and then triggers an animation. A promise is returned that will be resolved + * during the next digest once the animation has completed. * - * @param {DOMElement} element the element which will be moved around within the - * DOM - * @param {DOMElement} parent the parent element where the element will be - * inserted into (if the after element is not present) - * @param {DOMElement} after the sibling element where the element will be - * positioned next to - * @param {Function=} done the callback function (if provided) that will be fired after the - * element has been moved to its new position + * @param {DOMElement} element the element which will be moved into the new DOM position + * @param {DOMElement} parent the parent element which will append the element as + * a child (so long as the after element is not present) + * @param {DOMElement=} after the sibling element after which the element will be appended + * @param {object=} options an optional collection of options/styles that will be applied to the element + * + * @return {Promise} the animation callback promise */ - move : function(element, parent, after, done) { - // Do not remove element before insert. Removing will cause data associated with the - // element to be dropped. Insert will implicitly do the remove. - this.enter(element, parent, after, done); + move: function(element, parent, after, options) { + parent = parent && jqLite(parent); + after = after && jqLite(after); + parent = parent || after.parent(); + domInsert(element, parent, after); + return $$animateQueue.push(element, 'move', prepareAnimateOptions(options)); }, /** + * @ngdoc method + * @name $animate#leave + * @kind function + * @description Triggers an animation and then removes the element from the DOM. + * When the function is called a promise is returned that will be resolved during the next + * digest once the animation has completed. * + * @param {DOMElement} element the element which will be removed from the DOM + * @param {object=} options an optional collection of options/styles that will be applied to the element + * + * @return {Promise} the animation callback promise + */ + leave: function(element, options) { + return $$animateQueue.push(element, 'leave', prepareAnimateOptions(options), function() { + element.remove(); + }); + }, + + /** * @ngdoc method * @name $animate#addClass * @kind function - * @description Adds the provided className CSS class value to the provided element. Once - * complete, the done() callback will be fired (if provided). - * @param {DOMElement} element the element which will have the className value - * added to it - * @param {string} className the CSS class which will be added to the element - * @param {Function=} done the callback function (if provided) that will be fired after the - * className value has been added to the element + * + * @description Triggers an addClass animation surrounding the addition of the provided CSS class(es). Upon + * execution, the addClass operation will only be handled after the next digest and it will not trigger an + * animation if element already contains the CSS class or if the class is removed at a later step. + * Note that class-based animations are treated differently compared to structural animations + * (like enter, move and leave) since the CSS classes may be added/removed at different points + * depending if CSS or JavaScript animations are used. + * + * @param {DOMElement} element the element which the CSS classes will be applied to + * @param {string} className the CSS class(es) that will be added (multiple classes are separated via spaces) + * @param {object=} options an optional collection of options/styles that will be applied to the element + * + * @return {Promise} the animation callback promise */ - addClass : function(element, className, done) { - className = isString(className) ? - className : - isArray(className) ? className.join(' ') : ''; - forEach(element, function (element) { - jqLiteAddClass(element, className); - }); - async(done); + addClass: function(element, className, options) { + options = prepareAnimateOptions(options); + options.addClass = mergeClasses(options.addclass, className); + return $$animateQueue.push(element, 'addClass', options); }, /** - * * @ngdoc method * @name $animate#removeClass * @kind function - * @description Removes the provided className CSS class value from the provided element. - * Once complete, the done() callback will be fired (if provided). - * @param {DOMElement} element the element which will have the className value - * removed from it - * @param {string} className the CSS class which will be removed from the element - * @param {Function=} done the callback function (if provided) that will be fired after the - * className value has been removed from the element + * + * @description Triggers a removeClass animation surrounding the removal of the provided CSS class(es). Upon + * execution, the removeClass operation will only be handled after the next digest and it will not trigger an + * animation if element does not contain the CSS class or if the class is added at a later step. + * Note that class-based animations are treated differently compared to structural animations + * (like enter, move and leave) since the CSS classes may be added/removed at different points + * depending if CSS or JavaScript animations are used. + * + * @param {DOMElement} element the element which the CSS classes will be applied to + * @param {string} className the CSS class(es) that will be removed (multiple classes are separated via spaces) + * @param {object=} options an optional collection of options/styles that will be applied to the element + * + * @return {Promise} the animation callback promise */ - removeClass : function(element, className, done) { - className = isString(className) ? - className : - isArray(className) ? className.join(' ') : ''; - forEach(element, function (element) { - jqLiteRemoveClass(element, className); - }); - async(done); + removeClass: function(element, className, options) { + options = prepareAnimateOptions(options); + options.removeClass = mergeClasses(options.removeClass, className); + return $$animateQueue.push(element, 'removeClass', options); }, /** - * * @ngdoc method * @name $animate#setClass * @kind function - * @description Adds and/or removes the given CSS classes to and from the element. - * Once complete, the done() callback will be fired (if provided). - * @param {DOMElement} element the element which will have its CSS classes changed - * removed from it - * @param {string} add the CSS classes which will be added to the element - * @param {string} remove the CSS class which will be removed from the element - * @param {Function=} done the callback function (if provided) that will be fired after the - * CSS classes have been set on the element + * + * @description Performs both the addition and removal of a CSS classes on an element and (during the process) + * triggers an animation surrounding the class addition/removal. Much like `$animate.addClass` and + * `$animate.removeClass`, `setClass` will only evaluate the classes being added/removed once a digest has + * passed. Note that class-based animations are treated differently compared to structural animations + * (like enter, move and leave) since the CSS classes may be added/removed at different points + * depending if CSS or JavaScript animations are used. + * + * @param {DOMElement} element the element which the CSS classes will be applied to + * @param {string} add the CSS class(es) that will be added (multiple classes are separated via spaces) + * @param {string} remove the CSS class(es) that will be removed (multiple classes are separated via spaces) + * @param {object=} options an optional collection of options/styles that will be applied to the element + * + * @return {Promise} the animation callback promise */ - setClass : function(element, add, remove, done) { - forEach(element, function (element) { - jqLiteAddClass(element, add); - jqLiteRemoveClass(element, remove); - }); - async(done); + setClass: function(element, add, remove, options) { + options = prepareAnimateOptions(options); + options.addClass = mergeClasses(options.addClass, add); + options.removeClass = mergeClasses(options.removeClass, remove); + return $$animateQueue.push(element, 'setClass', options); }, - enabled : noop + /** + * @ngdoc method + * @name $animate#animate + * @kind function + * + * @description Performs an inline animation on the element which applies the provided to and from CSS styles to the element. + * If any detected CSS transition, keyframe or JavaScript matches the provided className value then the animation will take + * on the provided styles. For example, if a transition animation is set for the given className then the provided from and + * to styles will be applied alongside the given transition. If a JavaScript animation is detected then the provided styles + * will be given in as function paramters into the `animate` method (or as apart of the `options` parameter). + * + * @param {DOMElement} element the element which the CSS styles will be applied to + * @param {object} from the from (starting) CSS styles that will be applied to the element and across the animation. + * @param {object} to the to (destination) CSS styles that will be applied to the element and across the animation. + * @param {string=} className an optional CSS class that will be applied to the element for the duration of the animation. If + * this value is left as empty then a CSS class of `ng-inline-animate` will be applied to the element. + * (Note that if no animation is detected then this value will not be appplied to the element.) + * @param {object=} options an optional collection of options/styles that will be applied to the element + * + * @return {Promise} the animation callback promise + */ + animate: function(element, from, to, className, options) { + options = prepareAnimateOptions(options); + options.from = options.from ? extend(options.from, from) : from; + options.to = options.to ? extend(options.to, to) : to; + + className = className || 'ng-inline-animate'; + options.tempClasses = mergeClasses(options.tempClasses, className); + return $$animateQueue.push(element, 'animate', options); + } }; }]; }]; -function $$AsyncCallbackProvider(){ +function $$AsyncCallbackProvider() { this.$get = ['$$rAF', '$timeout', function($$rAF, $timeout) { return $$rAF.supported ? function(fn) { return $$rAF(fn); } @@ -4348,6 +5344,8 @@ function $$AsyncCallbackProvider(){ }]; } +/* global stripHash: true */ + /** * ! This is a private undocumented service ! * @@ -4366,8 +5364,7 @@ function $$AsyncCallbackProvider(){ /** * @param {object} window The global window object. * @param {object} document jQuery wrapped document. - * @param {function()} XHR XMLHttpRequest constructor. - * @param {object} $log console.log or an object with the same interface. + * @param {object} $log window.console or an object with the same interface. * @param {object} $sniffer $sniffer service */ function Browser(window, document, $log, $sniffer) { @@ -4398,7 +5395,7 @@ function Browser(window, document, $log, $sniffer) { } finally { outstandingRequestCount--; if (outstandingRequestCount === 0) { - while(outstandingRequestCallbacks.length) { + while (outstandingRequestCallbacks.length) { try { outstandingRequestCallbacks.pop()(); } catch (e) { @@ -4409,6 +5406,11 @@ function Browser(window, document, $log, $sniffer) { } } + function getHash(url) { + var index = url.indexOf('#'); + return index === -1 ? '' : url.substr(index); + } + /** * @private * Note: this method is used only by scenario runner @@ -4416,11 +5418,6 @@ function Browser(window, document, $log, $sniffer) { * @param {function()} callback Function that will be called when no outstanding request */ self.notifyWhenNoOutstandingRequests = function(callback) { - // force browser to execute all pollFns - this is needed so that cookies and other pollers fire - // at some deterministic time in respect to the test runner's actions. Leaving things up to the - // regular poller would result in flaky tests. - forEach(pollFns, function(pollFn){ pollFn(); }); - if (outstandingRequestCount === 0) { callback(); } else { @@ -4428,51 +5425,17 @@ function Browser(window, document, $log, $sniffer) { } }; - ////////////////////////////////////////////////////////////// - // Poll Watcher API - ////////////////////////////////////////////////////////////// - var pollFns = [], - pollTimeout; - - /** - * @name $browser#addPollFn - * - * @param {function()} fn Poll function to add - * - * @description - * Adds a function to the list of functions that poller periodically executes, - * and starts polling if not started yet. - * - * @returns {function()} the added function - */ - self.addPollFn = function(fn) { - if (isUndefined(pollTimeout)) startPoller(100, setTimeout); - pollFns.push(fn); - return fn; - }; - - /** - * @param {number} interval How often should browser call poll functions (ms) - * @param {function()} setTimeout Reference to a real or fake `setTimeout` function. - * - * @description - * Configures the poller to run in the specified intervals, using the specified - * setTimeout fn and kicks it off. - */ - function startPoller(interval, setTimeout) { - (function check() { - forEach(pollFns, function(pollFn){ pollFn(); }); - pollTimeout = setTimeout(check, interval); - })(); - } - ////////////////////////////////////////////////////////////// // URL API ////////////////////////////////////////////////////////////// - var lastBrowserUrl = location.href, + var cachedState, lastHistoryState, + lastBrowserUrl = location.href, baseElement = document.find('base'), - newLocation = null; + reloadLocation = null; + + cacheState(); + lastHistoryState = cachedState; /** * @name $browser#url @@ -4491,52 +5454,118 @@ function Browser(window, document, $log, $sniffer) { * {@link ng.$location $location service} to change url. * * @param {string} url New url (when used as setter) - * @param {boolean=} replace Should new url replace current history record ? + * @param {boolean=} replace Should new url replace current history record? + * @param {object=} state object to use with pushState/replaceState */ - self.url = function(url, replace) { + self.url = function(url, replace, state) { + // In modern browsers `history.state` is `null` by default; treating it separately + // from `undefined` would cause `$browser.url('/foo')` to change `history.state` + // to undefined via `pushState`. Instead, let's change `undefined` to `null` here. + if (isUndefined(state)) { + state = null; + } + // Android Browser BFCache causes location, history reference to become stale. if (location !== window.location) location = window.location; if (history !== window.history) history = window.history; // setter if (url) { - if (lastBrowserUrl == url) return; + var sameState = lastHistoryState === state; + + // Don't change anything if previous and current URLs and states match. This also prevents + // IE<10 from getting into redirect loop when in LocationHashbangInHtml5Url mode. + // See https://github.com/angular/angular.js/commit/ffb2701 + if (lastBrowserUrl === url && (!$sniffer.history || sameState)) { + return self; + } + var sameBase = lastBrowserUrl && stripHash(lastBrowserUrl) === stripHash(url); lastBrowserUrl = url; - if ($sniffer.history) { - if (replace) history.replaceState(null, '', url); - else { - history.pushState(null, '', url); - // Crazy Opera Bug: http://my.opera.com/community/forums/topic.dml?id=1185462 - baseElement.attr('href', baseElement.attr('href')); - } + lastHistoryState = state; + // Don't use history API if only the hash changed + // due to a bug in IE10/IE11 which leads + // to not firing a `hashchange` nor `popstate` event + // in some cases (see #9143). + if ($sniffer.history && (!sameBase || !sameState)) { + history[replace ? 'replaceState' : 'pushState'](state, '', url); + cacheState(); + // Do the assignment again so that those two variables are referentially identical. + lastHistoryState = cachedState; } else { - newLocation = url; + if (!sameBase || reloadLocation) { + reloadLocation = url; + } if (replace) { location.replace(url); - } else { + } else if (!sameBase) { location.href = url; + } else { + location.hash = getHash(url); } } return self; // getter } else { - // - newLocation is a workaround for an IE7-9 issue with location.replace and location.href - // methods not updating location.href synchronously. + // - reloadLocation is needed as browsers don't allow to read out + // the new location.href if a reload happened. // - the replacement is a workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=407172 - return newLocation || location.href.replace(/%27/g,"'"); + return reloadLocation || location.href.replace(/%27/g,"'"); } }; + /** + * @name $browser#state + * + * @description + * This method is a getter. + * + * Return history.state or null if history.state is undefined. + * + * @returns {object} state + */ + self.state = function() { + return cachedState; + }; + var urlChangeListeners = [], urlChangeInit = false; + function cacheStateAndFireUrlChange() { + cacheState(); + fireUrlChange(); + } + + function getCurrentState() { + try { + return history.state; + } catch (e) { + // MSIE can reportedly throw when there is no state (UNCONFIRMED). + } + } + + // This variable should be used *only* inside the cacheState function. + var lastCachedState = null; + function cacheState() { + // This should be the only place in $browser where `history.state` is read. + cachedState = getCurrentState(); + cachedState = isUndefined(cachedState) ? null : cachedState; + + // Prevent callbacks fo fire twice if both hashchange & popstate were fired. + if (equals(cachedState, lastCachedState)) { + cachedState = lastCachedState; + } + lastCachedState = cachedState; + } + function fireUrlChange() { - newLocation = null; - if (lastBrowserUrl == self.url()) return; + if (lastBrowserUrl === self.url() && lastHistoryState === cachedState) { + return; + } lastBrowserUrl = self.url(); + lastHistoryState = cachedState; forEach(urlChangeListeners, function(listener) { - listener(self.url()); + listener(self.url(), cachedState); }); } @@ -4569,11 +5598,9 @@ function Browser(window, document, $log, $sniffer) { // changed by push/replaceState // html5 history api - popstate event - if ($sniffer.history) jqLite(window).on('popstate', fireUrlChange); + if ($sniffer.history) jqLite(window).on('popstate', cacheStateAndFireUrlChange); // hashchange event - if ($sniffer.hashchange) jqLite(window).on('hashchange', fireUrlChange); - // polling - else self.addPollFn(fireUrlChange); + jqLite(window).on('hashchange', cacheStateAndFireUrlChange); urlChangeInit = true; } @@ -4582,6 +5609,23 @@ function Browser(window, document, $log, $sniffer) { return callback; }; + /** + * @private + * Remove popstate and hashchange handler from window. + * + * NOTE: this api is intended for use only by $rootScope. + */ + self.$$applicationDestroyed = function() { + jqLite(window).off('hashchange popstate', cacheStateAndFireUrlChange); + }; + + /** + * Checks whether the url has changed outside of Angular. + * Needs to be exported to be able to check for changes that have been done in sync, + * as hashchange/popstate events fire in async. + */ + self.$$checkUrlChange = fireUrlChange; + ////////////////////////////////////////////////////////////// // Misc API ////////////////////////////////////////////////////////////// @@ -4600,82 +5644,6 @@ function Browser(window, document, $log, $sniffer) { return href ? href.replace(/^(https?\:)?\/\/[^\/]*/, '') : ''; }; - ////////////////////////////////////////////////////////////// - // Cookies API - ////////////////////////////////////////////////////////////// - var lastCookies = {}; - var lastCookieString = ''; - var cookiePath = self.baseHref(); - - /** - * @name $browser#cookies - * - * @param {string=} name Cookie name - * @param {string=} value Cookie value - * - * @description - * The cookies method provides a 'private' low level access to browser cookies. - * It is not meant to be used directly, use the $cookie service instead. - * - * The return values vary depending on the arguments that the method was called with as follows: - * - * - cookies() -> hash of all cookies, this is NOT a copy of the internal state, so do not modify - * it - * - cookies(name, value) -> set name to value, if value is undefined delete the cookie - * - cookies(name) -> the same as (name, undefined) == DELETES (no one calls it right now that - * way) - * - * @returns {Object} Hash of all cookies (if called without any parameter) - */ - self.cookies = function(name, value) { - /* global escape: false, unescape: false */ - var cookieLength, cookieArray, cookie, i, index; - - if (name) { - if (value === undefined) { - rawDocument.cookie = escape(name) + "=;path=" + cookiePath + - ";expires=Thu, 01 Jan 1970 00:00:00 GMT"; - } else { - if (isString(value)) { - cookieLength = (rawDocument.cookie = escape(name) + '=' + escape(value) + - ';path=' + cookiePath).length + 1; - - // per http://www.ietf.org/rfc/rfc2109.txt browser must allow at minimum: - // - 300 cookies - // - 20 cookies per unique domain - // - 4096 bytes per cookie - if (cookieLength > 4096) { - $log.warn("Cookie '"+ name + - "' possibly not set or overflowed because it was too large ("+ - cookieLength + " > 4096 bytes)!"); - } - } - } - } else { - if (rawDocument.cookie !== lastCookieString) { - lastCookieString = rawDocument.cookie; - cookieArray = lastCookieString.split("; "); - lastCookies = {}; - - for (i = 0; i < cookieArray.length; i++) { - cookie = cookieArray[i]; - index = cookie.indexOf('='); - if (index > 0) { //ignore nameless cookies - name = unescape(cookie.substring(0, index)); - // the first value that is seen for a cookie is the most - // specific one. values for the same cookie name that - // follow are for less specific paths. - if (lastCookies[name] === undefined) { - lastCookies[name] = unescape(cookie.substring(index + 1)); - } - } - } - } - return lastCookies; - } - }; - - /** * @name $browser#defer * @param {function()} fn A function, who's execution should be deferred. @@ -4724,9 +5692,9 @@ function Browser(window, document, $log, $sniffer) { } -function $BrowserProvider(){ +function $BrowserProvider() { this.$get = ['$window', '$log', '$sniffer', '$document', - function( $window, $log, $sniffer, $document){ + function($window, $log, $sniffer, $document) { return new Browser($window, $document, $log, $sniffer); }]; } @@ -4890,13 +5858,13 @@ function $CacheFactoryProvider() { * @returns {*} the value stored. */ put: function(key, value) { + if (isUndefined(value)) return; if (capacity < Number.MAX_VALUE) { var lruEntry = lruHash[key] || (lruHash[key] = {key: key}); refresh(lruEntry); } - if (isUndefined(value)) return; if (!(key in data)) size++; data[key] = value; @@ -5100,9 +6068,10 @@ function $CacheFactoryProvider() { * ``` * * **Note:** the `script` tag containing the template does not need to be included in the `head` of - * the document, but it must be below the `ng-app` definition. + * the document, but it must be a descendent of the {@link ng.$rootElement $rootElement} (IE, + * element with ng-app attribute), otherwise the template will be ignored. * - * Adding via the $templateCache service: + * Adding via the `$templateCache` service: * * ```js * var myApp = angular.module('myApp', []); @@ -5130,6 +6099,17 @@ function $TemplateCacheProvider() { }]; } +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Any commits to this file should be reviewed with security in mind. * + * Changes to this file can potentially create security vulnerabilities. * + * An approval from 2 Core members with history of modifying * + * this file is required. * + * * + * Does the change somehow allow for arbitrary javascript to be executed? * + * Or allows for someone to change the prototype of built-in objects? * + * Or gives undesired access to variables likes document or window? * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + /* ! VARIABLE/FUNCTION NAMING CONVENTIONS THAT APPLY TO THIS FILE! * * DOM-related variables: @@ -5191,9 +6171,11 @@ function $TemplateCacheProvider() { * // templateUrl: 'directive.html', // or // function(tElement, tAttrs) { ... }, * transclude: false, * restrict: 'A', + * templateNamespace: 'html', * scope: false, * controller: function($scope, $element, $attrs, $transclude, otherInjectables) { ... }, - * controllerAs: 'stringAlias', + * controllerAs: 'stringIdentifier', + * bindToController: false, * require: 'siblingDirectiveName', // or // ['^parentDirectiveName', '?optionalDirectiveName', '?^optionalParent'], * compile: function compile(tElement, tAttrs, transclude) { * return { @@ -5241,6 +6223,13 @@ function $TemplateCacheProvider() { * The directive definition object provides instructions to the {@link ng.$compile * compiler}. The attributes are: * + * #### `multiElement` + * When this property is set to true, the HTML compiler will collect DOM nodes between + * nodes with the attributes `directive-name-start` and `directive-name-end`, and group them + * together as the directive elements. It is recommended that this feature be used on directives + * which are not strictly behavioural (such as {@link ngClick}), and which + * do not manipulate or replace child nodes (such as {@link ngInclude}). + * * #### `priority` * When there are multiple directives defined on a single DOM element, sometimes it * is necessary to specify the order in which the directives are applied. The `priority` is used @@ -5252,7 +6241,8 @@ function $TemplateCacheProvider() { * #### `terminal` * If set to true then the current `priority` will be the last set of directives * which will execute (any directives at the current priority will still execute - * as the order of execution on same `priority` is undefined). + * as the order of execution on same `priority` is undefined). Note that expressions + * and other directives used in the directive's template will also be excluded from execution. * * #### `scope` * **If set to `true`,** then a new scope will be created for this directive. If multiple directives on the @@ -5285,7 +6275,9 @@ function $TemplateCacheProvider() { * value of `parentModel` on the parent scope. Any changes to `parentModel` will be reflected * in `localModel` and any changes in `localModel` will reflect in `parentModel`. If the parent * scope property doesn't exist, it will throw a NON_ASSIGNABLE_MODEL_EXPRESSION exception. You - * can avoid this behavior using `=?` or `=?attr` in order to flag the property as optional. + * can avoid this behavior using `=?` or `=?attr` in order to flag the property as optional. If + * you want to shallow watch for changes (i.e. $watchCollection instead of $watch) you can use + * `=*` or `=*attr` (`=*?` or `=*?attr` if the property is optional). * * * `&` or `&attr` - provides a way to execute an expression in the context of the parent scope. * If no `attr` name is specified then the attribute name is assumed to be the same as the @@ -5298,6 +6290,10 @@ function $TemplateCacheProvider() { * by calling the `localFn` as `localFn({amount: 22})`. * * + * #### `bindToController` + * When an isolate scope is used for a component (see above), and `controllerAs` is used, `bindToController: true` will + * allow a component to have its properties bound to the controller, rather than to scope. When the controller + * is instantiated, the initial values of the isolate scope bindings are already available. * * #### `controller` * Controller constructor function. The controller is instantiated before the @@ -5308,40 +6304,66 @@ function $TemplateCacheProvider() { * * `$scope` - Current scope associated with the element * * `$element` - Current element * * `$attrs` - Current attributes object for the element - * * `$transclude` - A transclude linking function pre-bound to the correct transclusion scope. - * The scope can be overridden by an optional first argument. - * `function([scope], cloneLinkingFn)`. + * * `$transclude` - A transclude linking function pre-bound to the correct transclusion scope: + * `function([scope], cloneLinkingFn, futureParentElement)`. + * * `scope`: optional argument to override the scope. + * * `cloneLinkingFn`: optional argument to create clones of the original transcluded content. + * * `futureParentElement`: + * * defines the parent to which the `cloneLinkingFn` will add the cloned elements. + * * default: `$element.parent()` resp. `$element` for `transclude:'element'` resp. `transclude:true`. + * * only needed for transcludes that are allowed to contain non html elements (e.g. SVG elements) + * and when the `cloneLinkinFn` is passed, + * as those elements need to created and cloned in a special way when they are defined outside their + * usual containers (e.g. like ``). + * * See also the `directive.templateNamespace` property. * * * #### `require` * Require another directive and inject its controller as the fourth argument to the linking function. The * `require` takes a string name (or array of strings) of the directive(s) to pass in. If an array is used, the * injected argument will be an array in corresponding order. If no such directive can be - * found, or if the directive does not have a controller, then an error is raised. The name can be prefixed with: + * found, or if the directive does not have a controller, then an error is raised (unless no link function + * is specified, in which case error checking is skipped). The name can be prefixed with: * * * (no prefix) - Locate the required controller on the current element. Throw an error if not found. * * `?` - Attempt to locate the required controller or pass `null` to the `link` fn if not found. * * `^` - Locate the required controller by searching the element and its parents. Throw an error if not found. + * * `^^` - Locate the required controller by searching the element's parents. Throw an error if not found. * * `?^` - Attempt to locate the required controller by searching the element and its parents or pass * `null` to the `link` fn if not found. + * * `?^^` - Attempt to locate the required controller by searching the element's parents, or pass + * `null` to the `link` fn if not found. * * * #### `controllerAs` - * Controller alias at the directive scope. An alias for the controller so it - * can be referenced at the directive template. The directive needs to define a scope for this - * configuration to be used. Useful in the case when directive is used as component. + * Identifier name for a reference to the controller in the directive's scope. + * This allows the controller to be referenced from the directive template. The directive + * needs to define a scope for this configuration to be used. Useful in the case when + * directive is used as component. * * * #### `restrict` * String of subset of `EACM` which restricts the directive to a specific directive - * declaration style. If omitted, the default (attributes only) is used. + * declaration style. If omitted, the defaults (elements and attributes) are used. * - * * `E` - Element name: `` + * * `E` - Element name (default): `` * * `A` - Attribute (default): `
` * * `C` - Class: `
` * * `M` - Comment: `` * * + * #### `templateNamespace` + * String representing the document type used by the markup in the template. + * AngularJS needs this information as those elements need to be created and cloned + * in a special way when they are defined outside their usual containers like `` and ``. + * + * * `html` - All root nodes in the template are HTML. Root nodes may also be + * top-level elements such as `` or ``. + * * `svg` - The root nodes in the template are SVG elements (excluding ``). + * * `math` - The root nodes in the template are MathML elements (excluding ``). + * + * If no `templateNamespace` is specified, then the namespace is considered to be `html`. + * * #### `template` * HTML markup that may: * * Replace the contents of the directive's element (default). @@ -5356,43 +6378,51 @@ function $TemplateCacheProvider() { * * * #### `templateUrl` - * Same as `template` but the template is loaded from the specified URL. Because - * the template loading is asynchronous the compilation/linking is suspended until the template - * is loaded. + * This is similar to `template` but the template is loaded from the specified URL, asynchronously. + * + * Because template loading is asynchronous the compiler will suspend compilation of directives on that element + * for later when the template has been resolved. In the meantime it will continue to compile and link + * sibling and parent elements as though this element had not contained any directives. + * + * The compiler does not suspend the entire compilation to wait for templates to be loaded because this + * would result in the whole app "stalling" until all templates are loaded asynchronously - even in the + * case when only one deeply nested directive has `templateUrl`. + * + * Template loading is asynchronous even if the template has been preloaded into the {@link $templateCache} * * You can specify `templateUrl` as a string representing the URL or as a function which takes two * arguments `tElement` and `tAttrs` (described in the `compile` function api below) and returns * a string value representing the url. In either case, the template URL is passed through {@link - * api/ng.$sce#getTrustedResourceUrl $sce.getTrustedResourceUrl}. + * $sce#getTrustedResourceUrl $sce.getTrustedResourceUrl}. * * - * #### `replace` ([*DEPRECATED*!], will be removed in next major release) + * #### `replace` ([*DEPRECATED*!], will be removed in next major release - i.e. v2.0) * specify what the template should replace. Defaults to `false`. * * * `true` - the template will replace the directive's element. * * `false` - the template will replace the contents of the directive's element. * * The replacement process migrates all of the attributes / classes from the old element to the new - * one. See the {@link guide/directive#creating-custom-directives_creating-directives_template-expanding-directive + * one. See the {@link guide/directive#template-expanding-directive * Directives Guide} for an example. * + * There are very few scenarios where element replacement is required for the application function, + * the main one being reusable custom components that are used within SVG contexts + * (because SVG doesn't work with custom elements in the DOM tree). + * * #### `transclude` - * compile the content of the element and make it available to the directive. - * Typically used with {@link ng.directive:ngTransclude - * ngTransclude}. The advantage of transclusion is that the linking function receives a - * transclusion function which is pre-bound to the correct scope. In a typical setup the widget - * creates an `isolate` scope, but the transclusion is not a child, but a sibling of the `isolate` - * scope. This makes it possible for the widget to have private state, and the transclusion to - * be bound to the parent (pre-`isolate`) scope. + * Extract the contents of the element where the directive appears and make it available to the directive. + * The contents are compiled and provided to the directive as a **transclusion function**. See the + * {@link $compile#transclusion Transclusion} section below. * - * * `true` - transclude the content of the directive. - * * `'element'` - transclude the whole element including any directives defined at lower priority. + * There are two kinds of transclusion depending upon whether you want to transclude just the contents of the + * directive's element or the entire element: + * + * * `true` - transclude the content (i.e. the child nodes) of the directive's element. + * * `'element'` - transclude the whole of the directive's element including any directives on this + * element that defined at a lower priority than this directive. When used, the `template` + * property is ignored. * - *
- * **Note:** When testing an element transclude directive you must not place the directive at the root of the - * DOM fragment that is being compiled. See {@link guide/unit-testing#testing-transclusion-directives - * Testing Transclusion Directives}. - *
* * #### `compile` * @@ -5428,7 +6458,7 @@ function $TemplateCacheProvider() { * `templateUrl` declaration or manual compilation inside the compile function. *
* - *
+ *
* **Note:** The `transclude` function that is passed to the compile function is deprecated, as it * e.g. does not know about the right outer scope. Please use the transclude function that is passed * to the link function instead. @@ -5465,15 +6495,23 @@ function $TemplateCacheProvider() { * * `iAttrs` - instance attributes - Normalized list of attributes declared on this element shared * between all directive linking functions. * - * * `controller` - a controller instance - A controller instance if at least one directive on the - * element defines a controller. The controller is shared among all the directives, which allows - * the directives to use the controllers as a communication channel. + * * `controller` - the directive's required controller instance(s) - Instances are shared + * among all directives, which allows the directives to use the controllers as a communication + * channel. The exact value depends on the directive's `require` property: + * * no controller(s) required: the directive's own controller, or `undefined` if it doesn't have one + * * `string`: the controller instance + * * `array`: array of controller instances + * + * If a required controller cannot be found, and it is optional, the instance is `null`, + * otherwise the {@link error:$compile:ctreq Missing Required Controller} error is thrown. + * + * Note that you can also require the directive's own controller - it will be made available like + * like any other controller. * * * `transcludeFn` - A transclude linking function pre-bound to the correct transclusion scope. - * The scope can be overridden by an optional first argument. This is the same as the `$transclude` - * parameter of directive controllers. - * `function([scope], cloneLinkingFn)`. - * + * This is the same as the `$transclude` + * parameter of directive controllers, see there for details. + * `function([scope], cloneLinkingFn, futureParentElement)`. * * #### Pre-linking function * @@ -5482,9 +6520,130 @@ function $TemplateCacheProvider() { * * #### Post-linking function * - * Executed after the child elements are linked. It is safe to do DOM transformation in the post-linking function. + * Executed after the child elements are linked. + * + * Note that child elements that contain `templateUrl` directives will not have been compiled + * and linked since they are waiting for their template to load asynchronously and their own + * compilation and linking has been suspended until that occurs. + * + * It is safe to do DOM transformation in the post-linking function on elements that are not waiting + * for their async templates to be resolved. + * + * + * ### Transclusion + * + * Transclusion is the process of extracting a collection of DOM element from one part of the DOM and + * copying them to another part of the DOM, while maintaining their connection to the original AngularJS + * scope from where they were taken. + * + * Transclusion is used (often with {@link ngTransclude}) to insert the + * original contents of a directive's element into a specified place in the template of the directive. + * The benefit of transclusion, over simply moving the DOM elements manually, is that the transcluded + * content has access to the properties on the scope from which it was taken, even if the directive + * has isolated scope. + * See the {@link guide/directive#creating-a-directive-that-wraps-other-elements Directives Guide}. + * + * This makes it possible for the widget to have private state for its template, while the transcluded + * content has access to its originating scope. + * + *
+ * **Note:** When testing an element transclude directive you must not place the directive at the root of the + * DOM fragment that is being compiled. See {@link guide/unit-testing#testing-transclusion-directives + * Testing Transclusion Directives}. + *
+ * + * #### Transclusion Functions + * + * When a directive requests transclusion, the compiler extracts its contents and provides a **transclusion + * function** to the directive's `link` function and `controller`. This transclusion function is a special + * **linking function** that will return the compiled contents linked to a new transclusion scope. + * + *
+ * If you are just using {@link ngTransclude} then you don't need to worry about this function, since + * ngTransclude will deal with it for us. + *
+ * + * If you want to manually control the insertion and removal of the transcluded content in your directive + * then you must use this transclude function. When you call a transclude function it returns a a jqLite/JQuery + * object that contains the compiled DOM, which is linked to the correct transclusion scope. + * + * When you call a transclusion function you can pass in a **clone attach function**. This function accepts + * two parameters, `function(clone, scope) { ... }`, where the `clone` is a fresh compiled copy of your transcluded + * content and the `scope` is the newly created transclusion scope, to which the clone is bound. + * + *
+ * **Best Practice**: Always provide a `cloneFn` (clone attach function) when you call a translude function + * since you then get a fresh clone of the original DOM and also have access to the new transclusion scope. + *
+ * + * It is normal practice to attach your transcluded content (`clone`) to the DOM inside your **clone + * attach function**: + * + * ```js + * var transcludedContent, transclusionScope; + * + * $transclude(function(clone, scope) { + * element.append(clone); + * transcludedContent = clone; + * transclusionScope = scope; + * }); + * ``` + * + * Later, if you want to remove the transcluded content from your DOM then you should also destroy the + * associated transclusion scope: + * + * ```js + * transcludedContent.remove(); + * transclusionScope.$destroy(); + * ``` + * + *
+ * **Best Practice**: if you intend to add and remove transcluded content manually in your directive + * (by calling the transclude function to get the DOM and calling `element.remove()` to remove it), + * then you are also responsible for calling `$destroy` on the transclusion scope. + *
+ * + * The built-in DOM manipulation directives, such as {@link ngIf}, {@link ngSwitch} and {@link ngRepeat} + * automatically destroy their transluded clones as necessary so you do not need to worry about this if + * you are simply using {@link ngTransclude} to inject the transclusion into your directive. + * + * + * #### Transclusion Scopes + * + * When you call a transclude function it returns a DOM fragment that is pre-bound to a **transclusion + * scope**. This scope is special, in that it is a child of the directive's scope (and so gets destroyed + * when the directive's scope gets destroyed) but it inherits the properties of the scope from which it + * was taken. + * + * For example consider a directive that uses transclusion and isolated scope. The DOM hierarchy might look + * like this: + * + * ```html + *
+ *
+ *
+ *
+ *
+ *
+ * ``` + * + * The `$parent` scope hierarchy will look like this: + * + * ``` + * - $rootScope + * - isolate + * - transclusion + * ``` + * + * but the scopes will inherit prototypically from different scopes to their `$parent`. + * + * ``` + * - $rootScope + * - transclusion + * - isolate + * ``` + * * - * * ### Attributes * * The {@link ng.$compile.directive.Attributes Attributes} object - passed as a parameter in the @@ -5522,7 +6681,7 @@ function $TemplateCacheProvider() { * } * ``` * - * Below is an example using `$compileProvider`. + * ## Example * *
* **Note**: Typically directives are registered with `module.directive`. The example below is @@ -5564,8 +6723,8 @@ function $TemplateCacheProvider() { }]);
-
-
+
+
@@ -5585,21 +6744,41 @@ function $TemplateCacheProvider() { * * * @param {string|DOMElement} element Element or HTML string to compile into a template function. - * @param {function(angular.Scope, cloneAttachFn=)} transclude function available to directives. + * @param {function(angular.Scope, cloneAttachFn=)} transclude function available to directives - DEPRECATED. + * + *
+ * **Note:** Passing a `transclude` function to the $compile function is deprecated, as it + * e.g. will not use the right outer scope. Please pass the transclude function as a + * `parentBoundTranscludeFn` to the link function instead. + *
+ * * @param {number} maxPriority only apply directives lower than given priority (Only effects the * root element(s), not their children) - * @returns {function(scope, cloneAttachFn=)} a link function which is used to bind template + * @returns {function(scope, cloneAttachFn=, options=)} a link function which is used to bind template * (a DOM element/tree) to a scope. Where: * * * `scope` - A {@link ng.$rootScope.Scope Scope} to bind to. * * `cloneAttachFn` - If `cloneAttachFn` is provided, then the link function will clone the * `template` and call the `cloneAttachFn` function allowing the caller to attach the * cloned elements to the DOM document at the appropriate place. The `cloneAttachFn` is - * called as:
`cloneAttachFn(clonedElement, scope)` where: + * called as:
`cloneAttachFn(clonedElement, scope)` where: * * * `clonedElement` - is a clone of the original `element` passed into the compiler. * * `scope` - is the current scope with which the linking function is working with. * + * * `options` - An optional object hash with linking options. If `options` is provided, then the following + * keys may be used to control linking behavior: + * + * * `parentBoundTranscludeFn` - the transclude function made available to + * directives; if given, it will be passed through to the link functions of + * directives found in `element` during compilation. + * * `transcludeControllers` - an object hash with keys that map controller names + * to controller instances; if given, it will make the controllers + * available to directives. + * * `futureParentElement` - defines the parent to which the `cloneAttachFn` will add + * the cloned elements; only needed for transcludes that are allowed to contain non html + * elements (e.g. SVG elements). See also the directive.controller property. + * * Calling the linking function returns the element of the template. It is either the original * element passed in, or the clone of the element if the `cloneAttachFn` is provided. * @@ -5638,7 +6817,6 @@ var $compileMinErr = minErr('$compile'); /** * @ngdoc provider * @name $compileProvider - * @kind function * * @description */ @@ -5646,14 +6824,93 @@ $CompileProvider.$inject = ['$provide', '$$sanitizeUriProvider']; function $CompileProvider($provide, $$sanitizeUriProvider) { var hasDirectives = {}, Suffix = 'Directive', - COMMENT_DIRECTIVE_REGEXP = /^\s*directive\:\s*([\d\w_\-]+)\s+(.*)$/, - CLASS_DIRECTIVE_REGEXP = /(([\d\w_\-]+)(?:\:([^;]+))?;?)/; + COMMENT_DIRECTIVE_REGEXP = /^\s*directive\:\s*([\w\-]+)\s+(.*)$/, + CLASS_DIRECTIVE_REGEXP = /(([\w\-]+)(?:\:([^;]+))?;?)/, + ALL_OR_NOTHING_ATTRS = makeMap('ngSrc,ngSrcset,src,srcset'), + REQUIRE_PREFIX_REGEXP = /^(?:(\^\^?)?(\?)?(\^\^?)?)?/; // Ref: http://developers.whatwg.org/webappapis.html#event-handler-idl-attributes // The assumption is that future DOM event attribute names will begin with // 'on' and be composed of only English letters. var EVENT_HANDLER_ATTR_REGEXP = /^(on[a-z]+|formaction)$/; + function parseIsolateBindings(scope, directiveName, isController) { + var LOCAL_REGEXP = /^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/; + + var bindings = {}; + + forEach(scope, function(definition, scopeName) { + var match = definition.match(LOCAL_REGEXP); + + if (!match) { + throw $compileMinErr('iscp', + "Invalid {3} for directive '{0}'." + + " Definition: {... {1}: '{2}' ...}", + directiveName, scopeName, definition, + (isController ? "controller bindings definition" : + "isolate scope definition")); + } + + bindings[scopeName] = { + mode: match[1][0], + collection: match[2] === '*', + optional: match[3] === '?', + attrName: match[4] || scopeName + }; + }); + + return bindings; + } + + function parseDirectiveBindings(directive, directiveName) { + var bindings = { + isolateScope: null, + bindToController: null + }; + if (isObject(directive.scope)) { + if (directive.bindToController === true) { + bindings.bindToController = parseIsolateBindings(directive.scope, + directiveName, true); + bindings.isolateScope = {}; + } else { + bindings.isolateScope = parseIsolateBindings(directive.scope, + directiveName, false); + } + } + if (isObject(directive.bindToController)) { + bindings.bindToController = + parseIsolateBindings(directive.bindToController, directiveName, true); + } + if (isObject(bindings.bindToController)) { + var controller = directive.controller; + var controllerAs = directive.controllerAs; + if (!controller) { + // There is no controller, there may or may not be a controllerAs property + throw $compileMinErr('noctrl', + "Cannot bind to controller without directive '{0}'s controller.", + directiveName); + } else if (!identifierForController(controller, controllerAs)) { + // There is a controller, but no identifier or controllerAs property + throw $compileMinErr('noident', + "Cannot bind to controller without identifier for directive '{0}'.", + directiveName); + } + } + return bindings; + } + + function assertValidDirectiveName(name) { + var letter = name.charAt(0); + if (!letter || letter !== lowercase(letter)) { + throw $compileMinErr('baddir', "Directive name '{0}' is invalid. The first character must be a lowercase letter", name); + } + if (name !== name.trim()) { + throw $compileMinErr('baddir', + "Directive name '{0}' is invalid. The name should not contain leading or trailing whitespaces", + name); + } + } + /** * @ngdoc method * @name $compileProvider#directive @@ -5672,6 +6929,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { this.directive = function registerDirective(name, directiveFactory) { assertNotHasOwnProperty(name, 'directive'); if (isString(name)) { + assertValidDirectiveName(name); assertArg(directiveFactory, 'directiveFactory'); if (!hasDirectives.hasOwnProperty(name)) { hasDirectives[name] = []; @@ -5690,7 +6948,13 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { directive.index = index; directive.name = directive.name || name; directive.require = directive.require || (directive.controller && directive.name); - directive.restrict = directive.restrict || 'A'; + directive.restrict = directive.restrict || 'EA'; + var bindings = directive.$$bindings = + parseDirectiveBindings(directive, directive.name); + if (isObject(bindings.isolateScope)) { + directive.$$isolateBindings = bindings.isolateScope; + } + directive.$$moduleName = directiveFactory.$$moduleName; directives.push(directive); } catch (e) { $exceptionHandler(e); @@ -5716,7 +6980,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { * Retrieves or overrides the default regular expression that is used for whitelisting of safe * urls during a[href] sanitization. * - * The sanitization is a security measure aimed at prevent XSS attacks via html links. + * The sanitization is a security measure aimed at preventing XSS attacks via html links. * * Any url about to be assigned to a[href] via data-binding is first normalized and turned into * an absolute url. Afterwards, the url is matched against the `aHrefSanitizationWhitelist` @@ -5766,18 +7030,75 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { } }; + /** + * @ngdoc method + * @name $compileProvider#debugInfoEnabled + * + * @param {boolean=} enabled update the debugInfoEnabled state if provided, otherwise just return the + * current debugInfoEnabled state + * @returns {*} current value if used as getter or itself (chaining) if used as setter + * + * @kind function + * + * @description + * Call this method to enable/disable various debug runtime information in the compiler such as adding + * binding information and a reference to the current scope on to DOM elements. + * If enabled, the compiler will add the following to DOM elements that have been bound to the scope + * * `ng-binding` CSS class + * * `$binding` data property containing an array of the binding expressions + * + * You may want to disable this in production for a significant performance boost. See + * {@link guide/production#disabling-debug-data Disabling Debug Data} for more. + * + * The default value is true. + */ + var debugInfoEnabled = true; + this.debugInfoEnabled = function(enabled) { + if (isDefined(enabled)) { + debugInfoEnabled = enabled; + return this; + } + return debugInfoEnabled; + }; + this.$get = [ - '$injector', '$interpolate', '$exceptionHandler', '$http', '$templateCache', '$parse', + '$injector', '$interpolate', '$exceptionHandler', '$templateRequest', '$parse', '$controller', '$rootScope', '$document', '$sce', '$animate', '$$sanitizeUri', - function($injector, $interpolate, $exceptionHandler, $http, $templateCache, $parse, + function($injector, $interpolate, $exceptionHandler, $templateRequest, $parse, $controller, $rootScope, $document, $sce, $animate, $$sanitizeUri) { - var Attributes = function(element, attr) { + var Attributes = function(element, attributesToCopy) { + if (attributesToCopy) { + var keys = Object.keys(attributesToCopy); + var i, l, key; + + for (i = 0, l = keys.length; i < l; i++) { + key = keys[i]; + this[key] = attributesToCopy[key]; + } + } else { + this.$attr = {}; + } + this.$$element = element; - this.$attr = attr || {}; }; Attributes.prototype = { + /** + * @ngdoc method + * @name $compile.directive.Attributes#$normalize + * @kind function + * + * @description + * Converts an attribute name (e.g. dash/colon/underscore-delimited string, optionally prefixed with `x-` or + * `data-`) to its normalized, camelCase form. + * + * Also there is special case for Moz prefix starting with upper case letter. + * + * For further information check out the guide on {@link guide/directive#matching-directives Matching Directives} + * + * @param {string} name Name to normalize + */ $normalize: directiveNormalize, @@ -5792,8 +7113,8 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { * * @param {string} classVal The className value that will be added to the element */ - $addClass : function(classVal) { - if(classVal && classVal.length > 0) { + $addClass: function(classVal) { + if (classVal && classVal.length > 0) { $animate.addClass(this.$$element, classVal); } }, @@ -5809,8 +7130,8 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { * * @param {string} classVal The className value that will be removed from the element */ - $removeClass : function(classVal) { - if(classVal && classVal.length > 0) { + $removeClass: function(classVal) { + if (classVal && classVal.length > 0) { $animate.removeClass(this.$$element, classVal); } }, @@ -5827,16 +7148,15 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { * @param {string} newClasses The current CSS className value * @param {string} oldClasses The former CSS className value */ - $updateClass : function(newClasses, oldClasses) { + $updateClass: function(newClasses, oldClasses) { var toAdd = tokenDifference(newClasses, oldClasses); - var toRemove = tokenDifference(oldClasses, newClasses); - - if(toAdd.length === 0) { - $animate.removeClass(this.$$element, toRemove); - } else if(toRemove.length === 0) { + if (toAdd && toAdd.length) { $animate.addClass(this.$$element, toAdd); - } else { - $animate.setClass(this.$$element, toAdd, toRemove); + } + + var toRemove = tokenDifference(oldClasses, newClasses); + if (toRemove && toRemove.length) { + $animate.removeClass(this.$$element, toRemove); } }, @@ -5854,13 +7174,18 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { //is set through this function since it may cause $updateClass to //become unstable. - var booleanKey = getBooleanAttrName(this.$$element[0], key), - normalizedVal, + var node = this.$$element[0], + booleanKey = getBooleanAttrName(node, key), + aliasedKey = getAliasedAttrName(node, key), + observer = key, nodeName; if (booleanKey) { this.$$element.prop(key, value); attrName = booleanKey; + } else if (aliasedKey) { + this[aliasedKey] = value; + observer = aliasedKey; } this[key] = value; @@ -5877,10 +7202,44 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { nodeName = nodeName_(this.$$element); - // sanitize a[href] and img[src] values - if ((nodeName === 'A' && key === 'href') || - (nodeName === 'IMG' && key === 'src')) { + if ((nodeName === 'a' && key === 'href') || + (nodeName === 'img' && key === 'src')) { + // sanitize a[href] and img[src] values this[key] = value = $$sanitizeUri(value, key === 'src'); + } else if (nodeName === 'img' && key === 'srcset') { + // sanitize img[srcset] values + var result = ""; + + // first check if there are spaces because it's not the same pattern + var trimmedSrcset = trim(value); + // ( 999x ,| 999w ,| ,|, ) + var srcPattern = /(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/; + var pattern = /\s/.test(trimmedSrcset) ? srcPattern : /(,)/; + + // split srcset into tuple of uri and descriptor except for the last item + var rawUris = trimmedSrcset.split(pattern); + + // for each tuples + var nbrUrisWith2parts = Math.floor(rawUris.length / 2); + for (var i = 0; i < nbrUrisWith2parts; i++) { + var innerIdx = i * 2; + // sanitize the uri + result += $$sanitizeUri(trim(rawUris[innerIdx]), true); + // add the descriptor + result += (" " + trim(rawUris[innerIdx + 1])); + } + + // split the last item into uri and descriptor + var lastTuple = trim(rawUris[i * 2]).split(/\s/); + + // sanitize the last uri + result += $$sanitizeUri(trim(lastTuple[0]), true); + + // and add the last descriptor if any + if (lastTuple.length === 2) { + result += (" " + trim(lastTuple[1])); + } + this[key] = value = result; } if (writeAttr !== false) { @@ -5893,7 +7252,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { // fire observers var $$observers = this.$$observers; - $$observers && forEach($$observers[key], function(fn) { + $$observers && forEach($$observers[observer], function(fn) { try { fn(value); } catch (e) { @@ -5918,25 +7277,39 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { * @param {string} key Normalized key. (ie ngAttribute) . * @param {function(interpolatedValue)} fn Function that will be called whenever the interpolated value of the attribute changes. - * See the {@link guide/directive#Attributes Directives} guide for more info. - * @returns {function()} the `fn` parameter. + * See the {@link guide/directive#text-and-attribute-bindings Directives} guide for more info. + * @returns {function()} Returns a deregistration function for this observer. */ $observe: function(key, fn) { var attrs = this, - $$observers = (attrs.$$observers || (attrs.$$observers = {})), + $$observers = (attrs.$$observers || (attrs.$$observers = createMap())), listeners = ($$observers[key] || ($$observers[key] = [])); listeners.push(fn); $rootScope.$evalAsync(function() { - if (!listeners.$$inter) { + if (!listeners.$$inter && attrs.hasOwnProperty(key)) { // no one registered attribute interpolation function, so lets call it manually fn(attrs[key]); } }); - return fn; + + return function() { + arrayRemove(listeners, fn); + }; } }; + + function safeAddClass($element, className) { + try { + $element.addClass(className); + } catch (e) { + // ignore, since it means that we are trying to set class on + // SVG element, where class name is read-only. + } + } + + var startSymbol = $interpolate.startSymbol(), endSymbol = $interpolate.endSymbol(), denormalizeTemplate = (startSymbol == '{{' || endSymbol == '}}') @@ -5946,6 +7319,30 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { }, NG_ATTR_BINDING = /^ngAttr[A-Z]/; + compile.$$addBindingInfo = debugInfoEnabled ? function $$addBindingInfo($element, binding) { + var bindings = $element.data('$binding') || []; + + if (isArray(binding)) { + bindings = bindings.concat(binding); + } else { + bindings.push(binding); + } + + $element.data('$binding', bindings); + } : noop; + + compile.$$addBindingClass = debugInfoEnabled ? function $$addBindingClass($element) { + safeAddClass($element, 'ng-binding'); + } : noop; + + compile.$$addScopeInfo = debugInfoEnabled ? function $$addScopeInfo($element, scope, isolated, noTemplate) { + var dataName = isolated ? (noTemplate ? '$isolateScopeNoTemplate' : '$isolateScope') : '$scope'; + $element.data(dataName, scope); + } : noop; + + compile.$$addScopeClass = debugInfoEnabled ? function $$addScopeClass($element, isolated) { + safeAddClass($element, isolated ? 'ng-isolate-scope' : 'ng-scope'); + } : noop; return compile; @@ -5960,48 +7357,74 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { } // We can not compile top level text elements since text nodes can be merged and we will // not be able to attach scope data to them, so we will wrap them in - forEach($compileNodes, function(node, index){ - if (node.nodeType == 3 /* text node */ && node.nodeValue.match(/\S+/) /* non-empty */ ) { - $compileNodes[index] = node = jqLite(node).wrap('').parent()[0]; + forEach($compileNodes, function(node, index) { + if (node.nodeType == NODE_TYPE_TEXT && node.nodeValue.match(/\S+/) /* non-empty */ ) { + $compileNodes[index] = jqLite(node).wrap('').parent()[0]; } }); var compositeLinkFn = compileNodes($compileNodes, transcludeFn, $compileNodes, maxPriority, ignoreDirective, previousCompileContext); - safeAddClass($compileNodes, 'ng-scope'); - return function publicLinkFn(scope, cloneConnectFn, transcludeControllers, parentBoundTranscludeFn){ + compile.$$addScopeClass($compileNodes); + var namespace = null; + return function publicLinkFn(scope, cloneConnectFn, options) { assertArg(scope, 'scope'); - // important!!: we must call our jqLite.clone() since the jQuery one is trying to be smart - // and sometimes changes the structure of the DOM. - var $linkNode = cloneConnectFn - ? JQLitePrototype.clone.call($compileNodes) // IMPORTANT!!! - : $compileNodes; - forEach(transcludeControllers, function(instance, name) { - $linkNode.data('$' + name + 'Controller', instance); - }); + options = options || {}; + var parentBoundTranscludeFn = options.parentBoundTranscludeFn, + transcludeControllers = options.transcludeControllers, + futureParentElement = options.futureParentElement; - // Attach scope only to non-text nodes. - for(var i = 0, ii = $linkNode.length; i').append($compileNodes).html()) + ); + } else if (cloneConnectFn) { + // important!!: we must call our jqLite.clone() since the jQuery one is trying to be smart + // and sometimes changes the structure of the DOM. + $linkNode = JQLitePrototype.clone.call($compileNodes); + } else { + $linkNode = $compileNodes; + } + + if (transcludeControllers) { + for (var controllerName in transcludeControllers) { + $linkNode.data('$' + controllerName + 'Controller', transcludeControllers[controllerName].instance); } } + compile.$$addScopeInfo($linkNode, scope); + if (cloneConnectFn) cloneConnectFn($linkNode, scope); if (compositeLinkFn) compositeLinkFn(scope, $linkNode, $linkNode, parentBoundTranscludeFn); return $linkNode; }; } - function safeAddClass($element, className) { - try { - $element.addClass(className); - } catch(e) { - // ignore, since it means that we are trying to set class on - // SVG element, where class name is read-only. + function detectNamespaceForChildElements(parentElement) { + // TODO: Make this detect MathML as well... + var node = parentElement && parentElement[0]; + if (!node) { + return 'html'; + } else { + return nodeName_(node) !== 'foreignobject' && node.toString().match(/SVG/) ? 'svg' : 'html'; } } @@ -6023,7 +7446,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { function compileNodes(nodeList, transcludeFn, $rootElement, maxPriority, ignoreDirective, previousCompileContext) { var linkFns = [], - attrs, directives, nodeLinkFn, childNodes, childLinkFn, linkFnFound; + attrs, directives, nodeLinkFn, childNodes, childLinkFn, linkFnFound, nodeLinkFnFound; for (var i = 0; i < nodeList.length; i++) { attrs = new Attributes(); @@ -6038,7 +7461,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { : null; if (nodeLinkFn && nodeLinkFn.scope) { - safeAddClass(attrs.$$element, 'ng-scope'); + compile.$$addScopeClass(attrs.$$element); } childLinkFn = (nodeLinkFn && nodeLinkFn.terminal || @@ -6050,8 +7473,12 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { (nodeLinkFn.transcludeOnThisElement || !nodeLinkFn.templateOnThisElement) && nodeLinkFn.transclude) : transcludeFn); - linkFns.push(nodeLinkFn, childLinkFn); - linkFnFound = linkFnFound || nodeLinkFn || childLinkFn; + if (nodeLinkFn || childLinkFn) { + linkFns.push(i, nodeLinkFn, childLinkFn); + linkFnFound = true; + nodeLinkFnFound = nodeLinkFnFound || nodeLinkFn; + } + //use the previous context only for the first element in the virtual group previousCompileContext = null; } @@ -6060,30 +7487,46 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { return linkFnFound ? compositeLinkFn : null; function compositeLinkFn(scope, nodeList, $rootElement, parentBoundTranscludeFn) { - var nodeLinkFn, childLinkFn, node, childScope, i, ii, n, childBoundTranscludeFn; + var nodeLinkFn, childLinkFn, node, childScope, i, ii, idx, childBoundTranscludeFn; + var stableNodeList; - // copy nodeList so that linking doesn't break due to live list updates. - var nodeListLength = nodeList.length, - stableNodeList = new Array(nodeListLength); - for (i = 0; i < nodeListLength; i++) { - stableNodeList[i] = nodeList[i]; + + if (nodeLinkFnFound) { + // copy nodeList so that if a nodeLinkFn removes or adds an element at this DOM level our + // offsets don't get screwed up + var nodeListLength = nodeList.length; + stableNodeList = new Array(nodeListLength); + + // create a sparse array by only copying the elements which have a linkFn + for (i = 0; i < linkFns.length; i+=3) { + idx = linkFns[i]; + stableNodeList[idx] = nodeList[idx]; + } + } else { + stableNodeList = nodeList; } - for(i = 0, n = 0, ii = linkFns.length; i < ii; n++) { - node = stableNodeList[n]; + for (i = 0, ii = linkFns.length; i < ii;) { + node = stableNodeList[linkFns[i++]]; nodeLinkFn = linkFns[i++]; childLinkFn = linkFns[i++]; if (nodeLinkFn) { if (nodeLinkFn.scope) { childScope = scope.$new(); - jqLite.data(node, '$scope', childScope); + compile.$$addScopeInfo(jqLite(node), childScope); + var destroyBindings = nodeLinkFn.$$destroyBindings; + if (destroyBindings) { + nodeLinkFn.$$destroyBindings = null; + childScope.$on('$destroyed', destroyBindings); + } } else { childScope = scope; } - if ( nodeLinkFn.transcludeOnThisElement ) { - childBoundTranscludeFn = createBoundTranscludeFn(scope, nodeLinkFn.transclude, parentBoundTranscludeFn); + if (nodeLinkFn.transcludeOnThisElement) { + childBoundTranscludeFn = createBoundTranscludeFn( + scope, nodeLinkFn.transclude, parentBoundTranscludeFn); } else if (!nodeLinkFn.templateOnThisElement && parentBoundTranscludeFn) { childBoundTranscludeFn = parentBoundTranscludeFn; @@ -6095,7 +7538,8 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { childBoundTranscludeFn = null; } - nodeLinkFn(childLinkFn, childScope, node, $rootElement, childBoundTranscludeFn); + nodeLinkFn(childLinkFn, childScope, node, $rootElement, childBoundTranscludeFn, + nodeLinkFn); } else if (childLinkFn) { childLinkFn(scope, node.childNodes, undefined, parentBoundTranscludeFn); @@ -6106,20 +7550,18 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { function createBoundTranscludeFn(scope, transcludeFn, previousBoundTranscludeFn) { - var boundTranscludeFn = function(transcludedScope, cloneFn, controllers) { - var scopeCreated = false; + var boundTranscludeFn = function(transcludedScope, cloneFn, controllers, futureParentElement, containingScope) { if (!transcludedScope) { - transcludedScope = scope.$new(); + transcludedScope = scope.$new(false, containingScope); transcludedScope.$$transcluded = true; - scopeCreated = true; } - var clone = transcludeFn(transcludedScope, cloneFn, controllers, previousBoundTranscludeFn); - if (scopeCreated) { - clone.on('$destroy', function() { transcludedScope.$destroy(); }); - } - return clone; + return transcludeFn(transcludedScope, cloneFn, { + parentBoundTranscludeFn: previousBoundTranscludeFn, + transcludeControllers: controllers, + futureParentElement: futureParentElement + }); }; return boundTranscludeFn; @@ -6141,11 +7583,11 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { match, className; - switch(nodeType) { - case 1: /* Element */ + switch (nodeType) { + case NODE_TYPE_ELEMENT: /* Element */ // use the node name: addDirective(directives, - directiveNormalize(nodeName_(node).toLowerCase()), 'E', maxPriority, ignoreDirective); + directiveNormalize(nodeName_(node)), 'E', maxPriority, ignoreDirective); // iterate over the attributes for (var attr, name, nName, ngAttrName, value, isNgAttr, nAttrs = node.attributes, @@ -6154,39 +7596,46 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { var attrEndName = false; attr = nAttrs[j]; - if (!msie || msie >= 8 || attr.specified) { - name = attr.name; - value = trim(attr.value); + name = attr.name; + value = trim(attr.value); - // support ngAttr attribute binding - ngAttrName = directiveNormalize(name); - if (isNgAttr = NG_ATTR_BINDING.test(ngAttrName)) { - name = snake_case(ngAttrName.substr(6), '-'); - } + // support ngAttr attribute binding + ngAttrName = directiveNormalize(name); + if (isNgAttr = NG_ATTR_BINDING.test(ngAttrName)) { + name = name.replace(PREFIX_REGEXP, '') + .substr(8).replace(/_(.)/g, function(match, letter) { + return letter.toUpperCase(); + }); + } - var directiveNName = ngAttrName.replace(/(Start|End)$/, ''); + var directiveNName = ngAttrName.replace(/(Start|End)$/, ''); + if (directiveIsMultiElement(directiveNName)) { if (ngAttrName === directiveNName + 'Start') { attrStartName = name; attrEndName = name.substr(0, name.length - 5) + 'end'; name = name.substr(0, name.length - 6); } - - nName = directiveNormalize(name.toLowerCase()); - attrsMap[nName] = name; - if (isNgAttr || !attrs.hasOwnProperty(nName)) { - attrs[nName] = value; - if (getBooleanAttrName(node, nName)) { - attrs[nName] = true; // presence means true - } - } - addAttrInterpolateDirective(node, directives, value, nName); - addDirective(directives, nName, 'A', maxPriority, ignoreDirective, attrStartName, - attrEndName); } + + nName = directiveNormalize(name.toLowerCase()); + attrsMap[nName] = name; + if (isNgAttr || !attrs.hasOwnProperty(nName)) { + attrs[nName] = value; + if (getBooleanAttrName(node, nName)) { + attrs[nName] = true; // presence means true + } + } + addAttrInterpolateDirective(node, directives, value, nName, isNgAttr); + addDirective(directives, nName, 'A', maxPriority, ignoreDirective, attrStartName, + attrEndName); } // use class as directive className = node.className; + if (isObject(className)) { + // Maybe SVGAnimatedString + className = className.animVal; + } if (isString(className) && className !== '') { while (match = CLASS_DIRECTIVE_REGEXP.exec(className)) { nName = directiveNormalize(match[2]); @@ -6197,10 +7646,17 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { } } break; - case 3: /* Text Node */ + case NODE_TYPE_TEXT: /* Text Node */ + if (msie === 11) { + // Workaround for #11781 + while (node.parentNode && node.nextSibling && node.nextSibling.nodeType === NODE_TYPE_TEXT) { + node.nodeValue = node.nodeValue + node.nextSibling.nodeValue; + node.parentNode.removeChild(node.nextSibling); + } + } addTextInterpolateDirective(directives, node.nodeValue); break; - case 8: /* Comment */ + case NODE_TYPE_COMMENT: /* Comment */ try { match = COMMENT_DIRECTIVE_REGEXP.exec(node.nodeValue); if (match) { @@ -6233,14 +7689,13 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { var nodes = []; var depth = 0; if (attrStart && node.hasAttribute && node.hasAttribute(attrStart)) { - var startNode = node; do { if (!node) { throw $compileMinErr('uterdir', "Unterminated attribute, found '{0}' but no matching '{1}' found.", attrStart, attrEnd); } - if (node.nodeType == 1 /** Element **/) { + if (node.nodeType == NODE_TYPE_ELEMENT) { if (node.hasAttribute(attrStart)) depth++; if (node.hasAttribute(attrEnd)) depth--; } @@ -6298,7 +7753,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { previousCompileContext = previousCompileContext || {}; var terminalPriority = -Number.MAX_VALUE, - newScopeDirective, + newScopeDirective = previousCompileContext.newScopeDirective, controllerDirectives = previousCompileContext.controllerDirectives, newIsolateScopeDirective = previousCompileContext.newIsolateScopeDirective, templateDirective = previousCompileContext.templateDirective, @@ -6316,7 +7771,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { directiveValue; // executes all directives on the current element - for(var i = 0, ii = directives.length; i < ii; i++) { + for (var i = 0, ii = directives.length; i < ii; i++) { directive = directives[i]; var attrStart = directive.$$start; var attrEnd = directive.$$end; @@ -6332,24 +7787,32 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { } if (directiveValue = directive.scope) { - newScopeDirective = newScopeDirective || directive; // skip the check for directives with async templates, we'll check the derived sync // directive when the template arrives if (!directive.templateUrl) { - assertNoDuplicate('new/isolated scope', newIsolateScopeDirective, directive, - $compileNode); if (isObject(directiveValue)) { + // This directive is trying to add an isolated scope. + // Check that there is no scope of any kind already + assertNoDuplicate('new/isolated scope', newIsolateScopeDirective || newScopeDirective, + directive, $compileNode); newIsolateScopeDirective = directive; + } else { + // This directive is trying to add a child scope. + // Check that there is no isolated scope already + assertNoDuplicate('new/isolated scope', newIsolateScopeDirective, directive, + $compileNode); } } + + newScopeDirective = newScopeDirective || directive; } directiveName = directive.name; if (!directive.templateUrl && directive.controller) { directiveValue = directive.controller; - controllerDirectives = controllerDirectives || {}; + controllerDirectives = controllerDirectives || createMap(); assertNoDuplicate("'" + directiveName + "' controller", controllerDirectives[directiveName], directive, $compileNode); controllerDirectives[directiveName] = directive; @@ -6410,11 +7873,11 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { if (jqLiteIsTextNode(directiveValue)) { $template = []; } else { - $template = jqLite(trim(directiveValue)); + $template = removeComments(wrapTemplate(directive.templateNamespace, trim(directiveValue))); } compileNode = $template[0]; - if ($template.length != 1 || compileNode.nodeType !== 1) { + if ($template.length != 1 || compileNode.nodeType !== NODE_TYPE_ELEMENT) { throw $compileMinErr('tplrt', "Template for directive '{0}' must have exactly one root element. {1}", directiveName, ''); @@ -6456,6 +7919,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { nodeLinkFn = compileTemplateUrl(directives.splice(i, directives.length - i), $compileNode, templateAttrs, jqCollection, hasTranscludeDirective && childTranscludeFn, preLinkFns, postLinkFns, { controllerDirectives: controllerDirectives, + newScopeDirective: (newScopeDirective !== directive) && newScopeDirective, newIsolateScopeDirective: newIsolateScopeDirective, templateDirective: templateDirective, nonTlbTranscludeDirective: nonTlbTranscludeDirective @@ -6516,176 +7980,159 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { function getControllers(directiveName, require, $element, elementControllers) { - var value, retrievalMethod = 'data', optional = false; - if (isString(require)) { - while((value = require.charAt(0)) == '^' || value == '?') { - require = require.substr(1); - if (value == '^') { - retrievalMethod = 'inheritedData'; - } - optional = optional || value == '?'; - } - value = null; + var value; - if (elementControllers && retrievalMethod === 'data') { - value = elementControllers[require]; + if (isString(require)) { + var match = require.match(REQUIRE_PREFIX_REGEXP); + var name = require.substring(match[0].length); + var inheritType = match[1] || match[3]; + var optional = match[2] === '?'; + + //If only parents then start at the parent element + if (inheritType === '^^') { + $element = $element.parent(); + //Otherwise attempt getting the controller from elementControllers in case + //the element is transcluded (and has no data) and to avoid .data if possible + } else { + value = elementControllers && elementControllers[name]; + value = value && value.instance; + } + + if (!value) { + var dataName = '$' + name + 'Controller'; + value = inheritType ? $element.inheritedData(dataName) : $element.data(dataName); } - value = value || $element[retrievalMethod]('$' + require + 'Controller'); if (!value && !optional) { throw $compileMinErr('ctreq', "Controller '{0}', required by directive '{1}', can't be found!", - require, directiveName); + name, directiveName); } - return value; } else if (isArray(require)) { value = []; - forEach(require, function(require) { - value.push(getControllers(directiveName, require, $element, elementControllers)); - }); + for (var i = 0, ii = require.length; i < ii; i++) { + value[i] = getControllers(directiveName, require[i], $element, elementControllers); + } } - return value; + + return value || null; } + function setupControllers($element, attrs, transcludeFn, controllerDirectives, isolateScope, scope) { + var elementControllers = createMap(); + for (var controllerKey in controllerDirectives) { + var directive = controllerDirectives[controllerKey]; + var locals = { + $scope: directive === newIsolateScopeDirective || directive.$$isolateScope ? isolateScope : scope, + $element: $element, + $attrs: attrs, + $transclude: transcludeFn + }; - function nodeLinkFn(childLinkFn, scope, linkNode, $rootElement, boundTranscludeFn) { - var attrs, $element, i, ii, linkFn, controller, isolateScope, elementControllers = {}, transcludeFn; - - attrs = (compileNode === linkNode) - ? templateAttrs - : shallowCopy(templateAttrs, new Attributes(jqLite(linkNode), templateAttrs.$attr)); - $element = attrs.$$element; - - if (newIsolateScopeDirective) { - var LOCAL_REGEXP = /^\s*([@=&])(\??)\s*(\w*)\s*$/; - - isolateScope = scope.$new(true); - - if (templateDirective && (templateDirective === newIsolateScopeDirective || - templateDirective === newIsolateScopeDirective.$$originalDirective)) { - $element.data('$isolateScope', isolateScope); - } else { - $element.data('$isolateScopeNoTemplate', isolateScope); + var controller = directive.controller; + if (controller == '@') { + controller = attrs[directive.name]; } + var controllerInstance = $controller(controller, locals, true, directive.controllerAs); - - safeAddClass($element, 'ng-isolate-scope'); - - forEach(newIsolateScopeDirective.scope, function(definition, scopeName) { - var match = definition.match(LOCAL_REGEXP) || [], - attrName = match[3] || scopeName, - optional = (match[2] == '?'), - mode = match[1], // @, =, or & - lastValue, - parentGet, parentSet, compare; - - isolateScope.$$isolateBindings[scopeName] = mode + attrName; - - switch (mode) { - - case '@': - attrs.$observe(attrName, function(value) { - isolateScope[scopeName] = value; - }); - attrs.$$observers[attrName].$$scope = scope; - if( attrs[attrName] ) { - // If the attribute has been provided then we trigger an interpolation to ensure - // the value is there for use in the link fn - isolateScope[scopeName] = $interpolate(attrs[attrName])(scope); - } - break; - - case '=': - if (optional && !attrs[attrName]) { - return; - } - parentGet = $parse(attrs[attrName]); - if (parentGet.literal) { - compare = equals; - } else { - compare = function(a,b) { return a === b || (a !== a && b !== b); }; - } - parentSet = parentGet.assign || function() { - // reset the change, or we will throw this exception on every $digest - lastValue = isolateScope[scopeName] = parentGet(scope); - throw $compileMinErr('nonassign', - "Expression '{0}' used with directive '{1}' is non-assignable!", - attrs[attrName], newIsolateScopeDirective.name); - }; - lastValue = isolateScope[scopeName] = parentGet(scope); - isolateScope.$watch(function parentValueWatch() { - var parentValue = parentGet(scope); - if (!compare(parentValue, isolateScope[scopeName])) { - // we are out of sync and need to copy - if (!compare(parentValue, lastValue)) { - // parent changed and it has precedence - isolateScope[scopeName] = parentValue; - } else { - // if the parent can be assigned then do so - parentSet(scope, parentValue = isolateScope[scopeName]); - } - } - return lastValue = parentValue; - }, null, parentGet.literal); - break; - - case '&': - parentGet = $parse(attrs[attrName]); - isolateScope[scopeName] = function(locals) { - return parentGet(scope, locals); - }; - break; - - default: - throw $compileMinErr('iscp', - "Invalid isolate scope definition for directive '{0}'." + - " Definition: {... {1}: '{2}' ...}", - newIsolateScopeDirective.name, scopeName, definition); - } - }); + // For directives with element transclusion the element is a comment, + // but jQuery .data doesn't support attaching data to comment nodes as it's hard to + // clean up (http://bugs.jquery.com/ticket/8335). + // Instead, we save the controllers for the element in a local hash and attach to .data + // later, once we have the actual element. + elementControllers[directive.name] = controllerInstance; + if (!hasElementTranscludeDirective) { + $element.data('$' + directive.name + 'Controller', controllerInstance.instance); + } } - transcludeFn = boundTranscludeFn && controllersBoundTransclude; + return elementControllers; + } + + function nodeLinkFn(childLinkFn, scope, linkNode, $rootElement, boundTranscludeFn, + thisLinkFn) { + var i, ii, linkFn, controller, isolateScope, elementControllers, transcludeFn, $element, + attrs; + + if (compileNode === linkNode) { + attrs = templateAttrs; + $element = templateAttrs.$$element; + } else { + $element = jqLite(linkNode); + attrs = new Attributes($element, templateAttrs); + } + + if (newIsolateScopeDirective) { + isolateScope = scope.$new(true); + } + + if (boundTranscludeFn) { + // track `boundTranscludeFn` so it can be unwrapped if `transcludeFn` + // is later passed as `parentBoundTranscludeFn` to `publicLinkFn` + transcludeFn = controllersBoundTransclude; + transcludeFn.$$boundTransclude = boundTranscludeFn; + } + if (controllerDirectives) { - forEach(controllerDirectives, function(directive) { - var locals = { - $scope: directive === newIsolateScopeDirective || directive.$$isolateScope ? isolateScope : scope, - $element: $element, - $attrs: attrs, - $transclude: transcludeFn - }, controllerInstance; + elementControllers = setupControllers($element, attrs, transcludeFn, controllerDirectives, isolateScope, scope); + } - controller = directive.controller; - if (controller == '@') { - controller = attrs[directive.name]; - } + if (newIsolateScopeDirective) { + // Initialize isolate scope bindings for new isolate scope directive. + compile.$$addScopeInfo($element, isolateScope, true, !(templateDirective && (templateDirective === newIsolateScopeDirective || + templateDirective === newIsolateScopeDirective.$$originalDirective))); + compile.$$addScopeClass($element, true); + isolateScope.$$isolateBindings = + newIsolateScopeDirective.$$isolateBindings; + initializeDirectiveBindings(scope, attrs, isolateScope, + isolateScope.$$isolateBindings, + newIsolateScopeDirective, isolateScope); + } + if (elementControllers) { + // Initialize bindToController bindings for new/isolate scopes + var scopeDirective = newIsolateScopeDirective || newScopeDirective; + var bindings; + var controllerForBindings; + if (scopeDirective && elementControllers[scopeDirective.name]) { + bindings = scopeDirective.$$bindings.bindToController; + controller = elementControllers[scopeDirective.name]; - controllerInstance = $controller(controller, locals); - // For directives with element transclusion the element is a comment, - // but jQuery .data doesn't support attaching data to comment nodes as it's hard to - // clean up (http://bugs.jquery.com/ticket/8335). - // Instead, we save the controllers for the element in a local hash and attach to .data - // later, once we have the actual element. - elementControllers[directive.name] = controllerInstance; - if (!hasElementTranscludeDirective) { - $element.data('$' + directive.name + 'Controller', controllerInstance); + if (controller && controller.identifier && bindings) { + controllerForBindings = controller; + thisLinkFn.$$destroyBindings = + initializeDirectiveBindings(scope, attrs, controller.instance, + bindings, scopeDirective); } + } + for (i in elementControllers) { + controller = elementControllers[i]; + var controllerResult = controller(); - if (directive.controllerAs) { - locals.$scope[directive.controllerAs] = controllerInstance; + if (controllerResult !== controller.instance) { + // If the controller constructor has a return value, overwrite the instance + // from setupControllers and update the element data + controller.instance = controllerResult; + $element.data('$' + i + 'Controller', controllerResult); + if (controller === controllerForBindings) { + // Remove and re-install bindToController bindings + thisLinkFn.$$destroyBindings(); + thisLinkFn.$$destroyBindings = + initializeDirectiveBindings(scope, attrs, controllerResult, bindings, scopeDirective); + } } - }); + } } // PRELINKING - for(i = 0, ii = preLinkFns.length; i < ii; i++) { - try { - linkFn = preLinkFns[i]; - linkFn(linkFn.isolateScope ? isolateScope : scope, $element, attrs, - linkFn.require && getControllers(linkFn.directiveName, linkFn.require, $element, elementControllers), transcludeFn); - } catch (e) { - $exceptionHandler(e, startingTag($element)); - } + for (i = 0, ii = preLinkFns.length; i < ii; i++) { + linkFn = preLinkFns[i]; + invokeLinkFn(linkFn, + linkFn.isolateScope ? isolateScope : scope, + $element, + attrs, + linkFn.require && getControllers(linkFn.directiveName, linkFn.require, $element, elementControllers), + transcludeFn + ); } // RECURSION @@ -6698,22 +8145,25 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { childLinkFn && childLinkFn(scopeToChild, linkNode.childNodes, undefined, boundTranscludeFn); // POSTLINKING - for(i = postLinkFns.length - 1; i >= 0; i--) { - try { - linkFn = postLinkFns[i]; - linkFn(linkFn.isolateScope ? isolateScope : scope, $element, attrs, - linkFn.require && getControllers(linkFn.directiveName, linkFn.require, $element, elementControllers), transcludeFn); - } catch (e) { - $exceptionHandler(e, startingTag($element)); - } + for (i = postLinkFns.length - 1; i >= 0; i--) { + linkFn = postLinkFns[i]; + invokeLinkFn(linkFn, + linkFn.isolateScope ? isolateScope : scope, + $element, + attrs, + linkFn.require && getControllers(linkFn.directiveName, linkFn.require, $element, elementControllers), + transcludeFn + ); } // This is the function that is injected as `$transclude`. - function controllersBoundTransclude(scope, cloneAttachFn) { + // Note: all arguments are optional! + function controllersBoundTransclude(scope, cloneAttachFn, futureParentElement) { var transcludeControllers; - // no scope passed - if (arguments.length < 2) { + // No scope passed in: + if (!isScope(scope)) { + futureParentElement = cloneAttachFn; cloneAttachFn = scope; scope = undefined; } @@ -6721,8 +8171,10 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { if (hasElementTranscludeDirective) { transcludeControllers = elementControllers; } - - return boundTranscludeFn(scope, cloneAttachFn, transcludeControllers); + if (!futureParentElement) { + futureParentElement = hasElementTranscludeDirective ? $element.parent() : $element; + } + return boundTranscludeFn(scope, cloneAttachFn, transcludeControllers, futureParentElement, scopeToChild); } } } @@ -6753,11 +8205,11 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { if (name === ignoreDirective) return null; var match = null; if (hasDirectives.hasOwnProperty(name)) { - for(var directive, directives = $injector.get(name + Suffix), - i = 0, ii = directives.length; i directive.priority) && + if ((maxPriority === undefined || maxPriority > directive.priority) && directive.restrict.indexOf(location) != -1) { if (startAttrName) { directive = inherit(directive, {$$start: startAttrName, $$end: endAttrName}); @@ -6765,13 +8217,34 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { tDirectives.push(directive); match = directive; } - } catch(e) { $exceptionHandler(e); } + } catch (e) { $exceptionHandler(e); } } } return match; } + /** + * looks up the directive and returns true if it is a multi-element directive, + * and therefore requires DOM nodes between -start and -end markers to be grouped + * together. + * + * @param {string} name name of the directive to look up. + * @returns true if directive was registered as multi-element. + */ + function directiveIsMultiElement(name) { + if (hasDirectives.hasOwnProperty(name)) { + for (var directive, directives = $injector.get(name + Suffix), + i = 0, ii = directives.length; i < ii; i++) { + directive = directives[i]; + if (directive.multiElement) { + return true; + } + } + } + return false; + } + /** * When the element is replaced with HTML template then the new attributes * on the template need to be merged with the existing attributes in the DOM. @@ -6821,18 +8294,18 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { afterTemplateChildLinkFn, beforeTemplateCompileNode = $compileNode[0], origAsyncDirective = directives.shift(), - // The fact that we have to copy and patch the directive seems wrong! - derivedSyncDirective = extend({}, origAsyncDirective, { + derivedSyncDirective = inherit(origAsyncDirective, { templateUrl: null, transclude: null, replace: null, $$originalDirective: origAsyncDirective }), templateUrl = (isFunction(origAsyncDirective.templateUrl)) ? origAsyncDirective.templateUrl($compileNode, tAttrs) - : origAsyncDirective.templateUrl; + : origAsyncDirective.templateUrl, + templateNamespace = origAsyncDirective.templateNamespace; $compileNode.empty(); - $http.get($sce.getTrustedResourceUrl(templateUrl), {cache: $templateCache}). - success(function(content) { + $templateRequest(templateUrl) + .then(function(content) { var compileNode, tempTemplateAttrs, $template, childBoundTranscludeFn; content = denormalizeTemplate(content); @@ -6841,11 +8314,11 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { if (jqLiteIsTextNode(content)) { $template = []; } else { - $template = jqLite(trim(content)); + $template = removeComments(wrapTemplate(templateNamespace, trim(content))); } compileNode = $template[0]; - if ($template.length != 1 || compileNode.nodeType !== 1) { + if ($template.length != 1 || compileNode.nodeType !== NODE_TYPE_ELEMENT) { throw $compileMinErr('tplrt', "Template for directive '{0}' must have exactly one root element. {1}", origAsyncDirective.name, templateUrl); @@ -6877,13 +8350,15 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { }); afterTemplateChildLinkFn = compileNodes($compileNode[0].childNodes, childTranscludeFn); - while(linkQueue.length) { + while (linkQueue.length) { var scope = linkQueue.shift(), beforeTemplateLinkNode = linkQueue.shift(), linkRootElement = linkQueue.shift(), boundTranscludeFn = linkQueue.shift(), linkNode = $compileNode[0]; + if (scope.$$destroyed) continue; + if (beforeTemplateLinkNode !== beforeTemplateCompileNode) { var oldClasses = beforeTemplateLinkNode.className; @@ -6892,7 +8367,6 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { // it was cloned therefore we have to clone as well. linkNode = jqLiteClone(compileNode); } - replaceWith(linkRootElement, jqLite(beforeTemplateLinkNode), linkNode); // Copy in CSS classes from original node @@ -6904,26 +8378,25 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { childBoundTranscludeFn = boundTranscludeFn; } afterTemplateNodeLinkFn(afterTemplateChildLinkFn, scope, linkNode, $rootElement, - childBoundTranscludeFn); + childBoundTranscludeFn, afterTemplateNodeLinkFn); } linkQueue = null; - }). - error(function(response, code, headers, config) { - throw $compileMinErr('tpload', 'Failed to load template: {0}', config.url); }); return function delayedNodeLinkFn(ignoreChildLinkFn, scope, node, rootElement, boundTranscludeFn) { var childBoundTranscludeFn = boundTranscludeFn; + if (scope.$$destroyed) return; if (linkQueue) { - linkQueue.push(scope); - linkQueue.push(node); - linkQueue.push(rootElement); - linkQueue.push(childBoundTranscludeFn); + linkQueue.push(scope, + node, + rootElement, + childBoundTranscludeFn); } else { if (afterTemplateNodeLinkFn.transcludeOnThisElement) { childBoundTranscludeFn = createBoundTranscludeFn(scope, afterTemplateNodeLinkFn.transclude, boundTranscludeFn); } - afterTemplateNodeLinkFn(afterTemplateChildLinkFn, scope, node, rootElement, childBoundTranscludeFn); + afterTemplateNodeLinkFn(afterTemplateChildLinkFn, scope, node, rootElement, childBoundTranscludeFn, + afterTemplateNodeLinkFn); } }; } @@ -6939,40 +8412,61 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { return a.index - b.index; } - function assertNoDuplicate(what, previousDirective, directive, element) { + + function wrapModuleNameIfDefined(moduleName) { + return moduleName ? + (' (module: ' + moduleName + ')') : + ''; + } + if (previousDirective) { - throw $compileMinErr('multidir', 'Multiple directives [{0}, {1}] asking for {2} on: {3}', - previousDirective.name, directive.name, what, startingTag(element)); + throw $compileMinErr('multidir', 'Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}', + previousDirective.name, wrapModuleNameIfDefined(previousDirective.$$moduleName), + directive.name, wrapModuleNameIfDefined(directive.$$moduleName), what, startingTag(element)); } } - function addTextInterpolateDirective(directives, text) { - var interpolateFn = $interpolate(text, true); - if (interpolateFn) { - directives.push({ - priority: 0, - compile: function textInterpolateCompileFn(templateNode) { - // when transcluding a template that has bindings in the root - // then we don't have a parent and should do this in the linkFn - var parent = templateNode.parent(), hasCompileParent = parent.length; - if (hasCompileParent) safeAddClass(templateNode.parent(), 'ng-binding'); + function addTextInterpolateDirective(directives, text) { + var interpolateFn = $interpolate(text, true); + if (interpolateFn) { + directives.push({ + priority: 0, + compile: function textInterpolateCompileFn(templateNode) { + var templateNodeParent = templateNode.parent(), + hasCompileParent = !!templateNodeParent.length; - return function textInterpolateLinkFn(scope, node) { - var parent = node.parent(), - bindings = parent.data('$binding') || []; - bindings.push(interpolateFn); - parent.data('$binding', bindings); - if (!hasCompileParent) safeAddClass(parent, 'ng-binding'); - scope.$watch(interpolateFn, function interpolateFnWatchAction(value) { - node[0].nodeValue = value; - }); - }; - } - }); - } + // When transcluding a template that has bindings in the root + // we don't have a parent and thus need to add the class during linking fn. + if (hasCompileParent) compile.$$addBindingClass(templateNodeParent); + + return function textInterpolateLinkFn(scope, node) { + var parent = node.parent(); + if (!hasCompileParent) compile.$$addBindingClass(parent); + compile.$$addBindingInfo(parent, interpolateFn.expressions); + scope.$watch(interpolateFn, function interpolateFnWatchAction(value) { + node[0].nodeValue = value; + }); + }; + } + }); } + } + + + function wrapTemplate(type, template) { + type = lowercase(type || 'html'); + switch (type) { + case 'svg': + case 'math': + var wrapper = document.createElement('div'); + wrapper.innerHTML = '<' + type + '>' + template + ''; + return wrapper.childNodes[0].childNodes; + default: + return template; + } + } function getTrustedContext(node, attrNormalizedName) { @@ -6982,22 +8476,25 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { var tag = nodeName_(node); // maction[xlink:href] can source SVG. It's not limited to . if (attrNormalizedName == "xlinkHref" || - (tag == "FORM" && attrNormalizedName == "action") || - (tag != "IMG" && (attrNormalizedName == "src" || + (tag == "form" && attrNormalizedName == "action") || + (tag != "img" && (attrNormalizedName == "src" || attrNormalizedName == "ngSrc"))) { return $sce.RESOURCE_URL; } } - function addAttrInterpolateDirective(node, directives, value, name) { - var interpolateFn = $interpolate(value, true); + function addAttrInterpolateDirective(node, directives, value, name, allOrNothing) { + var trustedContext = getTrustedContext(node, name); + allOrNothing = ALL_OR_NOTHING_ATTRS[name] || allOrNothing; + + var interpolateFn = $interpolate(value, true, trustedContext, allOrNothing); // no interpolation found -> ignore if (!interpolateFn) return; - if (name === "multiple" && nodeName_(node) === "SELECT") { + if (name === "multiple" && nodeName_(node) === "select") { throw $compileMinErr("selmulti", "Binding to the 'multiple' attribute is not supported. Element: {0}", startingTag(node)); @@ -7016,17 +8513,25 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { "ng- versions (such as ng-click instead of onclick) instead."); } - // we need to interpolate again, in case the attribute value has been updated - // (e.g. by another directive's compile function) - interpolateFn = $interpolate(attr[name], true, getTrustedContext(node, name)); + // If the attribute has changed since last $interpolate()ed + var newValue = attr[name]; + if (newValue !== value) { + // we need to interpolate again since the attribute value has been updated + // (e.g. by another directive's compile function) + // ensure unset/empty values make interpolateFn falsy + interpolateFn = newValue && $interpolate(newValue, true, trustedContext, allOrNothing); + value = newValue; + } // if attribute was updated so that there is no interpolation going on we don't want to // register any observers if (!interpolateFn) return; - // TODO(i): this should likely be attr.$set(name, iterpolateFn(scope) so that we reset the - // actual attr value + // initialize attr object so that it's ready in case we need the value for isolate + // scope initialization, otherwise the value would not be available from isolate + // directive's linking fn during linking phase attr[name] = interpolateFn(scope); + ($$observers[name] || ($$observers[name] = [])).$$inter = true; (attr.$$observers && attr.$$observers[name].$$scope || scope). $watch(interpolateFn, function interpolateFnWatchAction(newValue, oldValue) { @@ -7036,7 +8541,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { //skip animations when the first digest occurs (when //both the new and the old values are the same) since //the CSS classes are the non-interpolated values - if(name === 'class' && newValue != oldValue) { + if (name === 'class' && newValue != oldValue) { attr.$updateClass(newValue, oldValue); } else { attr.$set(name, newValue); @@ -7066,7 +8571,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { i, ii; if ($rootElement) { - for(i = 0, ii = $rootElement.length; i < ii; i++) { + for (i = 0, ii = $rootElement.length; i < ii; i++) { if ($rootElement[i] == firstElementToRemove) { $rootElement[i++] = newNode; for (var j = i, j2 = j + removeCount - 1, @@ -7079,6 +8584,13 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { } } $rootElement.length -= removeCount - 1; + + // If the replaced element is also the jQuery .context then replace it + // .context is a deprecated jQuery api, so we should set it only when jQuery set it + // http://api.jquery.com/context/ + if ($rootElement.context === firstElementToRemove) { + $rootElement.context = newNode; + } break; } } @@ -7087,9 +8599,35 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { if (parent) { parent.replaceChild(newNode, firstElementToRemove); } + + // TODO(perf): what's this document fragment for? is it needed? can we at least reuse it? var fragment = document.createDocumentFragment(); fragment.appendChild(firstElementToRemove); - newNode[jqLite.expando] = firstElementToRemove[jqLite.expando]; + + if (jqLite.hasData(firstElementToRemove)) { + // Copy over user data (that includes Angular's $scope etc.). Don't copy private + // data here because there's no public interface in jQuery to do that and copying over + // event listeners (which is the main use of private data) wouldn't work anyway. + jqLite(newNode).data(jqLite(firstElementToRemove).data()); + + // Remove data of the replaced element. We cannot just call .remove() + // on the element it since that would deallocate scope that is needed + // for the new node. Instead, remove the data "manually". + if (!jQuery) { + delete jqLite.cache[firstElementToRemove[jqLite.expando]]; + } else { + // jQuery 2.x doesn't expose the data storage. Use jQuery.cleanData to clean up after + // the replaced element. The cleanData version monkey-patched by Angular would cause + // the scope to be trashed and we do need the very same scope to work with the new + // element. However, we cannot just cache the non-patched version and use it here as + // that would break if another library patches the method after Angular does (one + // example is jQuery UI). Instead, set a flag indicating scope destroying should be + // skipped this one time. + skipDestroyOnNextJQueryCleanData = true; + jQuery.cleanData([firstElementToRemove]); + } + } + for (var k = 1, kk = elementsToRemove.length; k < kk; k++) { var element = elementsToRemove[k]; jqLite(element).remove(); // must do this way to clean up expando @@ -7105,19 +8643,125 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { function cloneAndAnnotateFn(fn, annotation) { return extend(function() { return fn.apply(null, arguments); }, fn, annotation); } + + + function invokeLinkFn(linkFn, scope, $element, attrs, controllers, transcludeFn) { + try { + linkFn(scope, $element, attrs, controllers, transcludeFn); + } catch (e) { + $exceptionHandler(e, startingTag($element)); + } + } + + + // Set up $watches for isolate scope and controller bindings. This process + // only occurs for isolate scopes and new scopes with controllerAs. + function initializeDirectiveBindings(scope, attrs, destination, bindings, + directive, newScope) { + var onNewScopeDestroyed; + forEach(bindings, function(definition, scopeName) { + var attrName = definition.attrName, + optional = definition.optional, + mode = definition.mode, // @, =, or & + lastValue, + parentGet, parentSet, compare; + + if (!hasOwnProperty.call(attrs, attrName)) { + // In the case of user defined a binding with the same name as a method in Object.prototype but didn't set + // the corresponding attribute. We need to make sure subsequent code won't access to the prototype function + attrs[attrName] = undefined; + } + + switch (mode) { + + case '@': + if (!attrs[attrName] && !optional) { + destination[scopeName] = undefined; + } + + attrs.$observe(attrName, function(value) { + destination[scopeName] = value; + }); + attrs.$$observers[attrName].$$scope = scope; + if (attrs[attrName]) { + // If the attribute has been provided then we trigger an interpolation to ensure + // the value is there for use in the link fn + destination[scopeName] = $interpolate(attrs[attrName])(scope); + } + break; + + case '=': + if (optional && !attrs[attrName]) { + return; + } + parentGet = $parse(attrs[attrName]); + + if (parentGet.literal) { + compare = equals; + } else { + compare = function(a, b) { return a === b || (a !== a && b !== b); }; + } + parentSet = parentGet.assign || function() { + // reset the change, or we will throw this exception on every $digest + lastValue = destination[scopeName] = parentGet(scope); + throw $compileMinErr('nonassign', + "Expression '{0}' used with directive '{1}' is non-assignable!", + attrs[attrName], directive.name); + }; + lastValue = destination[scopeName] = parentGet(scope); + var parentValueWatch = function parentValueWatch(parentValue) { + if (!compare(parentValue, destination[scopeName])) { + // we are out of sync and need to copy + if (!compare(parentValue, lastValue)) { + // parent changed and it has precedence + destination[scopeName] = parentValue; + } else { + // if the parent can be assigned then do so + parentSet(scope, parentValue = destination[scopeName]); + } + } + return lastValue = parentValue; + }; + parentValueWatch.$stateful = true; + var unwatch; + if (definition.collection) { + unwatch = scope.$watchCollection(attrs[attrName], parentValueWatch); + } else { + unwatch = scope.$watch($parse(attrs[attrName], parentValueWatch), null, parentGet.literal); + } + onNewScopeDestroyed = (onNewScopeDestroyed || []); + onNewScopeDestroyed.push(unwatch); + break; + + case '&': + parentGet = $parse(attrs[attrName]); + + // Don't assign noop to destination if expression is not valid + if (parentGet === noop && optional) break; + + destination[scopeName] = function(locals) { + return parentGet(scope, locals); + }; + break; + } + }); + var destroyBindings = onNewScopeDestroyed ? function destroyBindings() { + for (var i = 0, ii = onNewScopeDestroyed.length; i < ii; ++i) { + onNewScopeDestroyed[i](); + } + } : noop; + if (newScope && destroyBindings !== noop) { + newScope.$on('$destroy', destroyBindings); + return noop; + } + return destroyBindings; + } }]; } -var PREFIX_REGEXP = /^(x[\:\-_]|data[\:\-_])/i; +var PREFIX_REGEXP = /^((?:x|data)[\:\-_])/i; /** * Converts all accepted directives format into proper directive name. - * All of these will become 'myDirective': - * my:Directive - * my-directive - * x-my-directive - * data-my:directive - * - * Also there is special case for Moz prefix starting with upper case letter. * @param name Name to normalize */ function directiveNormalize(name) { @@ -7174,7 +8818,7 @@ function nodesetLinkingFn( /* NodeList */ nodeList, /* Element */ rootElement, /* function(Function) */ boundTranscludeFn -){} +) {} function directiveLinkingFn( /* nodesetLinkingFn */ nodesetLinkingFn, @@ -7182,7 +8826,7 @@ function directiveLinkingFn( /* Node */ node, /* Element */ rootElement, /* function(Function) */ boundTranscludeFn -){} +) {} function tokenDifference(str1, str2) { var values = '', @@ -7190,16 +8834,46 @@ function tokenDifference(str1, str2) { tokens2 = str2.split(/\s+/); outer: - for(var i = 0; i < tokens1.length; i++) { + for (var i = 0; i < tokens1.length; i++) { var token = tokens1[i]; - for(var j = 0; j < tokens2.length; j++) { - if(token == tokens2[j]) continue outer; + for (var j = 0; j < tokens2.length; j++) { + if (token == tokens2[j]) continue outer; } values += (values.length > 0 ? ' ' : '') + token; } return values; } +function removeComments(jqNodes) { + jqNodes = jqLite(jqNodes); + var i = jqNodes.length; + + if (i <= 1) { + return jqNodes; + } + + while (i--) { + var node = jqNodes[i]; + if (node.nodeType === NODE_TYPE_COMMENT) { + splice.call(jqNodes, i, 1); + } + } + return jqNodes; +} + +var $controllerMinErr = minErr('$controller'); + + +var CNTRL_REG = /^(\S+)(\s+as\s+(\w+))?$/; +function identifierForController(controller, ident) { + if (ident && isString(ident)) return ident; + if (isString(controller)) { + var match = CNTRL_REG.exec(controller); + if (match) return match[3]; + } +} + + /** * @ngdoc provider * @name $controllerProvider @@ -7212,8 +8886,7 @@ function tokenDifference(str1, str2) { */ function $ControllerProvider() { var controllers = {}, - CNTRL_REG = /^(\S+)(\s+as\s+(\w+))?$/; - + globals = false; /** * @ngdoc method @@ -7232,6 +8905,15 @@ function $ControllerProvider() { } }; + /** + * @ngdoc method + * @name $controllerProvider#allowGlobals + * @description If called, allows `$controller` to find controller constructors on `window` + */ + this.allowGlobals = function() { + globals = true; + }; + this.$get = ['$injector', '$window', function($injector, $window) { @@ -7246,7 +8928,12 @@ function $ControllerProvider() { * * * check if a controller with given name is registered via `$controllerProvider` * * check if evaluating the string on the current scope returns a constructor - * * check `window[constructor]` on the global `window` object + * * if $controllerProvider#allowGlobals, check `window[constructor]` on the global + * `window` object (not recommended) + * + * The string can use the `controller as property` syntax, where the controller instance is published + * as the specified property on the `scope`; the `scope` must be injected into `locals` param for this + * to work correctly. * * @param {Object} locals Injection locals for Controller. * @return {Object} Instance of given controller. @@ -7257,34 +8944,91 @@ function $ControllerProvider() { * It's just a simple call to {@link auto.$injector $injector}, but extracted into * a service, so that one can override this service with [BC version](https://gist.github.com/1649788). */ - return function(expression, locals) { + return function(expression, locals, later, ident) { + // PRIVATE API: + // param `later` --- indicates that the controller's constructor is invoked at a later time. + // If true, $controller will allocate the object with the correct + // prototype chain, but will not invoke the controller until a returned + // callback is invoked. + // param `ident` --- An optional label which overrides the label parsed from the controller + // expression, if any. var instance, match, constructor, identifier; + later = later === true; + if (ident && isString(ident)) { + identifier = ident; + } - if(isString(expression)) { - match = expression.match(CNTRL_REG), + if (isString(expression)) { + match = expression.match(CNTRL_REG); + if (!match) { + throw $controllerMinErr('ctrlfmt', + "Badly formed controller string '{0}'. " + + "Must match `__name__ as __id__` or `__name__`.", expression); + } constructor = match[1], - identifier = match[3]; + identifier = identifier || match[3]; expression = controllers.hasOwnProperty(constructor) ? controllers[constructor] - : getter(locals.$scope, constructor, true) || getter($window, constructor, true); + : getter(locals.$scope, constructor, true) || + (globals ? getter($window, constructor, true) : undefined); assertArgFn(expression, constructor, true); } - instance = $injector.instantiate(expression, locals); + if (later) { + // Instantiate controller later: + // This machinery is used to create an instance of the object before calling the + // controller's constructor itself. + // + // This allows properties to be added to the controller before the constructor is + // invoked. Primarily, this is used for isolate scope bindings in $compile. + // + // This feature is not intended for use by applications, and is thus not documented + // publicly. + // Object creation: http://jsperf.com/create-constructor/2 + var controllerPrototype = (isArray(expression) ? + expression[expression.length - 1] : expression).prototype; + instance = Object.create(controllerPrototype || null); - if (identifier) { - if (!(locals && typeof locals.$scope === 'object')) { - throw minErr('$controller')('noscp', - "Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.", - constructor || expression.name, identifier); + if (identifier) { + addIdentifier(locals, identifier, instance, constructor || expression.name); } - locals.$scope[identifier] = instance; + var instantiate; + return instantiate = extend(function() { + var result = $injector.invoke(expression, instance, locals, constructor); + if (result !== instance && (isObject(result) || isFunction(result))) { + instance = result; + if (identifier) { + // If result changed, re-assign controllerAs value to scope. + addIdentifier(locals, identifier, instance, constructor || expression.name); + } + } + return instance; + }, { + instance: instance, + identifier: identifier + }); + } + + instance = $injector.instantiate(expression, locals, constructor); + + if (identifier) { + addIdentifier(locals, identifier, instance, constructor || expression.name); } return instance; }; + + function addIdentifier(locals, identifier, instance, name) { + if (!(locals && isObject(locals.$scope))) { + throw minErr('$controller')('noscp', + "Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.", + name, identifier); + } + + locals.$scope[identifier] = instance; + } }]; } @@ -7313,8 +9057,8 @@ function $ControllerProvider() { */ -function $DocumentProvider(){ - this.$get = ['$window', function(window){ +function $DocumentProvider() { + this.$get = ['$window', function(window) { return jqLite(window.document); }]; } @@ -7335,8 +9079,8 @@ function $DocumentProvider(){ * ## Example: * * ```js - * angular.module('exceptionOverride', []).factory('$exceptionHandler', function () { - * return function (exception, cause) { + * angular.module('exceptionOverride', []).factory('$exceptionHandler', function() { + * return function(exception, cause) { * exception.message += ' (caused by "' + cause + '")'; * throw exception; * }; @@ -7346,6 +9090,14 @@ function $DocumentProvider(){ * This example will override the normal action of `$exceptionHandler`, to make angular * exceptions fail hard when they happen, instead of just logging to the console. * + *
+ * Note, that code executed in event-listeners (even those registered using jqLite's `on`/`bind` + * methods) does not delegate exceptions to the {@link ng.$exceptionHandler $exceptionHandler} + * (unless executed during a digest). + * + * If you wish, you can manually delegate exceptions, e.g. + * `try { ... } catch(e) { $exceptionHandler(e); }` + * * @param {Error} exception Exception associated with the error. * @param {string=} cause optional information about the context in which * the error was thrown. @@ -7359,6 +9111,153 @@ function $ExceptionHandlerProvider() { }]; } +var APPLICATION_JSON = 'application/json'; +var CONTENT_TYPE_APPLICATION_JSON = {'Content-Type': APPLICATION_JSON + ';charset=utf-8'}; +var JSON_START = /^\[|^\{(?!\{)/; +var JSON_ENDS = { + '[': /]$/, + '{': /}$/ +}; +var JSON_PROTECTION_PREFIX = /^\)\]\}',?\n/; + +function serializeValue(v) { + if (isObject(v)) { + return isDate(v) ? v.toISOString() : toJson(v); + } + return v; +} + + +function $HttpParamSerializerProvider() { + /** + * @ngdoc service + * @name $httpParamSerializer + * @description + * + * Default {@link $http `$http`} params serializer that converts objects to strings + * according to the following rules: + * + * * `{'foo': 'bar'}` results in `foo=bar` + * * `{'foo': Date.now()}` results in `foo=2015-04-01T09%3A50%3A49.262Z` (`toISOString()` and encoded representation of a Date object) + * * `{'foo': ['bar', 'baz']}` results in `foo=bar&foo=baz` (repeated key for each array element) + * * `{'foo': {'bar':'baz'}}` results in `foo=%7B%22bar%22%3A%22baz%22%7D"` (stringified and encoded representation of an object) + * + * Note that serializer will sort the request parameters alphabetically. + * */ + + this.$get = function() { + return function ngParamSerializer(params) { + if (!params) return ''; + var parts = []; + forEachSorted(params, function(value, key) { + if (value === null || isUndefined(value)) return; + if (isArray(value)) { + forEach(value, function(v, k) { + parts.push(encodeUriQuery(key) + '=' + encodeUriQuery(serializeValue(v))); + }); + } else { + parts.push(encodeUriQuery(key) + '=' + encodeUriQuery(serializeValue(value))); + } + }); + + return parts.join('&'); + }; + }; +} + +function $HttpParamSerializerJQLikeProvider() { + /** + * @ngdoc service + * @name $httpParamSerializerJQLike + * @description + * + * Alternative {@link $http `$http`} params serializer that follows + * jQuery's [`param()`](http://api.jquery.com/jquery.param/) method logic. + * The serializer will also sort the params alphabetically. + * + * To use it for serializing `$http` request parameters, set it as the `paramSerializer` property: + * + * ```js + * $http({ + * url: myUrl, + * method: 'GET', + * params: myParams, + * paramSerializer: '$httpParamSerializerJQLike' + * }); + * ``` + * + * It is also possible to set it as the default `paramSerializer` in the + * {@link $httpProvider#defaults `$httpProvider`}. + * + * Additionally, you can inject the serializer and use it explicitly, for example to serialize + * form data for submission: + * + * ```js + * .controller(function($http, $httpParamSerializerJQLike) { + * //... + * + * $http({ + * url: myUrl, + * method: 'POST', + * data: $httpParamSerializerJQLike(myData), + * headers: { + * 'Content-Type': 'application/x-www-form-urlencoded' + * } + * }); + * + * }); + * ``` + * + * */ + this.$get = function() { + return function jQueryLikeParamSerializer(params) { + if (!params) return ''; + var parts = []; + serialize(params, '', true); + return parts.join('&'); + + function serialize(toSerialize, prefix, topLevel) { + if (toSerialize === null || isUndefined(toSerialize)) return; + if (isArray(toSerialize)) { + forEach(toSerialize, function(value) { + serialize(value, prefix + '[]'); + }); + } else if (isObject(toSerialize) && !isDate(toSerialize)) { + forEachSorted(toSerialize, function(value, key) { + serialize(value, prefix + + (topLevel ? '' : '[') + + key + + (topLevel ? '' : ']')); + }); + } else { + parts.push(encodeUriQuery(prefix) + '=' + encodeUriQuery(serializeValue(toSerialize))); + } + } + }; + }; +} + +function defaultHttpResponseTransform(data, headers) { + if (isString(data)) { + // Strip json vulnerability protection prefix and trim whitespace + var tempData = data.replace(JSON_PROTECTION_PREFIX, '').trim(); + + if (tempData) { + var contentType = headers('Content-Type'); + if ((contentType && (contentType.indexOf(APPLICATION_JSON) === 0)) || isJsonLike(tempData)) { + data = fromJson(tempData); + } + } + } + + return data; +} + +function isJsonLike(str) { + var jsonStart = str.match(JSON_START); + return jsonStart && JSON_ENDS[jsonStart[0]].test(str); +} + /** * Parse headers into key value object * @@ -7366,19 +9265,24 @@ function $ExceptionHandlerProvider() { * @returns {Object} Parsed headers as key value object */ function parseHeaders(headers) { - var parsed = {}, key, val, i; - - if (!headers) return parsed; - - forEach(headers.split('\n'), function(line) { - i = line.indexOf(':'); - key = lowercase(trim(line.substr(0, i))); - val = trim(line.substr(i + 1)); + var parsed = createMap(), i; + function fillInParsed(key, val) { if (key) { parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; } - }); + } + + if (isString(headers)) { + forEach(headers.split('\n'), function(line) { + i = line.indexOf(':'); + fillInParsed(lowercase(trim(line.substr(0, i))), trim(line.substr(i + 1))); + }); + } else if (isObject(headers)) { + forEach(headers, function(headerVal, headerKey) { + fillInParsed(lowercase(headerKey), trim(headerVal)); + }); + } return parsed; } @@ -7397,13 +9301,17 @@ function parseHeaders(headers) { * - if called with no arguments returns an object containing all headers. */ function headersGetter(headers) { - var headersObj = isObject(headers) ? headers : undefined; + var headersObj; return function(name) { if (!headersObj) headersObj = parseHeaders(headers); if (name) { - return headersObj[lowercase(name)] || null; + var value = headersObj[lowercase(name)]; + if (value === void 0) { + value = null; + } + return value; } return headersObj; @@ -7417,16 +9325,18 @@ function headersGetter(headers) { * This function is used for both request and response transforming * * @param {*} data Data to transform. - * @param {function(string=)} headers Http headers getter fn. + * @param {function(string=)} headers HTTP headers getter fn. + * @param {number} status HTTP status code of the response. * @param {(Function|Array.)} fns Function or an array of functions. * @returns {*} Transformed data. */ -function transformData(data, headers, fns) { - if (isFunction(fns)) - return fns(data, headers); +function transformData(data, headers, status, fns) { + if (isFunction(fns)) { + return fns(data, headers, status); + } forEach(fns, function(fn) { - data = fn(data, headers); + data = fn(data, headers, status); }); return data; @@ -7445,11 +9355,6 @@ function isSuccess(status) { * Use `$httpProvider` to change the default behavior of the {@link ng.$http $http} service. * */ function $HttpProvider() { - var JSON_START = /^\s*(\[|\{[^\{])/, - JSON_END = /[\}\]]\s*$/, - PROTECTION_PREFIX = /^\)\]\}',?\n/, - CONTENT_TYPE_APPLICATION_JSON = {'Content-Type': 'application/json;charset=utf-8'}; - /** * @ngdoc property * @name $httpProvider#defaults @@ -7457,6 +9362,11 @@ function $HttpProvider() { * * Object containing default values for all {@link ng.$http $http} requests. * + * - **`defaults.cache`** - {Object} - an object built with {@link ng.$cacheFactory `$cacheFactory`} + * that will provide the cache for all requests who set their `cache` property to `true`. + * If you set the `defaults.cache = false` then only requests that specify their own custom + * cache object will be cached. See {@link $http#caching $http Caching} for more information. + * * - **`defaults.xsrfCookieName`** - {string} - Name of cookie containing the XSRF token. * Defaults value is `'XSRF-TOKEN'`. * @@ -7470,22 +9380,21 @@ function $HttpProvider() { * - **`defaults.headers.post`** * - **`defaults.headers.put`** * - **`defaults.headers.patch`** + * + * + * - **`defaults.paramSerializer`** - `{string|function(Object):string}` - A function + * used to the prepare string representation of request parameters (specified as an object). + * If specified as string, it is interpreted as a function registered with the {@link auto.$injector $injector}. + * Defaults to {@link ng.$httpParamSerializer $httpParamSerializer}. + * **/ var defaults = this.defaults = { // transform incoming response data - transformResponse: [function(data) { - if (isString(data)) { - // strip json vulnerability protection prefix - data = data.replace(PROTECTION_PREFIX, ''); - if (JSON_START.test(data) && JSON_END.test(data)) - data = fromJson(data); - } - return data; - }], + transformResponse: [defaultHttpResponseTransform], // transform outgoing request data transformRequest: [function(d) { - return isObject(d) && !isFile(d) && !isBlob(d) ? toJson(d) : d; + return isObject(d) && !isFile(d) && !isBlob(d) && !isFormData(d) ? toJson(d) : d; }], // default headers @@ -7499,26 +9408,65 @@ function $HttpProvider() { }, xsrfCookieName: 'XSRF-TOKEN', - xsrfHeaderName: 'X-XSRF-TOKEN' + xsrfHeaderName: 'X-XSRF-TOKEN', + + paramSerializer: '$httpParamSerializer' + }; + + var useApplyAsync = false; + /** + * @ngdoc method + * @name $httpProvider#useApplyAsync + * @description + * + * Configure $http service to combine processing of multiple http responses received at around + * the same time via {@link ng.$rootScope.Scope#$applyAsync $rootScope.$applyAsync}. This can result in + * significant performance improvement for bigger applications that make many HTTP requests + * concurrently (common during application bootstrap). + * + * Defaults to false. If no value is specified, returns the current configured value. + * + * @param {boolean=} value If true, when requests are loaded, they will schedule a deferred + * "apply" on the next tick, giving time for subsequent requests in a roughly ~10ms window + * to load and share the same digest cycle. + * + * @returns {boolean|Object} If a value is specified, returns the $httpProvider for chaining. + * otherwise, returns the current configured value. + **/ + this.useApplyAsync = function(value) { + if (isDefined(value)) { + useApplyAsync = !!value; + return this; + } + return useApplyAsync; }; /** - * Are ordered by request, i.e. they are applied in the same order as the + * @ngdoc property + * @name $httpProvider#interceptors + * @description + * + * Array containing service factories for all synchronous or asynchronous {@link ng.$http $http} + * pre-processing of request or postprocessing of responses. + * + * These service factories are ordered by request, i.e. they are applied in the same order as the * array, on request, but reverse order, on response. - */ + * + * {@link ng.$http#interceptors Interceptors detailed info} + **/ var interceptorFactories = this.interceptors = []; - /** - * For historical reasons, response interceptors are ordered by the order in which - * they are applied to the response. (This is the opposite of interceptorFactories) - */ - var responseInterceptorFactories = this.responseInterceptors = []; - - this.$get = ['$httpBackend', '$browser', '$cacheFactory', '$rootScope', '$q', '$injector', - function($httpBackend, $browser, $cacheFactory, $rootScope, $q, $injector) { + this.$get = ['$httpBackend', '$$cookieReader', '$cacheFactory', '$rootScope', '$q', '$injector', + function($httpBackend, $$cookieReader, $cacheFactory, $rootScope, $q, $injector) { var defaultCache = $cacheFactory('$http'); + /** + * Make sure that default param serializer is exposed as a function + */ + defaults.paramSerializer = isString(defaults.paramSerializer) ? + $injector.get(defaults.paramSerializer) : defaults.paramSerializer; + /** * Interceptors stored in reverse order. Inner interceptors before outer interceptors. * The reversal is needed so that we can build up the interception chain around the @@ -7531,27 +9479,6 @@ function $HttpProvider() { ? $injector.get(interceptorFactory) : $injector.invoke(interceptorFactory)); }); - forEach(responseInterceptorFactories, function(interceptorFactory, index) { - var responseFn = isString(interceptorFactory) - ? $injector.get(interceptorFactory) - : $injector.invoke(interceptorFactory); - - /** - * Response interceptors go before "around" interceptors (no real reason, just - * had to pick one.) But they are already reversed, so we can't use unshift, hence - * the splice. - */ - reversedInterceptors.splice(index, 0, { - response: function(response) { - return responseFn($q.when(response)); - }, - responseError: function(response) { - return responseFn($q.reject(response)); - } - }); - }); - - /** * @ngdoc service * @kind function @@ -7578,13 +9505,14 @@ function $HttpProvider() { * it is important to familiarize yourself with these APIs and the guarantees they provide. * * - * # General usage + * ## General usage * The `$http` service is a function which takes a single argument — a configuration object — * that is used to generate an HTTP request and returns a {@link ng.$q promise} * with two $http specific methods: `success` and `error`. * * ```js - * $http({method: 'GET', url: '/someUrl'}). + * // Simple GET request example : + * $http.get('/someUrl'). * success(function(data, status, headers, config) { * // this callback will be called asynchronously * // when the response is available @@ -7595,6 +9523,20 @@ function $HttpProvider() { * }); * ``` * + * ```js + * // Simple POST request example (passing data) : + * $http.post('/someUrl', {msg:'hello word!'}). + * success(function(data, status, headers, config) { + * // this callback will be called asynchronously + * // when the response is available + * }). + * error(function(data, status, headers, config) { + * // called asynchronously if an error occurs + * // or server returns response with an error status. + * }); + * ``` + * + * * Since the returned value of calling the $http function is a `promise`, you can also use * the `then` method to register callbacks, and these callbacks will receive a single argument – * an object representing the response. See the API signature and type info below for more @@ -7605,7 +9547,7 @@ function $HttpProvider() { * XMLHttpRequest will transparently follow it, meaning that the error callback will not be * called for such responses. * - * # Writing Unit Tests that use $http + * ## Writing Unit Tests that use $http * When unit testing (using {@link ngMock ngMock}), it is necessary to call * {@link ngMock.$httpBackend#flush $httpBackend.flush()} to flush each pending * request using trained responses. @@ -7616,7 +9558,7 @@ function $HttpProvider() { * $httpBackend.flush(); * ``` * - * # Shortcut methods + * ## Shortcut methods * * Shortcut methods are also available. All shortcut methods require passing in the URL, and * request data must be passed in for POST/PUT requests. @@ -7637,7 +9579,7 @@ function $HttpProvider() { * - {@link ng.$http#patch $http.patch} * * - * # Setting HTTP Headers + * ## Setting HTTP Headers * * The $http service will automatically add certain HTTP headers to all requests. These defaults * can be fully configured by accessing the `$httpProvider.defaults.headers` configuration @@ -7653,7 +9595,7 @@ function $HttpProvider() { * To add or overwrite these defaults, simply add or remove a property from these configuration * objects. To add headers for an HTTP method other than POST or PUT, simply add a new object * with the lowercased HTTP method name as the key, e.g. - * `$httpProvider.defaults.headers.get = { 'My-Header' : 'value' }. + * `$httpProvider.defaults.headers.get = { 'My-Header' : 'value' }`. * * The defaults can also be set at runtime via the `$http.defaults` object in the same * fashion. For example: @@ -7667,37 +9609,85 @@ function $HttpProvider() { * In addition, you can supply a `headers` property in the config object passed when * calling `$http(config)`, which overrides the defaults without changing them globally. * + * To explicitly remove a header automatically added via $httpProvider.defaults.headers on a per request basis, + * Use the `headers` property, setting the desired header to `undefined`. For example: * - * # Transforming Requests and Responses + * ```js + * var req = { + * method: 'POST', + * url: 'http://example.com', + * headers: { + * 'Content-Type': undefined + * }, + * data: { test: 'test' } + * } * - * Both requests and responses can be transformed using transform functions. By default, Angular - * applies these transformations: + * $http(req).success(function(){...}).error(function(){...}); + * ``` * - * Request transformations: + * ## Transforming Requests and Responses + * + * Both requests and responses can be transformed using transformation functions: `transformRequest` + * and `transformResponse`. These properties can be a single function that returns + * the transformed value (`function(data, headersGetter, status)`) or an array of such transformation functions, + * which allows you to `push` or `unshift` a new transformation function into the transformation chain. + * + * ### Default Transformations + * + * The `$httpProvider` provider and `$http` service expose `defaults.transformRequest` and + * `defaults.transformResponse` properties. If a request does not provide its own transformations + * then these will be applied. + * + * You can augment or replace the default transformations by modifying these properties by adding to or + * replacing the array. + * + * Angular provides the following default transformations: + * + * Request transformations (`$httpProvider.defaults.transformRequest` and `$http.defaults.transformRequest`): * * - If the `data` property of the request configuration object contains an object, serialize it * into JSON format. * - * Response transformations: + * Response transformations (`$httpProvider.defaults.transformResponse` and `$http.defaults.transformResponse`): * * - If XSRF prefix is detected, strip it (see Security Considerations section below). * - If JSON response is detected, deserialize it using a JSON parser. * - * To globally augment or override the default transforms, modify the - * `$httpProvider.defaults.transformRequest` and `$httpProvider.defaults.transformResponse` - * properties. These properties are by default an array of transform functions, which allows you - * to `push` or `unshift` a new transformation function into the transformation chain. You can - * also decide to completely override any default transformations by assigning your - * transformation functions to these properties directly without the array wrapper. These defaults - * are again available on the $http factory at run-time, which may be useful if you have run-time - * services you wish to be involved in your transformations. * - * Similarly, to locally override the request/response transforms, augment the - * `transformRequest` and/or `transformResponse` properties of the configuration object passed + * ### Overriding the Default Transformations Per Request + * + * If you wish override the request/response transformations only for a single request then provide + * `transformRequest` and/or `transformResponse` properties on the configuration object passed * into `$http`. * + * Note that if you provide these properties on the config object the default transformations will be + * overwritten. If you wish to augment the default transformations then you must include them in your + * local transformation array. * - * # Caching + * The following code demonstrates adding a new response transformation to be run after the default response + * transformations have been run. + * + * ```js + * function appendTransform(defaults, transform) { + * + * // We can't guarantee that the default transformation is an array + * defaults = angular.isArray(defaults) ? defaults : [defaults]; + * + * // Append the new transformation to the defaults + * return defaults.concat(transform); + * } + * + * $http({ + * url: '...', + * method: 'GET', + * transformResponse: appendTransform($http.defaults.transformResponse, function(value) { + * return doTransform(value); + * }) + * }); + * ``` + * + * + * ## Caching * * To enable caching, set the request configuration `cache` property to `true` (to use default * cache) or to a custom cache object (built with {@link ng.$cacheFactory `$cacheFactory`}). @@ -7714,13 +9704,13 @@ function $HttpProvider() { * * You can change the default cache to a new object (built with * {@link ng.$cacheFactory `$cacheFactory`}) by updating the - * {@link ng.$http#properties_defaults `$http.defaults.cache`} property. All requests who set + * {@link ng.$http#defaults `$http.defaults.cache`} property. All requests who set * their `cache` property to `true` will now use this cache object. * * If you set the default cache to `false` then only requests that specify their own custom * cache object will be cached. * - * # Interceptors + * ## Interceptors * * Before you start creating interceptors, be sure to understand the * {@link ng.$q $q and deferred/promise APIs}. @@ -7805,52 +9795,7 @@ function $HttpProvider() { * }); * ``` * - * # Response interceptors (DEPRECATED) - * - * Before you start creating interceptors, be sure to understand the - * {@link ng.$q $q and deferred/promise APIs}. - * - * For purposes of global error handling, authentication or any kind of synchronous or - * asynchronous preprocessing of received responses, it is desirable to be able to intercept - * responses for http requests before they are handed over to the application code that - * initiated these requests. The response interceptors leverage the {@link ng.$q - * promise apis} to fulfil this need for both synchronous and asynchronous preprocessing. - * - * The interceptors are service factories that are registered with the $httpProvider by - * adding them to the `$httpProvider.responseInterceptors` array. The factory is called and - * injected with dependencies (if specified) and returns the interceptor — a function that - * takes a {@link ng.$q promise} and returns the original or a new promise. - * - * ```js - * // register the interceptor as a service - * $provide.factory('myHttpInterceptor', function($q, dependency1, dependency2) { - * return function(promise) { - * return promise.then(function(response) { - * // do something on success - * return response; - * }, function(response) { - * // do something on error - * if (canRecover(response)) { - * return responseOrNewPromise - * } - * return $q.reject(response); - * }); - * } - * }); - * - * $httpProvider.responseInterceptors.push('myHttpInterceptor'); - * - * - * // register the interceptor via an anonymous factory - * $httpProvider.responseInterceptors.push(function($q, dependency1, dependency2) { - * return function(promise) { - * // same as above - * } - * }); - * ``` - * - * - * # Security Considerations + * ## Security Considerations * * When designing web applications, consider security threats from: * @@ -7861,7 +9806,7 @@ function $HttpProvider() { * pre-configured with strategies that address these issues, but for this to work backend server * cooperation is required. * - * ## JSON Vulnerability Protection + * ### JSON Vulnerability Protection * * A [JSON vulnerability](http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx) * allows third party website to turn your JSON resource URL into @@ -7883,7 +9828,7 @@ function $HttpProvider() { * Angular will strip the prefix, before processing the JSON. * * - * ## Cross Site Request Forgery (XSRF) Protection + * ### Cross Site Request Forgery (XSRF) Protection * * [XSRF](http://en.wikipedia.org/wiki/Cross-site_request_forgery) is a technique by which * an unauthorized site can gain your user's private data. Angular provides a mechanism @@ -7906,29 +9851,42 @@ function $HttpProvider() { * properties of either $httpProvider.defaults at config-time, $http.defaults at run-time, * or the per-request config object. * + * In order to prevent collisions in environments where multiple Angular apps share the + * same domain or subdomain, we recommend that each application uses unique cookie name. + * * * @param {object} config Object describing the request to be made and how it should be * processed. The object has following properties: * * - **method** – `{string}` – HTTP method (e.g. 'GET', 'POST', etc) * - **url** – `{string}` – Absolute or relative URL of the resource that is being requested. - * - **params** – `{Object.}` – Map of strings or objects which will be turned - * to `?key1=value1&key2=value2` after the url. If the value is not a string, it will be - * JSONified. + * - **params** – `{Object.}` – Map of strings or objects which will be serialized + * with the `paramSerializer` and appended as GET parameters. * - **data** – `{string|Object}` – Data to be sent as the request message data. * - **headers** – `{Object}` – Map of strings or functions which return strings representing * HTTP headers to send to the server. If the return value of a function is null, the - * header will not be sent. + * header will not be sent. Functions accept a config object as an argument. * - **xsrfHeaderName** – `{string}` – Name of HTTP header to populate with the XSRF token. * - **xsrfCookieName** – `{string}` – Name of cookie containing the XSRF token. * - **transformRequest** – * `{function(data, headersGetter)|Array.}` – * transform function or an array of such functions. The transform function takes the http * request body and headers and returns its transformed (typically serialized) version. + * See {@link ng.$http#overriding-the-default-transformations-per-request + * Overriding the Default Transformations} * - **transformResponse** – - * `{function(data, headersGetter)|Array.}` – + * `{function(data, headersGetter, status)|Array.}` – * transform function or an array of such functions. The transform function takes the http - * response body and headers and returns its transformed (typically deserialized) version. + * response body, headers and status and returns its transformed (typically deserialized) version. + * See {@link ng.$http#overriding-the-default-transformations-per-request + * Overriding the Default TransformationjqLiks} + * - **paramSerializer** - `{string|function(Object):string}` - A function used to + * prepare the string representation of request parameters (specified as an object). + * If specified as string, it is interpreted as function registered with the + * {@link $injector $injector}, which means you can create your own serializer + * by registering it as a {@link auto.$provide#service service}. + * The default serializer is the {@link $httpParamSerializer $httpParamSerializer}; + * alternatively, you can use the {@link $httpParamSerializerJQLike $httpParamSerializerJQLike} * - **cache** – `{boolean|Cache}` – If true, a default $http cache will be used to cache the * GET request, otherwise if a cache instance built with * {@link ng.$cacheFactory $cacheFactory}, this cache will be used for @@ -7939,7 +9897,7 @@ function $HttpProvider() { * XHR object. See [requests with credentials](https://developer.mozilla.org/docs/Web/HTTP/Access_control_CORS#Requests_with_credentials) * for more information. * - **responseType** - `{string}` - see - * [requestType](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#responseType). + * [XMLHttpRequest.responseType](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#xmlhttprequest-responsetype). * * @returns {HttpPromise} Returns a {@link ng.$q promise} object with the * standard `then` method and two http specific methods: `success` and `error`. The `then` @@ -7964,11 +9922,11 @@ function $HttpProvider() {
- - +
+
@@ -9952,7 +12221,7 @@ function $LocationProvider(){ * @description * Use the `$logProvider` to configure how the application logs messages */ -function $LogProvider(){ +function $LogProvider() { var debug = true, self = this; @@ -9972,7 +12241,7 @@ function $LogProvider(){ } }; - this.$get = ['$window', function($window){ + this.$get = ['$window', function($window) { return { /** * @ngdoc method @@ -10017,7 +12286,7 @@ function $LogProvider(){ * @description * Write a debug message */ - debug: (function () { + debug: (function() { var fn = consoleLog('debug'); return function() { @@ -10071,14 +12340,23 @@ function $LogProvider(){ }]; } +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Any commits to this file should be reviewed with security in mind. * + * Changes to this file can potentially create security vulnerabilities. * + * An approval from 2 Core members with history of modifying * + * this file is required. * + * * + * Does the change somehow allow for arbitrary javascript to be executed? * + * Or allows for someone to change the prototype of built-in objects? * + * Or gives undesired access to variables likes document or window? * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + var $parseMinErr = minErr('$parse'); -var promiseWarningCache = {}; -var promiseWarning; // Sandboxing Angular Expressions // ------------------------------ // Angular expressions are generally considered safe because these expressions only have direct -// access to $scope and locals. However, one can obtain the ability to execute arbitrary JS code by +// access to `$scope` and locals. However, one can obtain the ability to execute arbitrary JS code by // obtaining a reference to native JS functions such as the Function constructor. // // As an example, consider the following Angular expression: @@ -10087,7 +12365,7 @@ var promiseWarning; // // This sandboxing technique is not perfect and doesn't aim to be. The goal is to prevent exploits // against the expression language, but not to prevent exploits that were enabled by exposing -// sensitive JavaScript or browser apis on Scope. Exposing such objects on a Scope is never a good +// sensitive JavaScript or browser APIs on Scope. Exposing such objects on a Scope is never a good // practice and therefore we are not even trying to protect against interaction with an object // explicitly exposed in this way. // @@ -10095,6 +12373,8 @@ var promiseWarning; // window or some DOM object that has a reference to window is published onto a Scope. // Similarly we prevent invocations of function known to be dangerous, as well as assignments to // native objects. +// +// See https://docs.angularjs.org/guide/security function ensureSafeMemberName(name, fullExpression) { @@ -10103,7 +12383,7 @@ function ensureSafeMemberName(name, fullExpression) { || name === "__proto__") { throw $parseMinErr('isecfld', 'Attempting to access a disallowed field in Angular expressions! ' - +'Expression: {0}', fullExpression); + + 'Expression: {0}', fullExpression); } return name; } @@ -10116,7 +12396,7 @@ function ensureSafeObject(obj, fullExpression) { 'Referencing Function in Angular expressions is disallowed! Expression: {0}', fullExpression); } else if (// isWindow(obj) - obj.document && obj.location && obj.alert && obj.setInterval) { + obj.window === obj) { throw $parseMinErr('isecwindow', 'Referencing the Window in Angular expressions is disallowed! Expression: {0}', fullExpression); @@ -10145,7 +12425,7 @@ function ensureSafeFunction(obj, fullExpression) { throw $parseMinErr('isecfn', 'Referencing Function in Angular expressions is disallowed! Expression: {0}', fullExpression); - } else if (obj === CALL || obj === APPLY || (BIND && obj === BIND)) { + } else if (obj === CALL || obj === APPLY || obj === BIND) { throw $parseMinErr('isecff', 'Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}', fullExpression); @@ -10153,46 +12433,8 @@ function ensureSafeFunction(obj, fullExpression) { } } -var OPERATORS = { - /* jshint bitwise : false */ - 'null':function(){return null;}, - 'true':function(){return true;}, - 'false':function(){return false;}, - undefined:noop, - '+':function(self, locals, a,b){ - a=a(self, locals); b=b(self, locals); - if (isDefined(a)) { - if (isDefined(b)) { - return a + b; - } - return a; - } - return isDefined(b)?b:undefined;}, - '-':function(self, locals, a,b){ - a=a(self, locals); b=b(self, locals); - return (isDefined(a)?a:0)-(isDefined(b)?b:0); - }, - '*':function(self, locals, a,b){return a(self, locals)*b(self, locals);}, - '/':function(self, locals, a,b){return a(self, locals)/b(self, locals);}, - '%':function(self, locals, a,b){return a(self, locals)%b(self, locals);}, - '^':function(self, locals, a,b){return a(self, locals)^b(self, locals);}, - '=':noop, - '===':function(self, locals, a, b){return a(self, locals)===b(self, locals);}, - '!==':function(self, locals, a, b){return a(self, locals)!==b(self, locals);}, - '==':function(self, locals, a,b){return a(self, locals)==b(self, locals);}, - '!=':function(self, locals, a,b){return a(self, locals)!=b(self, locals);}, - '<':function(self, locals, a,b){return a(self, locals)':function(self, locals, a,b){return a(self, locals)>b(self, locals);}, - '<=':function(self, locals, a,b){return a(self, locals)<=b(self, locals);}, - '>=':function(self, locals, a,b){return a(self, locals)>=b(self, locals);}, - '&&':function(self, locals, a,b){return a(self, locals)&&b(self, locals);}, - '||':function(self, locals, a,b){return a(self, locals)||b(self, locals);}, - '&':function(self, locals, a,b){return a(self, locals)&b(self, locals);}, -// '|':function(self, locals, a,b){return a|b;}, - '|':function(self, locals, a,b){return b(self, locals)(self, locals, a(self, locals));}, - '!':function(self, locals, a){return !a(self, locals);} -}; -/* jshint bitwise: true */ +var OPERATORS = createMap(); +forEach('+ - * / % === !== == != < > <= >= && || ! = |'.split(' '), function(operator) { OPERATORS[operator] = true; }); var ESCAPE = {"n":"\n", "f":"\f", "r":"\r", "t":"\t", "v":"\v", "'":"'", '"':'"'}; @@ -10202,73 +12444,51 @@ var ESCAPE = {"n":"\n", "f":"\f", "r":"\r", "t":"\t", "v":"\v", "'":"'", '"':'"' /** * @constructor */ -var Lexer = function (options) { +var Lexer = function(options) { this.options = options; }; Lexer.prototype = { constructor: Lexer, - lex: function (text) { + lex: function(text) { this.text = text; - this.index = 0; - this.ch = undefined; - this.lastCh = ':'; // can start regexp - this.tokens = []; while (this.index < this.text.length) { - this.ch = this.text.charAt(this.index); - if (this.is('"\'')) { - this.readString(this.ch); - } else if (this.isNumber(this.ch) || this.is('.') && this.isNumber(this.peek())) { + var ch = this.text.charAt(this.index); + if (ch === '"' || ch === "'") { + this.readString(ch); + } else if (this.isNumber(ch) || ch === '.' && this.isNumber(this.peek())) { this.readNumber(); - } else if (this.isIdent(this.ch)) { + } else if (this.isIdent(ch)) { this.readIdent(); - } else if (this.is('(){}[].,;:?')) { - this.tokens.push({ - index: this.index, - text: this.ch - }); + } else if (this.is(ch, '(){}[].,;:?')) { + this.tokens.push({index: this.index, text: ch}); this.index++; - } else if (this.isWhitespace(this.ch)) { + } else if (this.isWhitespace(ch)) { this.index++; - continue; } else { - var ch2 = this.ch + this.peek(); + var ch2 = ch + this.peek(); var ch3 = ch2 + this.peek(2); - var fn = OPERATORS[this.ch]; - var fn2 = OPERATORS[ch2]; - var fn3 = OPERATORS[ch3]; - if (fn3) { - this.tokens.push({index: this.index, text: ch3, fn: fn3}); - this.index += 3; - } else if (fn2) { - this.tokens.push({index: this.index, text: ch2, fn: fn2}); - this.index += 2; - } else if (fn) { - this.tokens.push({ - index: this.index, - text: this.ch, - fn: fn - }); - this.index += 1; + var op1 = OPERATORS[ch]; + var op2 = OPERATORS[ch2]; + var op3 = OPERATORS[ch3]; + if (op1 || op2 || op3) { + var token = op3 ? ch3 : (op2 ? ch2 : ch); + this.tokens.push({index: this.index, text: token, operator: true}); + this.index += token.length; } else { this.throwError('Unexpected next character ', this.index, this.index + 1); } } - this.lastCh = this.ch; } return this.tokens; }, - is: function(chars) { - return chars.indexOf(this.ch) !== -1; - }, - - was: function(chars) { - return chars.indexOf(this.lastCh) !== -1; + is: function(ch, chars) { + return chars.indexOf(ch) !== -1; }, peek: function(i) { @@ -10277,7 +12497,7 @@ Lexer.prototype = { }, isNumber: function(ch) { - return ('0' <= ch && ch <= '9'); + return ('0' <= ch && ch <= '9') && typeof ch === "string"; }, isWhitespace: function(ch) { @@ -10330,88 +12550,28 @@ Lexer.prototype = { } this.index++; } - number = 1 * number; this.tokens.push({ index: start, text: number, - literal: true, constant: true, - fn: function() { return number; } + value: Number(number) }); }, readIdent: function() { - var parser = this; - - var ident = ''; var start = this.index; - - var lastDot, peekIndex, methodName, ch; - while (this.index < this.text.length) { - ch = this.text.charAt(this.index); - if (ch === '.' || this.isIdent(ch) || this.isNumber(ch)) { - if (ch === '.') lastDot = this.index; - ident += ch; - } else { + var ch = this.text.charAt(this.index); + if (!(this.isIdent(ch) || this.isNumber(ch))) { break; } this.index++; } - - //check if this is not a method invocation and if it is back out to last dot - if (lastDot) { - peekIndex = this.index; - while (peekIndex < this.text.length) { - ch = this.text.charAt(peekIndex); - if (ch === '(') { - methodName = ident.substr(lastDot - start + 1); - ident = ident.substr(0, lastDot - start); - this.index = peekIndex; - break; - } - if (this.isWhitespace(ch)) { - peekIndex++; - } else { - break; - } - } - } - - - var token = { + this.tokens.push({ index: start, - text: ident - }; - - // OPERATORS is our own object so we don't need to use special hasOwnPropertyFn - if (OPERATORS.hasOwnProperty(ident)) { - token.fn = OPERATORS[ident]; - token.literal = true; - token.constant = true; - } else { - var getter = getterFn(ident, this.options, this.text); - token.fn = extend(function(self, locals) { - return (getter(self, locals)); - }, { - assign: function(self, value) { - return setter(self, ident, value, parser.text, parser.options); - } - }); - } - - this.tokens.push(token); - - if (methodName) { - this.tokens.push({ - index:lastDot, - text: '.' - }); - this.tokens.push({ - index: lastDot + 1, - text: methodName - }); - } + text: this.text.slice(start, this.index), + identifier: true + }); }, readString: function(quote) { @@ -10426,8 +12586,9 @@ Lexer.prototype = { if (escape) { if (ch === 'u') { var hex = this.text.substring(this.index + 1, this.index + 5); - if (!hex.match(/[\da-f]{4}/i)) + if (!hex.match(/[\da-f]{4}/i)) { this.throwError('Invalid unicode escape [\\u' + hex + ']'); + } this.index += 4; string += String.fromCharCode(parseInt(hex, 16)); } else { @@ -10442,10 +12603,8 @@ Lexer.prototype = { this.tokens.push({ index: start, text: rawString, - string: string, - literal: true, constant: true, - fn: function() { return string; } + value: string }); return; } else { @@ -10457,43 +12616,156 @@ Lexer.prototype = { } }; - -/** - * @constructor - */ -var Parser = function (lexer, $filter, options) { +var AST = function(lexer, options) { this.lexer = lexer; - this.$filter = $filter; this.options = options; }; -Parser.ZERO = extend(function () { - return 0; -}, { - constant: true -}); +AST.Program = 'Program'; +AST.ExpressionStatement = 'ExpressionStatement'; +AST.AssignmentExpression = 'AssignmentExpression'; +AST.ConditionalExpression = 'ConditionalExpression'; +AST.LogicalExpression = 'LogicalExpression'; +AST.BinaryExpression = 'BinaryExpression'; +AST.UnaryExpression = 'UnaryExpression'; +AST.CallExpression = 'CallExpression'; +AST.MemberExpression = 'MemberExpression'; +AST.Identifier = 'Identifier'; +AST.Literal = 'Literal'; +AST.ArrayExpression = 'ArrayExpression'; +AST.Property = 'Property'; +AST.ObjectExpression = 'ObjectExpression'; +AST.ThisExpression = 'ThisExpression'; -Parser.prototype = { - constructor: Parser, +// Internal use only +AST.NGValueParameter = 'NGValueParameter'; - parse: function (text) { +AST.prototype = { + ast: function(text) { this.text = text; - this.tokens = this.lexer.lex(text); - var value = this.statements(); + var value = this.program(); if (this.tokens.length !== 0) { this.throwError('is an unexpected token', this.tokens[0]); } - value.literal = !!value.literal; - value.constant = !!value.constant; - return value; }, - primary: function () { + program: function() { + var body = []; + while (true) { + if (this.tokens.length > 0 && !this.peek('}', ')', ';', ']')) + body.push(this.expressionStatement()); + if (!this.expect(';')) { + return { type: AST.Program, body: body}; + } + } + }, + + expressionStatement: function() { + return { type: AST.ExpressionStatement, expression: this.filterChain() }; + }, + + filterChain: function() { + var left = this.expression(); + var token; + while ((token = this.expect('|'))) { + left = this.filter(left); + } + return left; + }, + + expression: function() { + return this.assignment(); + }, + + assignment: function() { + var result = this.ternary(); + if (this.expect('=')) { + result = { type: AST.AssignmentExpression, left: result, right: this.assignment(), operator: '='}; + } + return result; + }, + + ternary: function() { + var test = this.logicalOR(); + var alternate; + var consequent; + if (this.expect('?')) { + alternate = this.expression(); + if (this.consume(':')) { + consequent = this.expression(); + return { type: AST.ConditionalExpression, test: test, alternate: alternate, consequent: consequent}; + } + } + return test; + }, + + logicalOR: function() { + var left = this.logicalAND(); + while (this.expect('||')) { + left = { type: AST.LogicalExpression, operator: '||', left: left, right: this.logicalAND() }; + } + return left; + }, + + logicalAND: function() { + var left = this.equality(); + while (this.expect('&&')) { + left = { type: AST.LogicalExpression, operator: '&&', left: left, right: this.equality()}; + } + return left; + }, + + equality: function() { + var left = this.relational(); + var token; + while ((token = this.expect('==','!=','===','!=='))) { + left = { type: AST.BinaryExpression, operator: token.text, left: left, right: this.relational() }; + } + return left; + }, + + relational: function() { + var left = this.additive(); + var token; + while ((token = this.expect('<', '>', '<=', '>='))) { + left = { type: AST.BinaryExpression, operator: token.text, left: left, right: this.additive() }; + } + return left; + }, + + additive: function() { + var left = this.multiplicative(); + var token; + while ((token = this.expect('+','-'))) { + left = { type: AST.BinaryExpression, operator: token.text, left: left, right: this.multiplicative() }; + } + return left; + }, + + multiplicative: function() { + var left = this.unary(); + var token; + while ((token = this.expect('*','/','%'))) { + left = { type: AST.BinaryExpression, operator: token.text, left: left, right: this.unary() }; + } + return left; + }, + + unary: function() { + var token; + if ((token = this.expect('+', '-', '!'))) { + return { type: AST.UnaryExpression, operator: token.text, prefix: true, argument: this.unary() }; + } else { + return this.primary(); + } + }, + + primary: function() { var primary; if (this.expect('(')) { primary = this.filterChain(); @@ -10502,27 +12774,26 @@ Parser.prototype = { primary = this.arrayDeclaration(); } else if (this.expect('{')) { primary = this.object(); + } else if (this.constants.hasOwnProperty(this.peek().text)) { + primary = copy(this.constants[this.consume().text]); + } else if (this.peek().identifier) { + primary = this.identifier(); + } else if (this.peek().constant) { + primary = this.constant(); } else { - var token = this.expect(); - primary = token.fn; - if (!primary) { - this.throwError('not a primary expression', token); - } - primary.literal = !!token.literal; - primary.constant = !!token.constant; + this.throwError('not a primary expression', this.peek()); } - var next, context; + var next; while ((next = this.expect('(', '[', '.'))) { if (next.text === '(') { - primary = this.functionCall(primary, context); - context = null; + primary = {type: AST.CallExpression, callee: primary, arguments: this.parseArguments() }; + this.consume(')'); } else if (next.text === '[') { - context = primary; - primary = this.objectIndex(primary); + primary = { type: AST.MemberExpression, object: primary, property: this.expression(), computed: true }; + this.consume(']'); } else if (next.text === '.') { - context = primary; - primary = this.fieldAccess(primary); + primary = { type: AST.MemberExpression, object: primary, property: this.identifier(), computed: false }; } else { this.throwError('IMPOSSIBLE'); } @@ -10530,21 +12801,114 @@ Parser.prototype = { return primary; }, + filter: function(baseExpression) { + var args = [baseExpression]; + var result = {type: AST.CallExpression, callee: this.identifier(), arguments: args, filter: true}; + + while (this.expect(':')) { + args.push(this.expression()); + } + + return result; + }, + + parseArguments: function() { + var args = []; + if (this.peekToken().text !== ')') { + do { + args.push(this.expression()); + } while (this.expect(',')); + } + return args; + }, + + identifier: function() { + var token = this.consume(); + if (!token.identifier) { + this.throwError('is not a valid identifier', token); + } + return { type: AST.Identifier, name: token.text }; + }, + + constant: function() { + // TODO check that it is a constant + return { type: AST.Literal, value: this.consume().value }; + }, + + arrayDeclaration: function() { + var elements = []; + if (this.peekToken().text !== ']') { + do { + if (this.peek(']')) { + // Support trailing commas per ES5.1. + break; + } + elements.push(this.expression()); + } while (this.expect(',')); + } + this.consume(']'); + + return { type: AST.ArrayExpression, elements: elements }; + }, + + object: function() { + var properties = [], property; + if (this.peekToken().text !== '}') { + do { + if (this.peek('}')) { + // Support trailing commas per ES5.1. + break; + } + property = {type: AST.Property, kind: 'init'}; + if (this.peek().constant) { + property.key = this.constant(); + } else if (this.peek().identifier) { + property.key = this.identifier(); + } else { + this.throwError("invalid key", this.peek()); + } + this.consume(':'); + property.value = this.expression(); + properties.push(property); + } while (this.expect(',')); + } + this.consume('}'); + + return {type: AST.ObjectExpression, properties: properties }; + }, + throwError: function(msg, token) { throw $parseMinErr('syntax', 'Syntax Error: Token \'{0}\' {1} at column {2} of the expression [{3}] starting at [{4}].', token.text, msg, (token.index + 1), this.text, this.text.substring(token.index)); }, - peekToken: function() { - if (this.tokens.length === 0) + consume: function(e1) { + if (this.tokens.length === 0) { throw $parseMinErr('ueoe', 'Unexpected end of expression: {0}', this.text); + } + + var token = this.expect(e1); + if (!token) { + this.throwError('is unexpected, expecting [' + e1 + ']', this.peek()); + } + return token; + }, + + peekToken: function() { + if (this.tokens.length === 0) { + throw $parseMinErr('ueoe', 'Unexpected end of expression: {0}', this.text); + } return this.tokens[0]; }, peek: function(e1, e2, e3, e4) { - if (this.tokens.length > 0) { - var token = this.tokens[0]; + return this.peekAhead(0, e1, e2, e3, e4); + }, + + peekAhead: function(i, e1, e2, e3, e4) { + if (this.tokens.length > i) { + var token = this.tokens[i]; var t = token.text; if (t === e1 || t === e2 || t === e3 || t === e4 || (!e1 && !e2 && !e3 && !e4)) { @@ -10554,7 +12918,7 @@ Parser.prototype = { return false; }, - expect: function(e1, e2, e3, e4){ + expect: function(e1, e2, e3, e4) { var token = this.peek(e1, e2, e3, e4); if (token) { this.tokens.shift(); @@ -10563,567 +12927,1063 @@ Parser.prototype = { return false; }, - consume: function(e1){ - if (!this.expect(e1)) { - this.throwError('is unexpected, expecting [' + e1 + ']', this.peek()); - } - }, - unaryFn: function(fn, right) { - return extend(function(self, locals) { - return fn(self, locals, right); - }, { - constant:right.constant - }); - }, - - ternaryFn: function(left, middle, right){ - return extend(function(self, locals){ - return left(self, locals) ? middle(self, locals) : right(self, locals); - }, { - constant: left.constant && middle.constant && right.constant - }); - }, - - binaryFn: function(left, fn, right) { - return extend(function(self, locals) { - return fn(self, locals, left, right); - }, { - constant:left.constant && right.constant - }); - }, - - statements: function() { - var statements = []; - while (true) { - if (this.tokens.length > 0 && !this.peek('}', ')', ';', ']')) - statements.push(this.filterChain()); - if (!this.expect(';')) { - // optimize for the common case where there is only one statement. - // TODO(size): maybe we should not support multiple statements? - return (statements.length === 1) - ? statements[0] - : function(self, locals) { - var value; - for (var i = 0; i < statements.length; i++) { - var statement = statements[i]; - if (statement) { - value = statement(self, locals); - } - } - return value; - }; - } - } - }, - - filterChain: function() { - var left = this.expression(); - var token; - while (true) { - if ((token = this.expect('|'))) { - left = this.binaryFn(left, token.fn, this.filter()); - } else { - return left; - } - } - }, - - filter: function() { - var token = this.expect(); - var fn = this.$filter(token.text); - var argsFn = []; - while (true) { - if ((token = this.expect(':'))) { - argsFn.push(this.expression()); - } else { - var fnInvoke = function(self, locals, input) { - var args = [input]; - for (var i = 0; i < argsFn.length; i++) { - args.push(argsFn[i](self, locals)); - } - return fn.apply(self, args); - }; - return function() { - return fnInvoke; - }; - } - } - }, - - expression: function() { - return this.assignment(); - }, - - assignment: function() { - var left = this.ternary(); - var right; - var token; - if ((token = this.expect('='))) { - if (!left.assign) { - this.throwError('implies assignment but [' + - this.text.substring(0, token.index) + '] can not be assigned to', token); - } - right = this.ternary(); - return function(scope, locals) { - return left.assign(scope, right(scope, locals), locals); - }; - } - return left; - }, - - ternary: function() { - var left = this.logicalOR(); - var middle; - var token; - if ((token = this.expect('?'))) { - middle = this.assignment(); - if ((token = this.expect(':'))) { - return this.ternaryFn(left, middle, this.assignment()); - } else { - this.throwError('expected :', token); - } - } else { - return left; - } - }, - - logicalOR: function() { - var left = this.logicalAND(); - var token; - while (true) { - if ((token = this.expect('||'))) { - left = this.binaryFn(left, token.fn, this.logicalAND()); - } else { - return left; - } - } - }, - - logicalAND: function() { - var left = this.equality(); - var token; - if ((token = this.expect('&&'))) { - left = this.binaryFn(left, token.fn, this.logicalAND()); - } - return left; - }, - - equality: function() { - var left = this.relational(); - var token; - if ((token = this.expect('==','!=','===','!=='))) { - left = this.binaryFn(left, token.fn, this.equality()); - } - return left; - }, - - relational: function() { - var left = this.additive(); - var token; - if ((token = this.expect('<', '>', '<=', '>='))) { - left = this.binaryFn(left, token.fn, this.relational()); - } - return left; - }, - - additive: function() { - var left = this.multiplicative(); - var token; - while ((token = this.expect('+','-'))) { - left = this.binaryFn(left, token.fn, this.multiplicative()); - } - return left; - }, - - multiplicative: function() { - var left = this.unary(); - var token; - while ((token = this.expect('*','/','%'))) { - left = this.binaryFn(left, token.fn, this.unary()); - } - return left; - }, - - unary: function() { - var token; - if (this.expect('+')) { - return this.primary(); - } else if ((token = this.expect('-'))) { - return this.binaryFn(Parser.ZERO, token.fn, this.unary()); - } else if ((token = this.expect('!'))) { - return this.unaryFn(token.fn, this.unary()); - } else { - return this.primary(); - } - }, - - fieldAccess: function(object) { - var parser = this; - var field = this.expect().text; - var getter = getterFn(field, this.options, this.text); - - return extend(function(scope, locals, self) { - return getter(self || object(scope, locals)); - }, { - assign: function(scope, value, locals) { - var o = object(scope, locals); - if (!o) object.assign(scope, o = {}); - return setter(o, field, value, parser.text, parser.options); - } - }); - }, - - objectIndex: function(obj) { - var parser = this; - - var indexFn = this.expression(); - this.consume(']'); - - return extend(function(self, locals) { - var o = obj(self, locals), - i = indexFn(self, locals), - v, p; - - ensureSafeMemberName(i, parser.text); - if (!o) return undefined; - v = ensureSafeObject(o[i], parser.text); - if (v && v.then && parser.options.unwrapPromises) { - p = v; - if (!('$$v' in v)) { - p.$$v = undefined; - p.then(function(val) { p.$$v = val; }); - } - v = v.$$v; - } - return v; - }, { - assign: function(self, value, locals) { - var key = ensureSafeMemberName(indexFn(self, locals), parser.text); - // prevent overwriting of Function.constructor which would break ensureSafeObject check - var o = ensureSafeObject(obj(self, locals), parser.text); - if (!o) obj.assign(self, o = {}); - return o[key] = value; - } - }); - }, - - functionCall: function(fn, contextGetter) { - var argsFn = []; - if (this.peekToken().text !== ')') { - do { - argsFn.push(this.expression()); - } while (this.expect(',')); - } - this.consume(')'); - - var parser = this; - - return function(scope, locals) { - var args = []; - var context = contextGetter ? contextGetter(scope, locals) : scope; - - for (var i = 0; i < argsFn.length; i++) { - args.push(argsFn[i](scope, locals)); - } - var fnPtr = fn(scope, locals, context) || noop; - - ensureSafeObject(context, parser.text); - ensureSafeFunction(fnPtr, parser.text); - - // IE stupidity! (IE doesn't have apply for some native functions) - var v = fnPtr.apply - ? fnPtr.apply(context, args) - : fnPtr(args[0], args[1], args[2], args[3], args[4]); - - return ensureSafeObject(v, parser.text); - }; - }, - - // This is used with json array declaration - arrayDeclaration: function () { - var elementFns = []; - var allConstant = true; - if (this.peekToken().text !== ']') { - do { - if (this.peek(']')) { - // Support trailing commas per ES5.1. - break; - } - var elementFn = this.expression(); - elementFns.push(elementFn); - if (!elementFn.constant) { - allConstant = false; - } - } while (this.expect(',')); - } - this.consume(']'); - - return extend(function(self, locals) { - var array = []; - for (var i = 0; i < elementFns.length; i++) { - array.push(elementFns[i](self, locals)); - } - return array; - }, { - literal: true, - constant: allConstant - }); - }, - - object: function () { - var keyValues = []; - var allConstant = true; - if (this.peekToken().text !== '}') { - do { - if (this.peek('}')) { - // Support trailing commas per ES5.1. - break; - } - var token = this.expect(), - key = token.string || token.text; - this.consume(':'); - var value = this.expression(); - keyValues.push({key: key, value: value}); - if (!value.constant) { - allConstant = false; - } - } while (this.expect(',')); - } - this.consume('}'); - - return extend(function(self, locals) { - var object = {}; - for (var i = 0; i < keyValues.length; i++) { - var keyValue = keyValues[i]; - object[keyValue.key] = keyValue.value(self, locals); - } - return object; - }, { - literal: true, - constant: allConstant - }); + /* `undefined` is not a constant, it is an identifier, + * but using it as an identifier is not supported + */ + constants: { + 'true': { type: AST.Literal, value: true }, + 'false': { type: AST.Literal, value: false }, + 'null': { type: AST.Literal, value: null }, + 'undefined': {type: AST.Literal, value: undefined }, + 'this': {type: AST.ThisExpression } } }; +function ifDefined(v, d) { + return typeof v !== 'undefined' ? v : d; +} + +function plusFn(l, r) { + if (typeof l === 'undefined') return r; + if (typeof r === 'undefined') return l; + return l + r; +} + +function isStateless($filter, filterName) { + var fn = $filter(filterName); + return !fn.$stateful; +} + +function findConstantAndWatchExpressions(ast, $filter) { + var allConstants; + var argsToWatch; + switch (ast.type) { + case AST.Program: + allConstants = true; + forEach(ast.body, function(expr) { + findConstantAndWatchExpressions(expr.expression, $filter); + allConstants = allConstants && expr.expression.constant; + }); + ast.constant = allConstants; + break; + case AST.Literal: + ast.constant = true; + ast.toWatch = []; + break; + case AST.UnaryExpression: + findConstantAndWatchExpressions(ast.argument, $filter); + ast.constant = ast.argument.constant; + ast.toWatch = ast.argument.toWatch; + break; + case AST.BinaryExpression: + findConstantAndWatchExpressions(ast.left, $filter); + findConstantAndWatchExpressions(ast.right, $filter); + ast.constant = ast.left.constant && ast.right.constant; + ast.toWatch = ast.left.toWatch.concat(ast.right.toWatch); + break; + case AST.LogicalExpression: + findConstantAndWatchExpressions(ast.left, $filter); + findConstantAndWatchExpressions(ast.right, $filter); + ast.constant = ast.left.constant && ast.right.constant; + ast.toWatch = ast.constant ? [] : [ast]; + break; + case AST.ConditionalExpression: + findConstantAndWatchExpressions(ast.test, $filter); + findConstantAndWatchExpressions(ast.alternate, $filter); + findConstantAndWatchExpressions(ast.consequent, $filter); + ast.constant = ast.test.constant && ast.alternate.constant && ast.consequent.constant; + ast.toWatch = ast.constant ? [] : [ast]; + break; + case AST.Identifier: + ast.constant = false; + ast.toWatch = [ast]; + break; + case AST.MemberExpression: + findConstantAndWatchExpressions(ast.object, $filter); + if (ast.computed) { + findConstantAndWatchExpressions(ast.property, $filter); + } + ast.constant = ast.object.constant && (!ast.computed || ast.property.constant); + ast.toWatch = [ast]; + break; + case AST.CallExpression: + allConstants = ast.filter ? isStateless($filter, ast.callee.name) : false; + argsToWatch = []; + forEach(ast.arguments, function(expr) { + findConstantAndWatchExpressions(expr, $filter); + allConstants = allConstants && expr.constant; + if (!expr.constant) { + argsToWatch.push.apply(argsToWatch, expr.toWatch); + } + }); + ast.constant = allConstants; + ast.toWatch = ast.filter && isStateless($filter, ast.callee.name) ? argsToWatch : [ast]; + break; + case AST.AssignmentExpression: + findConstantAndWatchExpressions(ast.left, $filter); + findConstantAndWatchExpressions(ast.right, $filter); + ast.constant = ast.left.constant && ast.right.constant; + ast.toWatch = [ast]; + break; + case AST.ArrayExpression: + allConstants = true; + argsToWatch = []; + forEach(ast.elements, function(expr) { + findConstantAndWatchExpressions(expr, $filter); + allConstants = allConstants && expr.constant; + if (!expr.constant) { + argsToWatch.push.apply(argsToWatch, expr.toWatch); + } + }); + ast.constant = allConstants; + ast.toWatch = argsToWatch; + break; + case AST.ObjectExpression: + allConstants = true; + argsToWatch = []; + forEach(ast.properties, function(property) { + findConstantAndWatchExpressions(property.value, $filter); + allConstants = allConstants && property.value.constant; + if (!property.value.constant) { + argsToWatch.push.apply(argsToWatch, property.value.toWatch); + } + }); + ast.constant = allConstants; + ast.toWatch = argsToWatch; + break; + case AST.ThisExpression: + ast.constant = false; + ast.toWatch = []; + break; + } +} + +function getInputs(body) { + if (body.length != 1) return; + var lastExpression = body[0].expression; + var candidate = lastExpression.toWatch; + if (candidate.length !== 1) return candidate; + return candidate[0] !== lastExpression ? candidate : undefined; +} + +function isAssignable(ast) { + return ast.type === AST.Identifier || ast.type === AST.MemberExpression; +} + +function assignableAST(ast) { + if (ast.body.length === 1 && isAssignable(ast.body[0].expression)) { + return {type: AST.AssignmentExpression, left: ast.body[0].expression, right: {type: AST.NGValueParameter}, operator: '='}; + } +} + +function isLiteral(ast) { + return ast.body.length === 0 || + ast.body.length === 1 && ( + ast.body[0].expression.type === AST.Literal || + ast.body[0].expression.type === AST.ArrayExpression || + ast.body[0].expression.type === AST.ObjectExpression); +} + +function isConstant(ast) { + return ast.constant; +} + +function ASTCompiler(astBuilder, $filter) { + this.astBuilder = astBuilder; + this.$filter = $filter; +} + +ASTCompiler.prototype = { + compile: function(expression, expensiveChecks) { + var self = this; + var ast = this.astBuilder.ast(expression); + this.state = { + nextId: 0, + filters: {}, + expensiveChecks: expensiveChecks, + fn: {vars: [], body: [], own: {}}, + assign: {vars: [], body: [], own: {}}, + inputs: [] + }; + findConstantAndWatchExpressions(ast, self.$filter); + var extra = ''; + var assignable; + this.stage = 'assign'; + if ((assignable = assignableAST(ast))) { + this.state.computing = 'assign'; + var result = this.nextId(); + this.recurse(assignable, result); + extra = 'fn.assign=' + this.generateFunction('assign', 's,v,l'); + } + var toWatch = getInputs(ast.body); + self.stage = 'inputs'; + forEach(toWatch, function(watch, key) { + var fnKey = 'fn' + key; + self.state[fnKey] = {vars: [], body: [], own: {}}; + self.state.computing = fnKey; + var intoId = self.nextId(); + self.recurse(watch, intoId); + self.return_(intoId); + self.state.inputs.push(fnKey); + watch.watchId = key; + }); + this.state.computing = 'fn'; + this.stage = 'main'; + this.recurse(ast); + var fnString = + // The build and minification steps remove the string "use strict" from the code, but this is done using a regex. + // This is a workaround for this until we do a better job at only removing the prefix only when we should. + '"' + this.USE + ' ' + this.STRICT + '";\n' + + this.filterPrefix() + + 'var fn=' + this.generateFunction('fn', 's,l,a,i') + + extra + + this.watchFns() + + 'return fn;'; + + /* jshint -W054 */ + var fn = (new Function('$filter', + 'ensureSafeMemberName', + 'ensureSafeObject', + 'ensureSafeFunction', + 'ifDefined', + 'plus', + 'text', + fnString))( + this.$filter, + ensureSafeMemberName, + ensureSafeObject, + ensureSafeFunction, + ifDefined, + plusFn, + expression); + /* jshint +W054 */ + this.state = this.stage = undefined; + fn.literal = isLiteral(ast); + fn.constant = isConstant(ast); + return fn; + }, + + USE: 'use', + + STRICT: 'strict', + + watchFns: function() { + var result = []; + var fns = this.state.inputs; + var self = this; + forEach(fns, function(name) { + result.push('var ' + name + '=' + self.generateFunction(name, 's')); + }); + if (fns.length) { + result.push('fn.inputs=[' + fns.join(',') + '];'); + } + return result.join(''); + }, + + generateFunction: function(name, params) { + return 'function(' + params + '){' + + this.varsPrefix(name) + + this.body(name) + + '};'; + }, + + filterPrefix: function() { + var parts = []; + var self = this; + forEach(this.state.filters, function(id, filter) { + parts.push(id + '=$filter(' + self.escape(filter) + ')'); + }); + if (parts.length) return 'var ' + parts.join(',') + ';'; + return ''; + }, + + varsPrefix: function(section) { + return this.state[section].vars.length ? 'var ' + this.state[section].vars.join(',') + ';' : ''; + }, + + body: function(section) { + return this.state[section].body.join(''); + }, + + recurse: function(ast, intoId, nameId, recursionFn, create, skipWatchIdCheck) { + var left, right, self = this, args, expression; + recursionFn = recursionFn || noop; + if (!skipWatchIdCheck && isDefined(ast.watchId)) { + intoId = intoId || this.nextId(); + this.if_('i', + this.lazyAssign(intoId, this.computedMember('i', ast.watchId)), + this.lazyRecurse(ast, intoId, nameId, recursionFn, create, true) + ); + return; + } + switch (ast.type) { + case AST.Program: + forEach(ast.body, function(expression, pos) { + self.recurse(expression.expression, undefined, undefined, function(expr) { right = expr; }); + if (pos !== ast.body.length - 1) { + self.current().body.push(right, ';'); + } else { + self.return_(right); + } + }); + break; + case AST.Literal: + expression = this.escape(ast.value); + this.assign(intoId, expression); + recursionFn(expression); + break; + case AST.UnaryExpression: + this.recurse(ast.argument, undefined, undefined, function(expr) { right = expr; }); + expression = ast.operator + '(' + this.ifDefined(right, 0) + ')'; + this.assign(intoId, expression); + recursionFn(expression); + break; + case AST.BinaryExpression: + this.recurse(ast.left, undefined, undefined, function(expr) { left = expr; }); + this.recurse(ast.right, undefined, undefined, function(expr) { right = expr; }); + if (ast.operator === '+') { + expression = this.plus(left, right); + } else if (ast.operator === '-') { + expression = this.ifDefined(left, 0) + ast.operator + this.ifDefined(right, 0); + } else { + expression = '(' + left + ')' + ast.operator + '(' + right + ')'; + } + this.assign(intoId, expression); + recursionFn(expression); + break; + case AST.LogicalExpression: + intoId = intoId || this.nextId(); + self.recurse(ast.left, intoId); + self.if_(ast.operator === '&&' ? intoId : self.not(intoId), self.lazyRecurse(ast.right, intoId)); + recursionFn(intoId); + break; + case AST.ConditionalExpression: + intoId = intoId || this.nextId(); + self.recurse(ast.test, intoId); + self.if_(intoId, self.lazyRecurse(ast.alternate, intoId), self.lazyRecurse(ast.consequent, intoId)); + recursionFn(intoId); + break; + case AST.Identifier: + intoId = intoId || this.nextId(); + if (nameId) { + nameId.context = self.stage === 'inputs' ? 's' : this.assign(this.nextId(), this.getHasOwnProperty('l', ast.name) + '?l:s'); + nameId.computed = false; + nameId.name = ast.name; + } + ensureSafeMemberName(ast.name); + self.if_(self.stage === 'inputs' || self.not(self.getHasOwnProperty('l', ast.name)), + function() { + self.if_(self.stage === 'inputs' || 's', function() { + if (create && create !== 1) { + self.if_( + self.not(self.nonComputedMember('s', ast.name)), + self.lazyAssign(self.nonComputedMember('s', ast.name), '{}')); + } + self.assign(intoId, self.nonComputedMember('s', ast.name)); + }); + }, intoId && self.lazyAssign(intoId, self.nonComputedMember('l', ast.name)) + ); + if (self.state.expensiveChecks || isPossiblyDangerousMemberName(ast.name)) { + self.addEnsureSafeObject(intoId); + } + recursionFn(intoId); + break; + case AST.MemberExpression: + left = nameId && (nameId.context = this.nextId()) || this.nextId(); + intoId = intoId || this.nextId(); + self.recurse(ast.object, left, undefined, function() { + self.if_(self.notNull(left), function() { + if (ast.computed) { + right = self.nextId(); + self.recurse(ast.property, right); + self.addEnsureSafeMemberName(right); + if (create && create !== 1) { + self.if_(self.not(self.computedMember(left, right)), self.lazyAssign(self.computedMember(left, right), '{}')); + } + expression = self.ensureSafeObject(self.computedMember(left, right)); + self.assign(intoId, expression); + if (nameId) { + nameId.computed = true; + nameId.name = right; + } + } else { + ensureSafeMemberName(ast.property.name); + if (create && create !== 1) { + self.if_(self.not(self.nonComputedMember(left, ast.property.name)), self.lazyAssign(self.nonComputedMember(left, ast.property.name), '{}')); + } + expression = self.nonComputedMember(left, ast.property.name); + if (self.state.expensiveChecks || isPossiblyDangerousMemberName(ast.property.name)) { + expression = self.ensureSafeObject(expression); + } + self.assign(intoId, expression); + if (nameId) { + nameId.computed = false; + nameId.name = ast.property.name; + } + } + }, function() { + self.assign(intoId, 'undefined'); + }); + recursionFn(intoId); + }, !!create); + break; + case AST.CallExpression: + intoId = intoId || this.nextId(); + if (ast.filter) { + right = self.filter(ast.callee.name); + args = []; + forEach(ast.arguments, function(expr) { + var argument = self.nextId(); + self.recurse(expr, argument); + args.push(argument); + }); + expression = right + '(' + args.join(',') + ')'; + self.assign(intoId, expression); + recursionFn(intoId); + } else { + right = self.nextId(); + left = {}; + args = []; + self.recurse(ast.callee, right, left, function() { + self.if_(self.notNull(right), function() { + self.addEnsureSafeFunction(right); + forEach(ast.arguments, function(expr) { + self.recurse(expr, self.nextId(), undefined, function(argument) { + args.push(self.ensureSafeObject(argument)); + }); + }); + if (left.name) { + if (!self.state.expensiveChecks) { + self.addEnsureSafeObject(left.context); + } + expression = self.member(left.context, left.name, left.computed) + '(' + args.join(',') + ')'; + } else { + expression = right + '(' + args.join(',') + ')'; + } + expression = self.ensureSafeObject(expression); + self.assign(intoId, expression); + }, function() { + self.assign(intoId, 'undefined'); + }); + recursionFn(intoId); + }); + } + break; + case AST.AssignmentExpression: + right = this.nextId(); + left = {}; + if (!isAssignable(ast.left)) { + throw $parseMinErr('lval', 'Trying to assing a value to a non l-value'); + } + this.recurse(ast.left, undefined, left, function() { + self.if_(self.notNull(left.context), function() { + self.recurse(ast.right, right); + self.addEnsureSafeObject(self.member(left.context, left.name, left.computed)); + expression = self.member(left.context, left.name, left.computed) + ast.operator + right; + self.assign(intoId, expression); + recursionFn(intoId || expression); + }); + }, 1); + break; + case AST.ArrayExpression: + args = []; + forEach(ast.elements, function(expr) { + self.recurse(expr, self.nextId(), undefined, function(argument) { + args.push(argument); + }); + }); + expression = '[' + args.join(',') + ']'; + this.assign(intoId, expression); + recursionFn(expression); + break; + case AST.ObjectExpression: + args = []; + forEach(ast.properties, function(property) { + self.recurse(property.value, self.nextId(), undefined, function(expr) { + args.push(self.escape( + property.key.type === AST.Identifier ? property.key.name : + ('' + property.key.value)) + + ':' + expr); + }); + }); + expression = '{' + args.join(',') + '}'; + this.assign(intoId, expression); + recursionFn(expression); + break; + case AST.ThisExpression: + this.assign(intoId, 's'); + recursionFn('s'); + break; + case AST.NGValueParameter: + this.assign(intoId, 'v'); + recursionFn('v'); + break; + } + }, + + getHasOwnProperty: function(element, property) { + var key = element + '.' + property; + var own = this.current().own; + if (!own.hasOwnProperty(key)) { + own[key] = this.nextId(false, element + '&&(' + this.escape(property) + ' in ' + element + ')'); + } + return own[key]; + }, + + assign: function(id, value) { + if (!id) return; + this.current().body.push(id, '=', value, ';'); + return id; + }, + + filter: function(filterName) { + if (!this.state.filters.hasOwnProperty(filterName)) { + this.state.filters[filterName] = this.nextId(true); + } + return this.state.filters[filterName]; + }, + + ifDefined: function(id, defaultValue) { + return 'ifDefined(' + id + ',' + this.escape(defaultValue) + ')'; + }, + + plus: function(left, right) { + return 'plus(' + left + ',' + right + ')'; + }, + + return_: function(id) { + this.current().body.push('return ', id, ';'); + }, + + if_: function(test, alternate, consequent) { + if (test === true) { + alternate(); + } else { + var body = this.current().body; + body.push('if(', test, '){'); + alternate(); + body.push('}'); + if (consequent) { + body.push('else{'); + consequent(); + body.push('}'); + } + } + }, + + not: function(expression) { + return '!(' + expression + ')'; + }, + + notNull: function(expression) { + return expression + '!=null'; + }, + + nonComputedMember: function(left, right) { + return left + '.' + right; + }, + + computedMember: function(left, right) { + return left + '[' + right + ']'; + }, + + member: function(left, right, computed) { + if (computed) return this.computedMember(left, right); + return this.nonComputedMember(left, right); + }, + + addEnsureSafeObject: function(item) { + this.current().body.push(this.ensureSafeObject(item), ';'); + }, + + addEnsureSafeMemberName: function(item) { + this.current().body.push(this.ensureSafeMemberName(item), ';'); + }, + + addEnsureSafeFunction: function(item) { + this.current().body.push(this.ensureSafeFunction(item), ';'); + }, + + ensureSafeObject: function(item) { + return 'ensureSafeObject(' + item + ',text)'; + }, + + ensureSafeMemberName: function(item) { + return 'ensureSafeMemberName(' + item + ',text)'; + }, + + ensureSafeFunction: function(item) { + return 'ensureSafeFunction(' + item + ',text)'; + }, + + lazyRecurse: function(ast, intoId, nameId, recursionFn, create, skipWatchIdCheck) { + var self = this; + return function() { + self.recurse(ast, intoId, nameId, recursionFn, create, skipWatchIdCheck); + }; + }, + + lazyAssign: function(id, value) { + var self = this; + return function() { + self.assign(id, value); + }; + }, + + stringEscapeRegex: /[^ a-zA-Z0-9]/g, + + stringEscapeFn: function(c) { + return '\\u' + ('0000' + c.charCodeAt(0).toString(16)).slice(-4); + }, + + escape: function(value) { + if (isString(value)) return "'" + value.replace(this.stringEscapeRegex, this.stringEscapeFn) + "'"; + if (isNumber(value)) return value.toString(); + if (value === true) return 'true'; + if (value === false) return 'false'; + if (value === null) return 'null'; + if (typeof value === 'undefined') return 'undefined'; + + throw $parseMinErr('esc', 'IMPOSSIBLE'); + }, + + nextId: function(skip, init) { + var id = 'v' + (this.state.nextId++); + if (!skip) { + this.current().vars.push(id + (init ? '=' + init : '')); + } + return id; + }, + + current: function() { + return this.state[this.state.computing]; + } +}; + + +function ASTInterpreter(astBuilder, $filter) { + this.astBuilder = astBuilder; + this.$filter = $filter; +} + +ASTInterpreter.prototype = { + compile: function(expression, expensiveChecks) { + var self = this; + var ast = this.astBuilder.ast(expression); + this.expression = expression; + this.expensiveChecks = expensiveChecks; + findConstantAndWatchExpressions(ast, self.$filter); + var assignable; + var assign; + if ((assignable = assignableAST(ast))) { + assign = this.recurse(assignable); + } + var toWatch = getInputs(ast.body); + var inputs; + if (toWatch) { + inputs = []; + forEach(toWatch, function(watch, key) { + var input = self.recurse(watch); + watch.input = input; + inputs.push(input); + watch.watchId = key; + }); + } + var expressions = []; + forEach(ast.body, function(expression) { + expressions.push(self.recurse(expression.expression)); + }); + var fn = ast.body.length === 0 ? function() {} : + ast.body.length === 1 ? expressions[0] : + function(scope, locals) { + var lastValue; + forEach(expressions, function(exp) { + lastValue = exp(scope, locals); + }); + return lastValue; + }; + if (assign) { + fn.assign = function(scope, value, locals) { + return assign(scope, locals, value); + }; + } + if (inputs) { + fn.inputs = inputs; + } + fn.literal = isLiteral(ast); + fn.constant = isConstant(ast); + return fn; + }, + + recurse: function(ast, context, create) { + var left, right, self = this, args, expression; + if (ast.input) { + return this.inputs(ast.input, ast.watchId); + } + switch (ast.type) { + case AST.Literal: + return this.value(ast.value, context); + case AST.UnaryExpression: + right = this.recurse(ast.argument); + return this['unary' + ast.operator](right, context); + case AST.BinaryExpression: + left = this.recurse(ast.left); + right = this.recurse(ast.right); + return this['binary' + ast.operator](left, right, context); + case AST.LogicalExpression: + left = this.recurse(ast.left); + right = this.recurse(ast.right); + return this['binary' + ast.operator](left, right, context); + case AST.ConditionalExpression: + return this['ternary?:']( + this.recurse(ast.test), + this.recurse(ast.alternate), + this.recurse(ast.consequent), + context + ); + case AST.Identifier: + ensureSafeMemberName(ast.name, self.expression); + return self.identifier(ast.name, + self.expensiveChecks || isPossiblyDangerousMemberName(ast.name), + context, create, self.expression); + case AST.MemberExpression: + left = this.recurse(ast.object, false, !!create); + if (!ast.computed) { + ensureSafeMemberName(ast.property.name, self.expression); + right = ast.property.name; + } + if (ast.computed) right = this.recurse(ast.property); + return ast.computed ? + this.computedMember(left, right, context, create, self.expression) : + this.nonComputedMember(left, right, self.expensiveChecks, context, create, self.expression); + case AST.CallExpression: + args = []; + forEach(ast.arguments, function(expr) { + args.push(self.recurse(expr)); + }); + if (ast.filter) right = this.$filter(ast.callee.name); + if (!ast.filter) right = this.recurse(ast.callee, true); + return ast.filter ? + function(scope, locals, assign, inputs) { + var values = []; + for (var i = 0; i < args.length; ++i) { + values.push(args[i](scope, locals, assign, inputs)); + } + var value = right.apply(undefined, values, inputs); + return context ? {context: undefined, name: undefined, value: value} : value; + } : + function(scope, locals, assign, inputs) { + var rhs = right(scope, locals, assign, inputs); + var value; + if (rhs.value != null) { + ensureSafeObject(rhs.context, self.expression); + ensureSafeFunction(rhs.value, self.expression); + var values = []; + for (var i = 0; i < args.length; ++i) { + values.push(ensureSafeObject(args[i](scope, locals, assign, inputs), self.expression)); + } + value = ensureSafeObject(rhs.value.apply(rhs.context, values), self.expression); + } + return context ? {value: value} : value; + }; + case AST.AssignmentExpression: + left = this.recurse(ast.left, true, 1); + right = this.recurse(ast.right); + return function(scope, locals, assign, inputs) { + var lhs = left(scope, locals, assign, inputs); + var rhs = right(scope, locals, assign, inputs); + ensureSafeObject(lhs.value, self.expression); + lhs.context[lhs.name] = rhs; + return context ? {value: rhs} : rhs; + }; + case AST.ArrayExpression: + args = []; + forEach(ast.elements, function(expr) { + args.push(self.recurse(expr)); + }); + return function(scope, locals, assign, inputs) { + var value = []; + for (var i = 0; i < args.length; ++i) { + value.push(args[i](scope, locals, assign, inputs)); + } + return context ? {value: value} : value; + }; + case AST.ObjectExpression: + args = []; + forEach(ast.properties, function(property) { + args.push({key: property.key.type === AST.Identifier ? + property.key.name : + ('' + property.key.value), + value: self.recurse(property.value) + }); + }); + return function(scope, locals, assign, inputs) { + var value = {}; + for (var i = 0; i < args.length; ++i) { + value[args[i].key] = args[i].value(scope, locals, assign, inputs); + } + return context ? {value: value} : value; + }; + case AST.ThisExpression: + return function(scope) { + return context ? {value: scope} : scope; + }; + case AST.NGValueParameter: + return function(scope, locals, assign, inputs) { + return context ? {value: assign} : assign; + }; + } + }, + + 'unary+': function(argument, context) { + return function(scope, locals, assign, inputs) { + var arg = argument(scope, locals, assign, inputs); + if (isDefined(arg)) { + arg = +arg; + } else { + arg = 0; + } + return context ? {value: arg} : arg; + }; + }, + 'unary-': function(argument, context) { + return function(scope, locals, assign, inputs) { + var arg = argument(scope, locals, assign, inputs); + if (isDefined(arg)) { + arg = -arg; + } else { + arg = 0; + } + return context ? {value: arg} : arg; + }; + }, + 'unary!': function(argument, context) { + return function(scope, locals, assign, inputs) { + var arg = !argument(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary+': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var lhs = left(scope, locals, assign, inputs); + var rhs = right(scope, locals, assign, inputs); + var arg = plusFn(lhs, rhs); + return context ? {value: arg} : arg; + }; + }, + 'binary-': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var lhs = left(scope, locals, assign, inputs); + var rhs = right(scope, locals, assign, inputs); + var arg = (isDefined(lhs) ? lhs : 0) - (isDefined(rhs) ? rhs : 0); + return context ? {value: arg} : arg; + }; + }, + 'binary*': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) * right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary/': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) / right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary%': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) % right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary===': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) === right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary!==': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) !== right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary==': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) == right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary!=': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) != right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary<': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) < right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary>': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) > right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary<=': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) <= right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary>=': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) >= right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary&&': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) && right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary||': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) || right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'ternary?:': function(test, alternate, consequent, context) { + return function(scope, locals, assign, inputs) { + var arg = test(scope, locals, assign, inputs) ? alternate(scope, locals, assign, inputs) : consequent(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + value: function(value, context) { + return function() { return context ? {context: undefined, name: undefined, value: value} : value; }; + }, + identifier: function(name, expensiveChecks, context, create, expression) { + return function(scope, locals, assign, inputs) { + var base = locals && (name in locals) ? locals : scope; + if (create && create !== 1 && base && !(base[name])) { + base[name] = {}; + } + var value = base ? base[name] : undefined; + if (expensiveChecks) { + ensureSafeObject(value, expression); + } + if (context) { + return {context: base, name: name, value: value}; + } else { + return value; + } + }; + }, + computedMember: function(left, right, context, create, expression) { + return function(scope, locals, assign, inputs) { + var lhs = left(scope, locals, assign, inputs); + var rhs; + var value; + if (lhs != null) { + rhs = right(scope, locals, assign, inputs); + ensureSafeMemberName(rhs, expression); + if (create && create !== 1 && lhs && !(lhs[rhs])) { + lhs[rhs] = {}; + } + value = lhs[rhs]; + ensureSafeObject(value, expression); + } + if (context) { + return {context: lhs, name: rhs, value: value}; + } else { + return value; + } + }; + }, + nonComputedMember: function(left, right, expensiveChecks, context, create, expression) { + return function(scope, locals, assign, inputs) { + var lhs = left(scope, locals, assign, inputs); + if (create && create !== 1 && lhs && !(lhs[right])) { + lhs[right] = {}; + } + var value = lhs != null ? lhs[right] : undefined; + if (expensiveChecks || isPossiblyDangerousMemberName(right)) { + ensureSafeObject(value, expression); + } + if (context) { + return {context: lhs, name: right, value: value}; + } else { + return value; + } + }; + }, + inputs: function(input, watchId) { + return function(scope, value, locals, inputs) { + if (inputs) return inputs[watchId]; + return input(scope, value, locals); + }; + } +}; + +/** + * @constructor + */ +var Parser = function(lexer, $filter, options) { + this.lexer = lexer; + this.$filter = $filter; + this.options = options; + this.ast = new AST(this.lexer); + this.astCompiler = options.csp ? new ASTInterpreter(this.ast, $filter) : + new ASTCompiler(this.ast, $filter); +}; + +Parser.prototype = { + constructor: Parser, + + parse: function(text) { + return this.astCompiler.compile(text, this.options.expensiveChecks); + } +}; ////////////////////////////////////////////////// // Parser helper functions ////////////////////////////////////////////////// -function setter(obj, path, setValue, fullExp, options) { - //needed? - options = options || {}; +function setter(obj, path, setValue, fullExp) { + ensureSafeObject(obj, fullExp); var element = path.split('.'), key; for (var i = 0; element.length > 1; i++) { key = ensureSafeMemberName(element.shift(), fullExp); - var propertyObj = obj[key]; + var propertyObj = ensureSafeObject(obj[key], fullExp); if (!propertyObj) { propertyObj = {}; obj[key] = propertyObj; } obj = propertyObj; - if (obj.then && options.unwrapPromises) { - promiseWarning(fullExp); - if (!("$$v" in obj)) { - (function(promise) { - promise.then(function(val) { promise.$$v = val; }); } - )(obj); - } - if (obj.$$v === undefined) { - obj.$$v = {}; - } - obj = obj.$$v; - } } key = ensureSafeMemberName(element.shift(), fullExp); - ensureSafeObject(obj, fullExp); ensureSafeObject(obj[key], fullExp); obj[key] = setValue; return setValue; } -var getterFnCache = {}; +var getterFnCacheDefault = createMap(); +var getterFnCacheExpensive = createMap(); -/** - * Implementation of the "Black Hole" variant from: - * - http://jsperf.com/angularjs-parse-getter/4 - * - http://jsperf.com/path-evaluation-simplified/7 - */ -function cspSafeGetterFn(key0, key1, key2, key3, key4, fullExp, options) { - ensureSafeMemberName(key0, fullExp); - ensureSafeMemberName(key1, fullExp); - ensureSafeMemberName(key2, fullExp); - ensureSafeMemberName(key3, fullExp); - ensureSafeMemberName(key4, fullExp); - - return !options.unwrapPromises - ? function cspSafeGetter(scope, locals) { - var pathVal = (locals && locals.hasOwnProperty(key0)) ? locals : scope; - - if (pathVal == null) return pathVal; - pathVal = pathVal[key0]; - - if (!key1) return pathVal; - if (pathVal == null) return undefined; - pathVal = pathVal[key1]; - - if (!key2) return pathVal; - if (pathVal == null) return undefined; - pathVal = pathVal[key2]; - - if (!key3) return pathVal; - if (pathVal == null) return undefined; - pathVal = pathVal[key3]; - - if (!key4) return pathVal; - if (pathVal == null) return undefined; - pathVal = pathVal[key4]; - - return pathVal; - } - : function cspSafePromiseEnabledGetter(scope, locals) { - var pathVal = (locals && locals.hasOwnProperty(key0)) ? locals : scope, - promise; - - if (pathVal == null) return pathVal; - - pathVal = pathVal[key0]; - if (pathVal && pathVal.then) { - promiseWarning(fullExp); - if (!("$$v" in pathVal)) { - promise = pathVal; - promise.$$v = undefined; - promise.then(function(val) { promise.$$v = val; }); - } - pathVal = pathVal.$$v; - } - - if (!key1) return pathVal; - if (pathVal == null) return undefined; - pathVal = pathVal[key1]; - if (pathVal && pathVal.then) { - promiseWarning(fullExp); - if (!("$$v" in pathVal)) { - promise = pathVal; - promise.$$v = undefined; - promise.then(function(val) { promise.$$v = val; }); - } - pathVal = pathVal.$$v; - } - - if (!key2) return pathVal; - if (pathVal == null) return undefined; - pathVal = pathVal[key2]; - if (pathVal && pathVal.then) { - promiseWarning(fullExp); - if (!("$$v" in pathVal)) { - promise = pathVal; - promise.$$v = undefined; - promise.then(function(val) { promise.$$v = val; }); - } - pathVal = pathVal.$$v; - } - - if (!key3) return pathVal; - if (pathVal == null) return undefined; - pathVal = pathVal[key3]; - if (pathVal && pathVal.then) { - promiseWarning(fullExp); - if (!("$$v" in pathVal)) { - promise = pathVal; - promise.$$v = undefined; - promise.then(function(val) { promise.$$v = val; }); - } - pathVal = pathVal.$$v; - } - - if (!key4) return pathVal; - if (pathVal == null) return undefined; - pathVal = pathVal[key4]; - if (pathVal && pathVal.then) { - promiseWarning(fullExp); - if (!("$$v" in pathVal)) { - promise = pathVal; - promise.$$v = undefined; - promise.then(function(val) { promise.$$v = val; }); - } - pathVal = pathVal.$$v; - } - return pathVal; - }; +function isPossiblyDangerousMemberName(name) { + return name == 'constructor'; } -function getterFn(path, options, fullExp) { - // Check whether the cache has this getter already. - // We can use hasOwnProperty directly on the cache because we ensure, - // see below, that the cache never stores a path called 'hasOwnProperty' - if (getterFnCache.hasOwnProperty(path)) { - return getterFnCache[path]; - } +var objectValueOf = Object.prototype.valueOf; - var pathKeys = path.split('.'), - pathKeysLength = pathKeys.length, - fn; - - // http://jsperf.com/angularjs-parse-getter/6 - if (options.csp) { - if (pathKeysLength < 6) { - fn = cspSafeGetterFn(pathKeys[0], pathKeys[1], pathKeys[2], pathKeys[3], pathKeys[4], fullExp, - options); - } else { - fn = function(scope, locals) { - var i = 0, val; - do { - val = cspSafeGetterFn(pathKeys[i++], pathKeys[i++], pathKeys[i++], pathKeys[i++], - pathKeys[i++], fullExp, options)(scope, locals); - - locals = undefined; // clear after first iteration - scope = val; - } while (i < pathKeysLength); - return val; - }; - } - } else { - var code = 'var p;\n'; - forEach(pathKeys, function(key, index) { - ensureSafeMemberName(key, fullExp); - code += 'if(s == null) return undefined;\n' + - 's='+ (index - // we simply dereference 's' on any .dot notation - ? 's' - // but if we are first then we check locals first, and if so read it first - : '((k&&k.hasOwnProperty("' + key + '"))?k:s)') + '["' + key + '"]' + ';\n' + - (options.unwrapPromises - ? 'if (s && s.then) {\n' + - ' pw("' + fullExp.replace(/(["\r\n])/g, '\\$1') + '");\n' + - ' if (!("$$v" in s)) {\n' + - ' p=s;\n' + - ' p.$$v = undefined;\n' + - ' p.then(function(v) {p.$$v=v;});\n' + - '}\n' + - ' s=s.$$v\n' + - '}\n' - : ''); - }); - code += 'return s;'; - - /* jshint -W054 */ - var evaledFnGetter = new Function('s', 'k', 'pw', code); // s=scope, k=locals, pw=promiseWarning - /* jshint +W054 */ - evaledFnGetter.toString = valueFn(code); - fn = options.unwrapPromises ? function(scope, locals) { - return evaledFnGetter(scope, locals, promiseWarning); - } : evaledFnGetter; - } - - // Only cache the value if it's not going to mess up the cache object - // This is more performant that using Object.prototype.hasOwnProperty.call - if (path !== 'hasOwnProperty') { - getterFnCache[path] = fn; - } - return fn; +function getValueOf(value) { + return isFunction(value.valueOf) ? value.valueOf() : objectValueOf.call(value); } /////////////////////////////////// @@ -11172,142 +14032,221 @@ function getterFn(path, options, fullExp) { /** * @ngdoc provider * @name $parseProvider - * @kind function * * @description * `$parseProvider` can be used for configuring the default behavior of the {@link ng.$parse $parse} * service. */ function $ParseProvider() { - var cache = {}; + var cacheDefault = createMap(); + var cacheExpensive = createMap(); - var $parseOptions = { - csp: false, - unwrapPromises: false, - logPromiseWarnings: true - }; + this.$get = ['$filter', '$sniffer', function($filter, $sniffer) { + var $parseOptions = { + csp: $sniffer.csp, + expensiveChecks: false + }, + $parseOptionsExpensive = { + csp: $sniffer.csp, + expensiveChecks: true + }; - - /** - * @deprecated Promise unwrapping via $parse is deprecated and will be removed in the future. - * - * @ngdoc method - * @name $parseProvider#unwrapPromises - * @description - * - * **This feature is deprecated, see deprecation notes below for more info** - * - * If set to true (default is false), $parse will unwrap promises automatically when a promise is - * found at any part of the expression. In other words, if set to true, the expression will always - * result in a non-promise value. - * - * While the promise is unresolved, it's treated as undefined, but once resolved and fulfilled, - * the fulfillment value is used in place of the promise while evaluating the expression. - * - * **Deprecation notice** - * - * This is a feature that didn't prove to be wildly useful or popular, primarily because of the - * dichotomy between data access in templates (accessed as raw values) and controller code - * (accessed as promises). - * - * In most code we ended up resolving promises manually in controllers anyway and thus unifying - * the model access there. - * - * Other downsides of automatic promise unwrapping: - * - * - when building components it's often desirable to receive the raw promises - * - adds complexity and slows down expression evaluation - * - makes expression code pre-generation unattractive due to the amount of code that needs to be - * generated - * - makes IDE auto-completion and tool support hard - * - * **Warning Logs** - * - * If the unwrapping is enabled, Angular will log a warning about each expression that unwraps a - * promise (to reduce the noise, each expression is logged only once). To disable this logging use - * `$parseProvider.logPromiseWarnings(false)` api. - * - * - * @param {boolean=} value New value. - * @returns {boolean|self} Returns the current setting when used as getter and self if used as - * setter. - */ - this.unwrapPromises = function(value) { - if (isDefined(value)) { - $parseOptions.unwrapPromises = !!value; - return this; - } else { - return $parseOptions.unwrapPromises; - } - }; - - - /** - * @deprecated Promise unwrapping via $parse is deprecated and will be removed in the future. - * - * @ngdoc method - * @name $parseProvider#logPromiseWarnings - * @description - * - * Controls whether Angular should log a warning on any encounter of a promise in an expression. - * - * The default is set to `true`. - * - * This setting applies only if `$parseProvider.unwrapPromises` setting is set to true as well. - * - * @param {boolean=} value New value. - * @returns {boolean|self} Returns the current setting when used as getter and self if used as - * setter. - */ - this.logPromiseWarnings = function(value) { - if (isDefined(value)) { - $parseOptions.logPromiseWarnings = value; - return this; - } else { - return $parseOptions.logPromiseWarnings; - } - }; - - - this.$get = ['$filter', '$sniffer', '$log', function($filter, $sniffer, $log) { - $parseOptions.csp = $sniffer.csp; - - promiseWarning = function promiseWarningFn(fullExp) { - if (!$parseOptions.logPromiseWarnings || promiseWarningCache.hasOwnProperty(fullExp)) return; - promiseWarningCache[fullExp] = true; - $log.warn('[$parse] Promise found in the expression `' + fullExp + '`. ' + - 'Automatic unwrapping of promises in Angular expressions is deprecated.'); - }; - - return function(exp) { - var parsedExpression; + return function $parse(exp, interceptorFn, expensiveChecks) { + var parsedExpression, oneTime, cacheKey; switch (typeof exp) { case 'string': + exp = exp.trim(); + cacheKey = exp; - if (cache.hasOwnProperty(exp)) { - return cache[exp]; + var cache = (expensiveChecks ? cacheExpensive : cacheDefault); + parsedExpression = cache[cacheKey]; + + if (!parsedExpression) { + if (exp.charAt(0) === ':' && exp.charAt(1) === ':') { + oneTime = true; + exp = exp.substring(2); + } + var parseOptions = expensiveChecks ? $parseOptionsExpensive : $parseOptions; + var lexer = new Lexer(parseOptions); + var parser = new Parser(lexer, $filter, parseOptions); + parsedExpression = parser.parse(exp); + if (parsedExpression.constant) { + parsedExpression.$$watchDelegate = constantWatchDelegate; + } else if (oneTime) { + parsedExpression.$$watchDelegate = parsedExpression.literal ? + oneTimeLiteralWatchDelegate : oneTimeWatchDelegate; + } else if (parsedExpression.inputs) { + parsedExpression.$$watchDelegate = inputsWatchDelegate; + } + cache[cacheKey] = parsedExpression; } - - var lexer = new Lexer($parseOptions); - var parser = new Parser(lexer, $filter, $parseOptions); - parsedExpression = parser.parse(exp); - - if (exp !== 'hasOwnProperty') { - // Only cache the value if it's not going to mess up the cache object - // This is more performant that using Object.prototype.hasOwnProperty.call - cache[exp] = parsedExpression; - } - - return parsedExpression; + return addInterceptor(parsedExpression, interceptorFn); case 'function': - return exp; + return addInterceptor(exp, interceptorFn); default: return noop; } }; + + function expressionInputDirtyCheck(newValue, oldValueOfValue) { + + if (newValue == null || oldValueOfValue == null) { // null/undefined + return newValue === oldValueOfValue; + } + + if (typeof newValue === 'object') { + + // attempt to convert the value to a primitive type + // TODO(docs): add a note to docs that by implementing valueOf even objects and arrays can + // be cheaply dirty-checked + newValue = getValueOf(newValue); + + if (typeof newValue === 'object') { + // objects/arrays are not supported - deep-watching them would be too expensive + return false; + } + + // fall-through to the primitive equality check + } + + //Primitive or NaN + return newValue === oldValueOfValue || (newValue !== newValue && oldValueOfValue !== oldValueOfValue); + } + + function inputsWatchDelegate(scope, listener, objectEquality, parsedExpression, prettyPrintExpression) { + var inputExpressions = parsedExpression.inputs; + var lastResult; + + if (inputExpressions.length === 1) { + var oldInputValueOf = expressionInputDirtyCheck; // init to something unique so that equals check fails + inputExpressions = inputExpressions[0]; + return scope.$watch(function expressionInputWatch(scope) { + var newInputValue = inputExpressions(scope); + if (!expressionInputDirtyCheck(newInputValue, oldInputValueOf)) { + lastResult = parsedExpression(scope, undefined, undefined, [newInputValue]); + oldInputValueOf = newInputValue && getValueOf(newInputValue); + } + return lastResult; + }, listener, objectEquality, prettyPrintExpression); + } + + var oldInputValueOfValues = []; + var oldInputValues = []; + for (var i = 0, ii = inputExpressions.length; i < ii; i++) { + oldInputValueOfValues[i] = expressionInputDirtyCheck; // init to something unique so that equals check fails + oldInputValues[i] = null; + } + + return scope.$watch(function expressionInputsWatch(scope) { + var changed = false; + + for (var i = 0, ii = inputExpressions.length; i < ii; i++) { + var newInputValue = inputExpressions[i](scope); + if (changed || (changed = !expressionInputDirtyCheck(newInputValue, oldInputValueOfValues[i]))) { + oldInputValues[i] = newInputValue; + oldInputValueOfValues[i] = newInputValue && getValueOf(newInputValue); + } + } + + if (changed) { + lastResult = parsedExpression(scope, undefined, undefined, oldInputValues); + } + + return lastResult; + }, listener, objectEquality, prettyPrintExpression); + } + + function oneTimeWatchDelegate(scope, listener, objectEquality, parsedExpression) { + var unwatch, lastValue; + return unwatch = scope.$watch(function oneTimeWatch(scope) { + return parsedExpression(scope); + }, function oneTimeListener(value, old, scope) { + lastValue = value; + if (isFunction(listener)) { + listener.apply(this, arguments); + } + if (isDefined(value)) { + scope.$$postDigest(function() { + if (isDefined(lastValue)) { + unwatch(); + } + }); + } + }, objectEquality); + } + + function oneTimeLiteralWatchDelegate(scope, listener, objectEquality, parsedExpression) { + var unwatch, lastValue; + return unwatch = scope.$watch(function oneTimeWatch(scope) { + return parsedExpression(scope); + }, function oneTimeListener(value, old, scope) { + lastValue = value; + if (isFunction(listener)) { + listener.call(this, value, old, scope); + } + if (isAllDefined(value)) { + scope.$$postDigest(function() { + if (isAllDefined(lastValue)) unwatch(); + }); + } + }, objectEquality); + + function isAllDefined(value) { + var allDefined = true; + forEach(value, function(val) { + if (!isDefined(val)) allDefined = false; + }); + return allDefined; + } + } + + function constantWatchDelegate(scope, listener, objectEquality, parsedExpression) { + var unwatch; + return unwatch = scope.$watch(function constantWatch(scope) { + return parsedExpression(scope); + }, function constantListener(value, old, scope) { + if (isFunction(listener)) { + listener.apply(this, arguments); + } + unwatch(); + }, objectEquality); + } + + function addInterceptor(parsedExpression, interceptorFn) { + if (!interceptorFn) return parsedExpression; + var watchDelegate = parsedExpression.$$watchDelegate; + + var regularWatch = + watchDelegate !== oneTimeLiteralWatchDelegate && + watchDelegate !== oneTimeWatchDelegate; + + var fn = regularWatch ? function regularInterceptedExpression(scope, locals, assign, inputs) { + var value = parsedExpression(scope, locals, assign, inputs); + return interceptorFn(value, scope, locals); + } : function oneTimeInterceptedExpression(scope, locals, assign, inputs) { + var value = parsedExpression(scope, locals, assign, inputs); + var result = interceptorFn(value, scope, locals); + // we only return the interceptor's result if the + // initial value is defined (for bind-once) + return isDefined(value) ? result : value; + }; + + // Propagate $$watchDelegates other then inputsWatchDelegate + if (parsedExpression.$$watchDelegate && + parsedExpression.$$watchDelegate !== inputsWatchDelegate) { + fn.$$watchDelegate = parsedExpression.$$watchDelegate; + } else if (!interceptorFn.$stateful) { + // If there is an interceptor, but no watchDelegate then treat the interceptor like + // we treat filters - it is assumed to be a pure function unless flagged with $stateful + fn.$$watchDelegate = inputsWatchDelegate; + fn.inputs = parsedExpression.inputs ? parsedExpression.inputs : [parsedExpression]; + } + + return fn; + } }]; } @@ -11317,7 +14256,54 @@ function $ParseProvider() { * @requires $rootScope * * @description - * A promise/deferred implementation inspired by [Kris Kowal's Q](https://github.com/kriskowal/q). + * A service that helps you run functions asynchronously, and use their return values (or exceptions) + * when they are done processing. + * + * This is an implementation of promises/deferred objects inspired by + * [Kris Kowal's Q](https://github.com/kriskowal/q). + * + * $q can be used in two fashions --- one which is more similar to Kris Kowal's Q or jQuery's Deferred + * implementations, and the other which resembles ES6 promises to some degree. + * + * # $q constructor + * + * The streamlined ES6 style promise is essentially just using $q as a constructor which takes a `resolver` + * function as the first argument. This is similar to the native Promise implementation from ES6 Harmony, + * see [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise). + * + * While the constructor-style use is supported, not all of the supporting methods from ES6 Harmony promises are + * available yet. + * + * It can be used like so: + * + * ```js + * // for the purpose of this example let's assume that variables `$q` and `okToGreet` + * // are available in the current lexical scope (they could have been injected or passed in). + * + * function asyncGreet(name) { + * // perform some asynchronous operation, resolve or reject the promise when appropriate. + * return $q(function(resolve, reject) { + * setTimeout(function() { + * if (okToGreet(name)) { + * resolve('Hello, ' + name + '!'); + * } else { + * reject('Greeting ' + name + ' is not allowed.'); + * } + * }, 1000); + * }); + * } + * + * var promise = asyncGreet('Robin Hood'); + * promise.then(function(greeting) { + * alert('Success: ' + greeting); + * }, function(reason) { + * alert('Failed: ' + reason); + * }); + * ``` + * + * Note: progress/notify callbacks are not currently supported via the ES6-style interface. + * + * However, the more traditional CommonJS-style usage is still available, and documented below. * * [The CommonJS Promise proposal](http://wiki.commonjs.org/wiki/Promises) describes a promise as an * interface for interacting with an object that represents the result of an action that is @@ -11327,7 +14313,7 @@ function $ParseProvider() { * asynchronous programming what `try`, `catch` and `throw` keywords are to synchronous programming. * * ```js - * // for the purpose of this example let's assume that variables `$q`, `scope` and `okToGreet` + * // for the purpose of this example let's assume that variables `$q` and `okToGreet` * // are available in the current lexical scope (they could have been injected or passed in). * * function asyncGreet(name) { @@ -11365,7 +14351,6 @@ function $ParseProvider() { * For more on this please see the [Q documentation](https://github.com/kriskowal/q) especially the * section on serial or parallel joining of promises. * - * * # The Deferred API * * A new instance of deferred is constructed by calling `$q.defer()`. @@ -11405,22 +14390,20 @@ function $ParseProvider() { * provide a progress indication, before the promise is resolved or rejected. * * This method *returns a new promise* which is resolved or rejected via the return value of the - * `successCallback`, `errorCallback`. It also notifies via the return value of the - * `notifyCallback` method. The promise can not be resolved or rejected from the notifyCallback - * method. + * `successCallback`, `errorCallback` (unless that value is a promise, in which case it is resolved + * with the value which is resolved in that promise using + * [promise chaining](http://www.html5rocks.com/en/tutorials/es6/promises/#toc-promises-queues)). + * It also notifies via the return value of the `notifyCallback` method. The promise cannot be + * resolved or rejected from the notifyCallback method. * * - `catch(errorCallback)` – shorthand for `promise.then(null, errorCallback)` * - * - `finally(callback)` – allows you to observe either the fulfillment or rejection of a promise, + * - `finally(callback, notifyCallback)` – allows you to observe either the fulfillment or rejection of a promise, * but to do so without modifying the final value. This is useful to release resources or do some * clean-up that needs to be done whether the promise was rejected or resolved. See the [full * specification](https://github.com/kriskowal/q/wiki/API-Reference#promisefinallycallback) for * more information. * - * Because `finally` is a reserved word in JavaScript and reserved keywords are not supported as - * property names by ES3, you'll need to invoke the method like `promise['finally'](callback)` to - * make your code IE8 and Android 2.x compatible. - * * # Chaining promises * * Because calling the `then` method of a promise returns a new derived promise, it is easily @@ -11474,6 +14457,12 @@ function $ParseProvider() { * expect(resolvedValue).toEqual(123); * })); * ``` + * + * @param {function(function, function)} resolver Function which is responsible for resolving or + * rejecting the newly created promise. The first parameter is a function which resolves the + * promise, the second parameter is a function which rejects the promise. + * + * @returns {Promise} The newly created promise. */ function $QProvider() { @@ -11484,20 +14473,40 @@ function $QProvider() { }]; } +function $$QProvider() { + this.$get = ['$browser', '$exceptionHandler', function($browser, $exceptionHandler) { + return qFactory(function(callback) { + $browser.defer(callback); + }, $exceptionHandler); + }]; +} /** * Constructs a promise manager. * - * @param {function(Function)} nextTick Function for executing functions in the next turn. + * @param {function(function)} nextTick Function for executing functions in the next turn. * @param {function(...*)} exceptionHandler Function into which unexpected exceptions are passed for * debugging purposes. * @returns {object} Promise manager. */ function qFactory(nextTick, exceptionHandler) { + var $qMinErr = minErr('$q', TypeError); + function callOnce(self, resolveFn, rejectFn) { + var called = false; + function wrap(fn) { + return function(value) { + if (called) return; + called = true; + fn.call(self, value); + }; + } + + return [wrap(resolveFn), wrap(rejectFn)]; + } /** * @ngdoc method - * @name $q#defer + * @name ng.$q#defer * @kind function * * @description @@ -11506,152 +14515,147 @@ function qFactory(nextTick, exceptionHandler) { * @returns {Deferred} Returns a new instance of deferred. */ var defer = function() { - var pending = [], - value, deferred; - - deferred = { - - resolve: function(val) { - if (pending) { - var callbacks = pending; - pending = undefined; - value = ref(val); - - if (callbacks.length) { - nextTick(function() { - var callback; - for (var i = 0, ii = callbacks.length; i < ii; i++) { - callback = callbacks[i]; - value.then(callback[0], callback[1], callback[2]); - } - }); - } - } - }, - - - reject: function(reason) { - deferred.resolve(createInternalRejectedPromise(reason)); - }, - - - notify: function(progress) { - if (pending) { - var callbacks = pending; - - if (pending.length) { - nextTick(function() { - var callback; - for (var i = 0, ii = callbacks.length; i < ii; i++) { - callback = callbacks[i]; - callback[2](progress); - } - }); - } - } - }, - - - promise: { - then: function(callback, errback, progressback) { - var result = defer(); - - var wrappedCallback = function(value) { - try { - result.resolve((isFunction(callback) ? callback : defaultCallback)(value)); - } catch(e) { - result.reject(e); - exceptionHandler(e); - } - }; - - var wrappedErrback = function(reason) { - try { - result.resolve((isFunction(errback) ? errback : defaultErrback)(reason)); - } catch(e) { - result.reject(e); - exceptionHandler(e); - } - }; - - var wrappedProgressback = function(progress) { - try { - result.notify((isFunction(progressback) ? progressback : defaultCallback)(progress)); - } catch(e) { - exceptionHandler(e); - } - }; - - if (pending) { - pending.push([wrappedCallback, wrappedErrback, wrappedProgressback]); - } else { - value.then(wrappedCallback, wrappedErrback, wrappedProgressback); - } - - return result.promise; - }, - - "catch": function(callback) { - return this.then(null, callback); - }, - - "finally": function(callback) { - - function makePromise(value, resolved) { - var result = defer(); - if (resolved) { - result.resolve(value); - } else { - result.reject(value); - } - return result.promise; - } - - function handleCallback(value, isResolved) { - var callbackOutput = null; - try { - callbackOutput = (callback ||defaultCallback)(); - } catch(e) { - return makePromise(e, false); - } - if (isPromiseLike(callbackOutput)) { - return callbackOutput.then(function() { - return makePromise(value, isResolved); - }, function(error) { - return makePromise(error, false); - }); - } else { - return makePromise(value, isResolved); - } - } - - return this.then(function(value) { - return handleCallback(value, true); - }, function(error) { - return handleCallback(error, false); - }); - } - } - }; - - return deferred; + return new Deferred(); }; + function Promise() { + this.$$state = { status: 0 }; + } - var ref = function(value) { - if (isPromiseLike(value)) return value; - return { - then: function(callback) { - var result = defer(); + Promise.prototype = { + then: function(onFulfilled, onRejected, progressBack) { + var result = new Deferred(); + + this.$$state.pending = this.$$state.pending || []; + this.$$state.pending.push([result, onFulfilled, onRejected, progressBack]); + if (this.$$state.status > 0) scheduleProcessQueue(this.$$state); + + return result.promise; + }, + + "catch": function(callback) { + return this.then(null, callback); + }, + + "finally": function(callback, progressBack) { + return this.then(function(value) { + return handleCallback(value, true, callback); + }, function(error) { + return handleCallback(error, false, callback); + }, progressBack); + } + }; + + //Faster, more basic than angular.bind http://jsperf.com/angular-bind-vs-custom-vs-native + function simpleBind(context, fn) { + return function(value) { + fn.call(context, value); + }; + } + + function processQueue(state) { + var fn, deferred, pending; + + pending = state.pending; + state.processScheduled = false; + state.pending = undefined; + for (var i = 0, ii = pending.length; i < ii; ++i) { + deferred = pending[i][0]; + fn = pending[i][state.status]; + try { + if (isFunction(fn)) { + deferred.resolve(fn(state.value)); + } else if (state.status === 1) { + deferred.resolve(state.value); + } else { + deferred.reject(state.value); + } + } catch (e) { + deferred.reject(e); + exceptionHandler(e); + } + } + } + + function scheduleProcessQueue(state) { + if (state.processScheduled || !state.pending) return; + state.processScheduled = true; + nextTick(function() { processQueue(state); }); + } + + function Deferred() { + this.promise = new Promise(); + //Necessary to support unbound execution :/ + this.resolve = simpleBind(this, this.resolve); + this.reject = simpleBind(this, this.reject); + this.notify = simpleBind(this, this.notify); + } + + Deferred.prototype = { + resolve: function(val) { + if (this.promise.$$state.status) return; + if (val === this.promise) { + this.$$reject($qMinErr( + 'qcycle', + "Expected promise to be resolved with value other than itself '{0}'", + val)); + } else { + this.$$resolve(val); + } + + }, + + $$resolve: function(val) { + var then, fns; + + fns = callOnce(this, this.$$resolve, this.$$reject); + try { + if ((isObject(val) || isFunction(val))) then = val && val.then; + if (isFunction(then)) { + this.promise.$$state.status = -1; + then.call(val, fns[0], fns[1], this.notify); + } else { + this.promise.$$state.value = val; + this.promise.$$state.status = 1; + scheduleProcessQueue(this.promise.$$state); + } + } catch (e) { + fns[1](e); + exceptionHandler(e); + } + }, + + reject: function(reason) { + if (this.promise.$$state.status) return; + this.$$reject(reason); + }, + + $$reject: function(reason) { + this.promise.$$state.value = reason; + this.promise.$$state.status = 2; + scheduleProcessQueue(this.promise.$$state); + }, + + notify: function(progress) { + var callbacks = this.promise.$$state.pending; + + if ((this.promise.$$state.status <= 0) && callbacks && callbacks.length) { nextTick(function() { - result.resolve(callback(value)); + var callback, result; + for (var i = 0, ii = callbacks.length; i < ii; i++) { + result = callbacks[i][0]; + callback = callbacks[i][3]; + try { + result.notify(isFunction(callback) ? callback(progress) : progress); + } catch (e) { + exceptionHandler(e); + } + } }); - return result.promise; } - }; + } }; - /** * @ngdoc method * @name $q#reject @@ -11689,28 +14693,38 @@ function qFactory(nextTick, exceptionHandler) { * @returns {Promise} Returns a promise that was already resolved as rejected with the `reason`. */ var reject = function(reason) { - var result = defer(); + var result = new Deferred(); result.reject(reason); return result.promise; }; - var createInternalRejectedPromise = function(reason) { - return { - then: function(callback, errback) { - var result = defer(); - nextTick(function() { - try { - result.resolve((isFunction(errback) ? errback : defaultErrback)(reason)); - } catch(e) { - result.reject(e); - exceptionHandler(e); - } - }); - return result.promise; - } - }; + var makePromise = function makePromise(value, resolved) { + var result = new Deferred(); + if (resolved) { + result.resolve(value); + } else { + result.reject(value); + } + return result.promise; }; + var handleCallback = function handleCallback(value, isResolved, callback) { + var callbackOutput = null; + try { + if (isFunction(callback)) callbackOutput = callback(); + } catch (e) { + return makePromise(e, false); + } + if (isPromiseLike(callbackOutput)) { + return callbackOutput.then(function() { + return makePromise(value, isResolved); + }, function(error) { + return makePromise(error, false); + }); + } else { + return makePromise(value, isResolved); + } + }; /** * @ngdoc method @@ -11725,64 +14739,26 @@ function qFactory(nextTick, exceptionHandler) { * @param {*} value Value or a promise * @returns {Promise} Returns a promise of the passed value or promise */ - var when = function(value, callback, errback, progressback) { - var result = defer(), - done; - var wrappedCallback = function(value) { - try { - return (isFunction(callback) ? callback : defaultCallback)(value); - } catch (e) { - exceptionHandler(e); - return reject(e); - } - }; - var wrappedErrback = function(reason) { - try { - return (isFunction(errback) ? errback : defaultErrback)(reason); - } catch (e) { - exceptionHandler(e); - return reject(e); - } - }; - - var wrappedProgressback = function(progress) { - try { - return (isFunction(progressback) ? progressback : defaultCallback)(progress); - } catch (e) { - exceptionHandler(e); - } - }; - - nextTick(function() { - ref(value).then(function(value) { - if (done) return; - done = true; - result.resolve(ref(value).then(wrappedCallback, wrappedErrback, wrappedProgressback)); - }, function(reason) { - if (done) return; - done = true; - result.resolve(wrappedErrback(reason)); - }, function(progress) { - if (done) return; - result.notify(wrappedProgressback(progress)); - }); - }); - - return result.promise; + var when = function(value, callback, errback, progressBack) { + var result = new Deferred(); + result.resolve(value); + return result.promise.then(callback, errback, progressBack); }; - - function defaultCallback(value) { - return value; - } - - - function defaultErrback(reason) { - return reject(reason); - } - + /** + * @ngdoc method + * @name $q#resolve + * @kind function + * + * @description + * Alias of {@link ng.$q#when when} to maintain naming consistency with ES6. + * + * @param {*} value Value or a promise + * @returns {Promise} Returns a promise of the passed value or promise + */ + var resolve = when; /** * @ngdoc method @@ -11799,14 +14775,15 @@ function qFactory(nextTick, exceptionHandler) { * If any of the promises is resolved with a rejection, this resulting promise will be rejected * with the same rejection value. */ + function all(promises) { - var deferred = defer(), + var deferred = new Deferred(), counter = 0, results = isArray(promises) ? [] : {}; forEach(promises, function(promise, key) { counter++; - ref(promise).then(function(value) { + when(promise).then(function(value) { if (results.hasOwnProperty(key)) return; results[key] = value; if (!(--counter)) deferred.resolve(results); @@ -11823,27 +14800,51 @@ function qFactory(nextTick, exceptionHandler) { return deferred.promise; } - return { - defer: defer, - reject: reject, - when: when, - all: all + var $Q = function Q(resolver) { + if (!isFunction(resolver)) { + throw $qMinErr('norslvr', "Expected resolverFn, got '{0}'", resolver); + } + + if (!(this instanceof Q)) { + // More useful when $Q is the Promise itself. + return new Q(resolver); + } + + var deferred = new Deferred(); + + function resolveFn(value) { + deferred.resolve(value); + } + + function rejectFn(reason) { + deferred.reject(reason); + } + + resolver(resolveFn, rejectFn); + + return deferred.promise; }; + + $Q.defer = defer; + $Q.reject = reject; + $Q.when = when; + $Q.resolve = resolve; + $Q.all = all; + + return $Q; } -function $$RAFProvider(){ //rAF +function $$RAFProvider() { //rAF this.$get = ['$window', '$timeout', function($window, $timeout) { var requestAnimationFrame = $window.requestAnimationFrame || - $window.webkitRequestAnimationFrame || - $window.mozRequestAnimationFrame; + $window.webkitRequestAnimationFrame; var cancelAnimationFrame = $window.cancelAnimationFrame || $window.webkitCancelAnimationFrame || - $window.mozCancelAnimationFrame || $window.webkitCancelRequestAnimationFrame; var rafSupported = !!requestAnimationFrame; - var raf = rafSupported + var rafFn = rafSupported ? function(fn) { var id = requestAnimationFrame(fn); return function() { @@ -11857,9 +14858,47 @@ function $$RAFProvider(){ //rAF }; }; - raf.supported = rafSupported; + queueFn.supported = rafSupported; - return raf; + var cancelLastRAF; + var taskCount = 0; + var taskQueue = []; + return queueFn; + + function flush() { + for (var i = 0; i < taskQueue.length; i++) { + var task = taskQueue[i]; + if (task) { + taskQueue[i] = null; + task(); + } + } + taskCount = taskQueue.length = 0; + } + + function queueFn(asyncFn) { + var index = taskQueue.length; + + taskCount++; + taskQueue.push(asyncFn); + + if (index === 0) { + cancelLastRAF = rafFn(flush); + } + + return function cancelQueueFn() { + if (index >= 0) { + taskQueue[index] = null; + index = null; + + if (--taskCount === 0 && cancelLastRAF) { + cancelLastRAF(); + cancelLastRAF = null; + taskQueue.length = 0; + } + } + }; + } }]; } @@ -11930,10 +14969,11 @@ function $$RAFProvider(){ //rAF * They also provide an event emission/broadcast and subscription facility. See the * {@link guide/scope developer guide on scopes}. */ -function $RootScopeProvider(){ +function $RootScopeProvider() { var TTL = 10; var $rootScopeMinErr = minErr('$rootScope'); var lastDirtyWatch = null; + var applyAsyncId = null; this.digestTtl = function(value) { if (arguments.length) { @@ -11942,8 +14982,26 @@ function $RootScopeProvider(){ return TTL; }; + function createChildScopeClass(parent) { + function ChildScope() { + this.$$watchers = this.$$nextSibling = + this.$$childHead = this.$$childTail = null; + this.$$listeners = {}; + this.$$listenerCount = {}; + this.$$watchersCount = 0; + this.$id = nextUid(); + this.$$ChildScope = null; + } + ChildScope.prototype = parent; + return ChildScope; + } + this.$get = ['$injector', '$exceptionHandler', '$parse', '$browser', - function( $injector, $exceptionHandler, $parse, $browser) { + function($injector, $exceptionHandler, $parse, $browser) { + + function destroyChildScope($event) { + $event.currentScope.$$destroyed = true; + } /** * @ngdoc type @@ -11967,7 +15025,6 @@ function $RootScopeProvider(){ var child = parent.$new(); parent.salutation = "Hello"; - child.name = "World"; expect(child.salutation).toEqual('Hello'); child.salutation = "Welcome"; @@ -11975,6 +15032,10 @@ function $RootScopeProvider(){ expect(parent.salutation).toEqual('Hello'); * ``` * + * When interacting with `Scope` in tests, additional helper methods are available on the + * instances of `Scope` type. See {@link ngMock.$rootScope.Scope ngMock Scope} for additional + * details. + * * * @param {Object.=} providers Map of service factory which need to be * provided for the current scope. Defaults to {@link ng}. @@ -11990,22 +15051,37 @@ function $RootScopeProvider(){ this.$$phase = this.$parent = this.$$watchers = this.$$nextSibling = this.$$prevSibling = this.$$childHead = this.$$childTail = null; - this['this'] = this.$root = this; + this.$root = this; this.$$destroyed = false; - this.$$asyncQueue = []; - this.$$postDigestQueue = []; this.$$listeners = {}; this.$$listenerCount = {}; - this.$$isolateBindings = {}; + this.$$watchersCount = 0; + this.$$isolateBindings = null; } /** * @ngdoc property * @name $rootScope.Scope#$id - * @returns {number} Unique scope ID (monotonically increasing alphanumeric sequence) useful for - * debugging. + * + * @description + * Unique scope ID (monotonically increasing) useful for debugging. */ + /** + * @ngdoc property + * @name $rootScope.Scope#$parent + * + * @description + * Reference to the parent scope. + */ + + /** + * @ngdoc property + * @name $rootScope.Scope#$root + * + * @description + * Reference to the root scope. + */ Scope.prototype = { constructor: Scope, @@ -12017,9 +15093,8 @@ function $RootScopeProvider(){ * @description * Creates a new child {@link ng.$rootScope.Scope scope}. * - * The parent scope will propagate the {@link ng.$rootScope.Scope#$digest $digest()} and - * {@link ng.$rootScope.Scope#$digest $digest()} events. The scope can be removed from the - * scope hierarchy using {@link ng.$rootScope.Scope#$destroy $destroy()}. + * The parent scope will propagate the {@link ng.$rootScope.Scope#$digest $digest()} event. + * The scope can be removed from the scope hierarchy using {@link ng.$rootScope.Scope#$destroy $destroy()}. * * {@link ng.$rootScope.Scope#$destroy $destroy()} must be called on a scope when it is * desired for the scope and its child scopes to be permanently detached from the parent and @@ -12030,44 +15105,47 @@ function $RootScopeProvider(){ * When creating widgets, it is useful for the widget to not accidentally read parent * state. * + * @param {Scope} [parent=this] The {@link ng.$rootScope.Scope `Scope`} that will be the `$parent` + * of the newly created scope. Defaults to `this` scope if not provided. + * This is used when creating a transclude scope to correctly place it + * in the scope hierarchy while maintaining the correct prototypical + * inheritance. + * * @returns {Object} The newly created child scope. * */ - $new: function(isolate) { - var ChildScope, - child; + $new: function(isolate, parent) { + var child; + + parent = parent || this; if (isolate) { child = new Scope(); child.$root = this.$root; - // ensure that there is just one async queue per $rootScope and its children - child.$$asyncQueue = this.$$asyncQueue; - child.$$postDigestQueue = this.$$postDigestQueue; } else { // Only create a child scope class if somebody asks for one, // but cache it to allow the VM to optimize lookups. - if (!this.$$childScopeClass) { - this.$$childScopeClass = function() { - this.$$watchers = this.$$nextSibling = - this.$$childHead = this.$$childTail = null; - this.$$listeners = {}; - this.$$listenerCount = {}; - this.$id = nextUid(); - this.$$childScopeClass = null; - }; - this.$$childScopeClass.prototype = this; + if (!this.$$ChildScope) { + this.$$ChildScope = createChildScopeClass(this); } - child = new this.$$childScopeClass(); + child = new this.$$ChildScope(); } - child['this'] = child; - child.$parent = this; - child.$$prevSibling = this.$$childTail; - if (this.$$childHead) { - this.$$childTail.$$nextSibling = child; - this.$$childTail = child; + child.$parent = parent; + child.$$prevSibling = parent.$$childTail; + if (parent.$$childHead) { + parent.$$childTail.$$nextSibling = child; + parent.$$childTail = child; } else { - this.$$childHead = this.$$childTail = child; + parent.$$childHead = parent.$$childTail = child; } + + // When the new scope is not isolated or we inherit from `this`, and + // the parent scope is destroyed, the property `$$destroyed` is inherited + // prototypically. In all other cases, this property needs to be set + // when the parent scope is destroyed. + // The listener needs to be added after the parent is set + if (isolate || parent != this) child.$on('$destroy', destroyChildScope); + return child; }, @@ -12111,7 +15189,6 @@ function $RootScopeProvider(){ * can compare the `newVal` and `oldVal`. If these two values are identical (`===`) then the * listener was called due to initialization. * - * The example below contains an illustration of using a function as your $watch listener * * * # Example @@ -12141,14 +15218,14 @@ function $RootScopeProvider(){ - // Using a listener function + // Using a function as a watchExpression var food; scope.foodCounter = 0; expect(scope.foodCounter).toEqual(0); scope.$watch( - // This is the listener function + // This function returns the value being watched. It is called for each turn of the $digest loop function() { return food; }, - // This is the change handler + // This is the change listener, called when the value returned from the above function changes function(newValue, oldValue) { if ( newValue !== oldValue ) { // Only increment the counter if the value changed @@ -12178,43 +15255,36 @@ function $RootScopeProvider(){ * * - `string`: Evaluated as {@link guide/expression expression} * - `function(scope)`: called with current `scope` as a parameter. - * @param {(function()|string)=} listener Callback called whenever the return value of - * the `watchExpression` changes. - * - * - `string`: Evaluated as {@link guide/expression expression} - * - `function(newValue, oldValue, scope)`: called with current and previous values as - * parameters. + * @param {function(newVal, oldVal, scope)} listener Callback called whenever the value + * of `watchExpression` changes. * + * - `newVal` contains the current value of the `watchExpression` + * - `oldVal` contains the previous value of the `watchExpression` + * - `scope` refers to the current scope * @param {boolean=} objectEquality Compare for object equality using {@link angular.equals} instead of * comparing for reference equality. * @returns {function()} Returns a deregistration function for this listener. */ - $watch: function(watchExp, listener, objectEquality) { + $watch: function(watchExp, listener, objectEquality, prettyPrintExpression) { + var get = $parse(watchExp); + + if (get.$$watchDelegate) { + return get.$$watchDelegate(this, listener, objectEquality, get, watchExp); + } var scope = this, - get = compileToFn(watchExp, 'watch'), array = scope.$$watchers, watcher = { fn: listener, last: initWatchVal, get: get, - exp: watchExp, + exp: prettyPrintExpression || watchExp, eq: !!objectEquality }; lastDirtyWatch = null; - // in the case user pass string, we need to compile it, do we really need this ? if (!isFunction(listener)) { - var listenFn = compileToFn(listener || noop, 'listener'); - watcher.fn = function(newVal, oldVal, scope) {listenFn(scope);}; - } - - if (typeof watchExp == 'string' && get.constant) { - var originalFn = watcher.fn; - watcher.fn = function(newVal, oldVal, scope) { - originalFn.call(this, newVal, oldVal, scope); - arrayRemove(array, watcher); - }; + watcher.fn = noop; } if (!array) { @@ -12223,13 +15293,99 @@ function $RootScopeProvider(){ // we use unshift since we use a while loop in $digest for speed. // the while loop reads in reverse order. array.unshift(watcher); + incrementWatchersCount(this, 1); return function deregisterWatch() { - arrayRemove(array, watcher); + if (arrayRemove(array, watcher) >= 0) { + incrementWatchersCount(scope, -1); + } lastDirtyWatch = null; }; }, + /** + * @ngdoc method + * @name $rootScope.Scope#$watchGroup + * @kind function + * + * @description + * A variant of {@link ng.$rootScope.Scope#$watch $watch()} where it watches an array of `watchExpressions`. + * If any one expression in the collection changes the `listener` is executed. + * + * - The items in the `watchExpressions` array are observed via standard $watch operation and are examined on every + * call to $digest() to see if any items changes. + * - The `listener` is called whenever any expression in the `watchExpressions` array changes. + * + * @param {Array.} watchExpressions Array of expressions that will be individually + * watched using {@link ng.$rootScope.Scope#$watch $watch()} + * + * @param {function(newValues, oldValues, scope)} listener Callback called whenever the return value of any + * expression in `watchExpressions` changes + * The `newValues` array contains the current values of the `watchExpressions`, with the indexes matching + * those of `watchExpression` + * and the `oldValues` array contains the previous values of the `watchExpressions`, with the indexes matching + * those of `watchExpression` + * The `scope` refers to the current scope. + * @returns {function()} Returns a de-registration function for all listeners. + */ + $watchGroup: function(watchExpressions, listener) { + var oldValues = new Array(watchExpressions.length); + var newValues = new Array(watchExpressions.length); + var deregisterFns = []; + var self = this; + var changeReactionScheduled = false; + var firstRun = true; + + if (!watchExpressions.length) { + // No expressions means we call the listener ASAP + var shouldCall = true; + self.$evalAsync(function() { + if (shouldCall) listener(newValues, newValues, self); + }); + return function deregisterWatchGroup() { + shouldCall = false; + }; + } + + if (watchExpressions.length === 1) { + // Special case size of one + return this.$watch(watchExpressions[0], function watchGroupAction(value, oldValue, scope) { + newValues[0] = value; + oldValues[0] = oldValue; + listener(newValues, (value === oldValue) ? newValues : oldValues, scope); + }); + } + + forEach(watchExpressions, function(expr, i) { + var unwatchFn = self.$watch(expr, function watchGroupSubAction(value, oldValue) { + newValues[i] = value; + oldValues[i] = oldValue; + if (!changeReactionScheduled) { + changeReactionScheduled = true; + self.$evalAsync(watchGroupAction); + } + }); + deregisterFns.push(unwatchFn); + }); + + function watchGroupAction() { + changeReactionScheduled = false; + + if (firstRun) { + firstRun = false; + listener(newValues, newValues, self); + } else { + listener(newValues, oldValues, self); + } + } + + return function deregisterWatchGroup() { + while (deregisterFns.length) { + deregisterFns.shift()(); + } + }; + }, + /** * @ngdoc method @@ -12287,6 +15443,8 @@ function $RootScopeProvider(){ * de-registration function is executed, the internal watch operation is terminated. */ $watchCollection: function(obj, listener) { + $watchCollectionInterceptor.$stateful = true; + var self = this; // the current value, updated on each dirty-check run var newValue; @@ -12298,15 +15456,18 @@ function $RootScopeProvider(){ // only track veryOldValue if the listener is asking for it var trackVeryOldValue = (listener.length > 1); var changeDetected = 0; - var objGetter = $parse(obj); + var changeDetector = $parse(obj, $watchCollectionInterceptor); var internalArray = []; var internalObject = {}; var initRun = true; var oldLength = 0; - function $watchCollectionWatch() { - newValue = objGetter(self); - var newLength, key, bothNaN; + function $watchCollectionInterceptor(_value) { + newValue = _value; + var newLength, key, bothNaN, newItem, oldItem; + + // If the new value is undefined, then return undefined as the watch may be a one-time watch + if (isUndefined(newValue)) return; if (!isObject(newValue)) { // if primitive if (oldValue !== newValue) { @@ -12330,11 +15491,13 @@ function $RootScopeProvider(){ } // copy the items to oldValue and look for changes. for (var i = 0; i < newLength; i++) { - bothNaN = (oldValue[i] !== oldValue[i]) && - (newValue[i] !== newValue[i]); - if (!bothNaN && (oldValue[i] !== newValue[i])) { + oldItem = oldValue[i]; + newItem = newValue[i]; + + bothNaN = (oldItem !== oldItem) && (newItem !== newItem); + if (!bothNaN && (oldItem !== newItem)) { changeDetected++; - oldValue[i] = newValue[i]; + oldValue[i] = newItem; } } } else { @@ -12349,16 +15512,18 @@ function $RootScopeProvider(){ for (key in newValue) { if (newValue.hasOwnProperty(key)) { newLength++; - if (oldValue.hasOwnProperty(key)) { - bothNaN = (oldValue[key] !== oldValue[key]) && - (newValue[key] !== newValue[key]); - if (!bothNaN && (oldValue[key] !== newValue[key])) { + newItem = newValue[key]; + oldItem = oldValue[key]; + + if (key in oldValue) { + bothNaN = (oldItem !== oldItem) && (newItem !== newItem); + if (!bothNaN && (oldItem !== newItem)) { changeDetected++; - oldValue[key] = newValue[key]; + oldValue[key] = newItem; } } else { oldLength++; - oldValue[key] = newValue[key]; + oldValue[key] = newItem; changeDetected++; } } @@ -12366,8 +15531,8 @@ function $RootScopeProvider(){ if (oldLength > newLength) { // we used to have more keys, need to find them and destroy them. changeDetected++; - for(key in oldValue) { - if (oldValue.hasOwnProperty(key) && !newValue.hasOwnProperty(key)) { + for (key in oldValue) { + if (!newValue.hasOwnProperty(key)) { oldLength--; delete oldValue[key]; } @@ -12406,7 +15571,7 @@ function $RootScopeProvider(){ } } - return this.$watch($watchCollectionWatch, $watchCollectionAction); + return this.$watch(changeDetector, $watchCollectionAction); }, /** @@ -12426,7 +15591,7 @@ function $RootScopeProvider(){ * {@link ng.directive:ngController controllers} or in * {@link ng.$compileProvider#directive directives}. * Instead, you should call {@link ng.$rootScope.Scope#$apply $apply()} (typically from within - * a {@link ng.$compileProvider#directive directives}), which will force a `$digest()`. + * a {@link ng.$compileProvider#directive directive}), which will force a `$digest()`. * * If you want to be notified whenever `$digest()` is called, * you can register a `watchExpression` function with @@ -12463,8 +15628,6 @@ function $RootScopeProvider(){ $digest: function() { var watch, value, last, watchers, - asyncQueue = this.$$asyncQueue, - postDigestQueue = this.$$postDigestQueue, length, dirty, ttl = TTL, next, current, target = this, @@ -12472,6 +15635,15 @@ function $RootScopeProvider(){ logIdx, logMsg, asyncTask; beginPhase('$digest'); + // Check for changes to browser url that happened in sync before the call to $digest + $browser.$$checkUrlChange(); + + if (this === $rootScope && applyAsyncId !== null) { + // If this is the root scope, and $applyAsync has scheduled a deferred $apply(), then + // cancel the scheduled $apply and flush the queue of expressions to be evaluated. + $browser.defer.cancel(applyAsyncId); + flushApplyAsync(); + } lastDirtyWatch = null; @@ -12479,12 +15651,11 @@ function $RootScopeProvider(){ dirty = false; current = target; - while(asyncQueue.length) { + while (asyncQueue.length) { try { asyncTask = asyncQueue.shift(); - asyncTask.scope.$eval(asyncTask.expression); + asyncTask.scope.$eval(asyncTask.expression, asyncTask.locals); } catch (e) { - clearPhase(); $exceptionHandler(e); } lastDirtyWatch = null; @@ -12513,11 +15684,11 @@ function $RootScopeProvider(){ if (ttl < 5) { logIdx = 4 - ttl; if (!watchLog[logIdx]) watchLog[logIdx] = []; - logMsg = (isFunction(watch.exp)) - ? 'fn: ' + (watch.exp.name || watch.exp.toString()) - : watch.exp; - logMsg += '; newVal: ' + toJson(value) + '; oldVal: ' + toJson(last); - watchLog[logIdx].push(logMsg); + watchLog[logIdx].push({ + msg: isFunction(watch.exp) ? 'fn: ' + (watch.exp.name || watch.exp.toString()) : watch.exp, + newVal: value, + oldVal: last + }); } } else if (watch === lastDirtyWatch) { // If the most recently dirty watcher is now clean, short circuit since the remaining watchers @@ -12527,7 +15698,6 @@ function $RootScopeProvider(){ } } } catch (e) { - clearPhase(); $exceptionHandler(e); } } @@ -12536,9 +15706,9 @@ function $RootScopeProvider(){ // Insanity Warning: scope depth-first traversal // yes, this code is a bit crazy, but it works and we have tests to prove it! // this piece should be kept in sync with the traversal in $broadcast - if (!(next = (current.$$childHead || + if (!(next = ((current.$$watchersCount && current.$$childHead) || (current !== target && current.$$nextSibling)))) { - while(current !== target && !(next = current.$$nextSibling)) { + while (current !== target && !(next = current.$$nextSibling)) { current = current.$parent; } } @@ -12546,19 +15716,19 @@ function $RootScopeProvider(){ // `break traverseScopesLoop;` takes us to here - if((dirty || asyncQueue.length) && !(ttl--)) { + if ((dirty || asyncQueue.length) && !(ttl--)) { clearPhase(); throw $rootScopeMinErr('infdig', '{0} $digest() iterations reached. Aborting!\n' + 'Watchers fired in the last 5 iterations: {1}', - TTL, toJson(watchLog)); + TTL, watchLog); } } while (dirty || asyncQueue.length); clearPhase(); - while(postDigestQueue.length) { + while (postDigestQueue.length) { try { postDigestQueue.shift()(); } catch (e) { @@ -12603,23 +15773,34 @@ function $RootScopeProvider(){ * clean up DOM bindings before an element is removed from the DOM. */ $destroy: function() { - // we can't destroy the root scope or a scope that has been already destroyed + // We can't destroy a scope that has been already destroyed. if (this.$$destroyed) return; var parent = this.$parent; this.$broadcast('$destroy'); this.$$destroyed = true; - if (this === $rootScope) return; - forEach(this.$$listenerCount, bind(null, decrementListenerCount, this)); + if (this === $rootScope) { + //Remove handlers attached to window when $rootScope is removed + $browser.$$applicationDestroyed(); + } + + incrementWatchersCount(this, -this.$$watchersCount); + for (var eventName in this.$$listenerCount) { + decrementListenerCount(this, this.$$listenerCount[eventName], eventName); + } // sever all the references to parent scopes (after this cleanup, the current scope should // not be retained by any of our references and should be eligible for garbage collection) - if (parent.$$childHead == this) parent.$$childHead = this.$$nextSibling; - if (parent.$$childTail == this) parent.$$childTail = this.$$prevSibling; + if (parent && parent.$$childHead == this) parent.$$childHead = this.$$nextSibling; + if (parent && parent.$$childTail == this) parent.$$childTail = this.$$prevSibling; if (this.$$prevSibling) this.$$prevSibling.$$nextSibling = this.$$nextSibling; if (this.$$nextSibling) this.$$nextSibling.$$prevSibling = this.$$prevSibling; + // Disable listeners, watchers and apply/digest methods + this.$destroy = this.$digest = this.$apply = this.$evalAsync = this.$applyAsync = noop; + this.$on = this.$watch = this.$watchGroup = function() { return noop; }; + this.$$listeners = {}; // All of the code below is bogus code that works around V8's memory leak via optimized code // and inline caches. @@ -12630,15 +15811,7 @@ function $RootScopeProvider(){ // - https://github.com/angular/angular.js/issues/1313#issuecomment-10378451 this.$parent = this.$$nextSibling = this.$$prevSibling = this.$$childHead = - this.$$childTail = this.$root = null; - - // don't reset these to null in case some async task tries to register a listener/watch/task - this.$$listeners = {}; - this.$$watchers = this.$$asyncQueue = this.$$postDigestQueue = []; - - // prevent NPEs since these methods have references to properties we nulled out - this.$destroy = this.$digest = this.$apply = noop; - this.$on = this.$watch = function() { return noop; }; + this.$$childTail = this.$root = this.$$watchers = null; }, /** @@ -12701,23 +15874,24 @@ function $RootScopeProvider(){ * - `string`: execute using the rules as defined in {@link guide/expression expression}. * - `function(scope)`: execute the function with the current `scope` parameter. * + * @param {(object)=} locals Local variables object, useful for overriding values in scope. */ - $evalAsync: function(expr) { + $evalAsync: function(expr, locals) { // if we are outside of an $digest loop and this is the first time we are scheduling async // task also schedule async auto-flush - if (!$rootScope.$$phase && !$rootScope.$$asyncQueue.length) { + if (!$rootScope.$$phase && !asyncQueue.length) { $browser.defer(function() { - if ($rootScope.$$asyncQueue.length) { + if (asyncQueue.length) { $rootScope.$digest(); } }); } - this.$$asyncQueue.push({scope: this, expression: expr}); + asyncQueue.push({scope: this, expression: expr, locals: locals}); }, - $$postDigest : function(fn) { - this.$$postDigestQueue.push(fn); + $$postDigest: function(fn) { + postDigestQueue.push(fn); }, /** @@ -12782,6 +15956,33 @@ function $RootScopeProvider(){ } }, + /** + * @ngdoc method + * @name $rootScope.Scope#$applyAsync + * @kind function + * + * @description + * Schedule the invocation of $apply to occur at a later time. The actual time difference + * varies across browsers, but is typically around ~10 milliseconds. + * + * This can be used to queue up multiple expressions which need to be evaluated in the same + * digest. + * + * @param {(string|function())=} exp An angular expression to be executed. + * + * - `string`: execute using the rules as defined in {@link guide/expression expression}. + * - `function(scope)`: execute the function with current `scope` parameter. + */ + $applyAsync: function(expr) { + var scope = this; + expr && applyAsyncQueue.push($applyAsyncExpression); + scheduleApplyAsync(); + + function $applyAsyncExpression() { + scope.$eval(expr); + } + }, + /** * @ngdoc method * @name $rootScope.Scope#$on @@ -12796,7 +15997,8 @@ function $RootScopeProvider(){ * * - `targetScope` - `{Scope}`: the scope on which the event was `$emit`-ed or * `$broadcast`-ed. - * - `currentScope` - `{Scope}`: the current scope which is handling the event. + * - `currentScope` - `{Scope}`: the scope that is currently handling the event. Once the + * event propagates through the scope hierarchy, this property is set to null. * - `name` - `{string}`: name of the event. * - `stopPropagation` - `{function=}`: calling `stopPropagation` function will cancel * further event propagation (available only for events that were `$emit`-ed). @@ -12825,8 +16027,11 @@ function $RootScopeProvider(){ var self = this; return function() { - namedListeners[indexOf(namedListeners, listener)] = null; - decrementListenerCount(self, 1, name); + var indexOfListener = namedListeners.indexOf(listener); + if (indexOfListener !== -1) { + namedListeners[indexOfListener] = null; + decrementListenerCount(self, 1, name); + } }; }, @@ -12873,7 +16078,7 @@ function $RootScopeProvider(){ do { namedListeners = scope.$$listeners[name] || empty; event.currentScope = scope; - for (i=0, length=namedListeners.length; i= 8 ) { - normalizedVal = urlResolve(uri).href; - if (normalizedVal !== '' && !normalizedVal.match(regex)) { - return 'unsafe:'+normalizedVal; - } + normalizedVal = urlResolve(uri).href; + if (normalizedVal !== '' && !normalizedVal.match(regex)) { + return 'unsafe:' + normalizedVal; } return uri; }; }; } +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Any commits to this file should be reviewed with security in mind. * + * Changes to this file can potentially create security vulnerabilities. * + * An approval from 2 Core members with history of modifying * + * this file is required. * + * * + * Does the change somehow allow for arbitrary javascript to be executed? * + * Or allows for someone to change the prototype of built-in objects? * + * Or gives undesired access to variables likes document or window? * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + var $sceMinErr = minErr('$sce'); var SCE_CONTEXTS = { @@ -13099,15 +16345,6 @@ var SCE_CONTEXTS = { // Helper functions follow. -// Copied from: -// http://docs.closure-library.googlecode.com/git/closure_goog_string_string.js.source.html#line962 -// Prereq: s is a string. -function escapeForRegexp(s) { - return s.replace(/([-()\[\]{}+?*.$\^|,:# to learn more about them. * You can ensure your document is in standards mode and not quirks mode by adding `` @@ -13507,7 +16744,7 @@ function $SceDelegateProvider() { * Here's an example of a binding in a privileged context: * * ``` - * + * *
* ``` * @@ -13542,7 +16779,7 @@ function $SceDelegateProvider() { * * In privileged contexts, directives and code will bind to the result of {@link ng.$sce#getTrusted * $sce.getTrusted(context, value)} rather than to the value directly. Directives use {@link - * ng.$sce#parse $sce.parseAs} rather than `$parse` to watch attribute bindings, which performs the + * ng.$sce#parseAs $sce.parseAs} rather than `$parse` to watch attribute bindings, which performs the * {@link ng.$sce#getTrusted $sce.getTrusted} behind the scenes on non-constant literals. * * As an example, {@link ng.directive:ngBindHtml ngBindHtml} uses {@link @@ -13579,7 +16816,7 @@ function $SceDelegateProvider() { * won't work on all browsers. Also, loading templates from `file://` URL does not work on some * browsers. * - * ## This feels like too much overhead for the developer? + * ## This feels like too much overhead * * It's important to remember that SCE only applies to interpolation expressions. * @@ -13663,7 +16900,7 @@ function $SceDelegateProvider() { * * * - *
+ *
*

* User comments
* By default, HTML that isn't explicitly trusted (e.g. Alice's comment) is sanitized when @@ -13680,17 +16917,17 @@ function $SceDelegateProvider() { * * * - * var mySceApp = angular.module('mySceApp', ['ngSanitize']); - * - * mySceApp.controller("myAppController", function myAppController($http, $templateCache, $sce) { - * var self = this; - * $http.get("test_data.json", {cache: $templateCache}).success(function(userComments) { - * self.userComments = userComments; - * }); - * self.explicitlyTrustedHtml = $sce.trustAsHtml( - * 'Hover over this text.'); - * }); + * angular.module('mySceApp', ['ngSanitize']) + * .controller('AppController', ['$http', '$templateCache', '$sce', + * function($http, $templateCache, $sce) { + * var self = this; + * $http.get("test_data.json", {cache: $templateCache}).success(function(userComments) { + * self.userComments = userComments; + * }); + * self.explicitlyTrustedHtml = $sce.trustAsHtml( + * 'Hover over this text.'); + * }]); * * * @@ -13758,7 +16995,7 @@ function $SceProvider() { * @description * Enables/disables SCE and returns the current value. */ - this.enabled = function (value) { + this.enabled = function(value) { if (arguments.length) { enabled = !!value; } @@ -13812,13 +17049,13 @@ function $SceProvider() { * sce.js and sceSpecs.js would need to be aware of this detail. */ - this.$get = ['$parse', '$sniffer', '$sceDelegate', function( - $parse, $sniffer, $sceDelegate) { - // Prereq: Ensure that we're not running in IE8 quirks mode. In that mode, IE allows + this.$get = ['$parse', '$sceDelegate', function( + $parse, $sceDelegate) { + // Prereq: Ensure that we're not running in IE<11 quirks mode. In that mode, IE < 11 allow // the "expression(javascript expression)" syntax which is insecure. - if (enabled && $sniffer.msie && $sniffer.msieDocumentMode < 8) { + if (enabled && msie < 8) { throw $sceMinErr('iequirks', - 'Strict Contextual Escaping does not support Internet Explorer version < 9 in quirks ' + + 'Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks ' + 'mode. You can fix this by adding the text to the top of your HTML ' + 'document. See http://docs.angularjs.org/api/ng.$sce for more information.'); } @@ -13836,7 +17073,7 @@ function $SceProvider() { * @description * Returns a boolean indicating if SCE is enabled. */ - sce.isEnabled = function () { + sce.isEnabled = function() { return enabled; }; sce.trustAs = $sceDelegate.trustAs; @@ -13872,9 +17109,9 @@ function $SceProvider() { if (parsed.literal && parsed.constant) { return parsed; } else { - return function sceParseAsTrusted(self, locals) { - return sce.getTrusted(type, parsed(self, locals)); - }; + return $parse(expr, function(value) { + return sce.getTrusted(type, value); + }); } }; @@ -13891,7 +17128,7 @@ function $SceProvider() { * escaping. * * @param {string} type The kind of context in which this value is safe for use. e.g. url, - * resource_url, html, js and css. + * resourceUrl, html, js and css. * @param {*} value The value that that should be considered trusted/safe. * @returns {*} A value that can be used to stand in for the provided `value` in places * where Angular expects a $sce.trustAs() return value. @@ -14041,7 +17278,7 @@ function $SceProvider() { * * @description * Shorthand method. `$sce.parseAsHtml(expression string)` → - * {@link ng.$sce#parse `$sce.parseAs($sce.HTML, value)`} + * {@link ng.$sce#parseAs `$sce.parseAs($sce.HTML, value)`} * * @param {string} expression String expression to compile. * @returns {function(context, locals)} a function which represents the compiled expression: @@ -14058,7 +17295,7 @@ function $SceProvider() { * * @description * Shorthand method. `$sce.parseAsCss(value)` → - * {@link ng.$sce#parse `$sce.parseAs($sce.CSS, value)`} + * {@link ng.$sce#parseAs `$sce.parseAs($sce.CSS, value)`} * * @param {string} expression String expression to compile. * @returns {function(context, locals)} a function which represents the compiled expression: @@ -14075,7 +17312,7 @@ function $SceProvider() { * * @description * Shorthand method. `$sce.parseAsUrl(value)` → - * {@link ng.$sce#parse `$sce.parseAs($sce.URL, value)`} + * {@link ng.$sce#parseAs `$sce.parseAs($sce.URL, value)`} * * @param {string} expression String expression to compile. * @returns {function(context, locals)} a function which represents the compiled expression: @@ -14092,7 +17329,7 @@ function $SceProvider() { * * @description * Shorthand method. `$sce.parseAsResourceUrl(value)` → - * {@link ng.$sce#parse `$sce.parseAs($sce.RESOURCE_URL, value)`} + * {@link ng.$sce#parseAs `$sce.parseAs($sce.RESOURCE_URL, value)`} * * @param {string} expression String expression to compile. * @returns {function(context, locals)} a function which represents the compiled expression: @@ -14109,7 +17346,7 @@ function $SceProvider() { * * @description * Shorthand method. `$sce.parseAsJs(value)` → - * {@link ng.$sce#parse `$sce.parseAs($sce.JS, value)`} + * {@link ng.$sce#parseAs `$sce.parseAs($sce.JS, value)`} * * @param {string} expression String expression to compile. * @returns {function(context, locals)} a function which represents the compiled expression: @@ -14125,15 +17362,15 @@ function $SceProvider() { getTrusted = sce.getTrusted, trustAs = sce.trustAs; - forEach(SCE_CONTEXTS, function (enumValue, name) { + forEach(SCE_CONTEXTS, function(enumValue, name) { var lName = lowercase(name); - sce[camelCase("parse_as_" + lName)] = function (expr) { + sce[camelCase("parse_as_" + lName)] = function(expr) { return parse(enumValue, expr); }; - sce[camelCase("get_trusted_" + lName)] = function (value) { + sce[camelCase("get_trusted_" + lName)] = function(value) { return getTrusted(enumValue, value); }; - sce[camelCase("trust_as_" + lName)] = function (value) { + sce[camelCase("trust_as_" + lName)] = function(value) { return trustAs(enumValue, value); }; }); @@ -14150,7 +17387,6 @@ function $SceProvider() { * @requires $document * * @property {boolean} history Does the browser support html5 history api ? - * @property {boolean} hashchange Does the browser support hashchange event ? * @property {boolean} transitions Does the browser support CSS transition events ? * @property {boolean} animations Does the browser support CSS animation events ? * @@ -14161,36 +17397,35 @@ function $SnifferProvider() { this.$get = ['$window', '$document', function($window, $document) { var eventSupport = {}, android = - int((/android (\d+)/.exec(lowercase(($window.navigator || {}).userAgent)) || [])[1]), + toInt((/android (\d+)/.exec(lowercase(($window.navigator || {}).userAgent)) || [])[1]), boxee = /Boxee/i.test(($window.navigator || {}).userAgent), document = $document[0] || {}, - documentMode = document.documentMode, vendorPrefix, - vendorRegex = /^(Moz|webkit|O|ms)(?=[A-Z])/, + vendorRegex = /^(Moz|webkit|ms)(?=[A-Z])/, bodyStyle = document.body && document.body.style, transitions = false, animations = false, match; if (bodyStyle) { - for(var prop in bodyStyle) { - if(match = vendorRegex.exec(prop)) { + for (var prop in bodyStyle) { + if (match = vendorRegex.exec(prop)) { vendorPrefix = match[0]; vendorPrefix = vendorPrefix.substr(0, 1).toUpperCase() + vendorPrefix.substr(1); break; } } - if(!vendorPrefix) { + if (!vendorPrefix) { vendorPrefix = ('WebkitOpacity' in bodyStyle) && 'webkit'; } transitions = !!(('transition' in bodyStyle) || (vendorPrefix + 'Transition' in bodyStyle)); animations = !!(('animation' in bodyStyle) || (vendorPrefix + 'Animation' in bodyStyle)); - if (android && (!transitions||!animations)) { - transitions = isString(document.body.style.webkitTransition); - animations = isString(document.body.style.webkitAnimation); + if (android && (!transitions || !animations)) { + transitions = isString(bodyStyle.webkitTransition); + animations = isString(bodyStyle.webkitAnimation); } } @@ -14207,14 +17442,13 @@ function $SnifferProvider() { // jshint -W018 history: !!($window.history && $window.history.pushState && !(android < 4) && !boxee), // jshint +W018 - hashchange: 'onhashchange' in $window && - // IE8 compatible mode lies - (!documentMode || documentMode > 7), hasEvent: function(event) { // IE9 implements 'input' event it's so fubared that we rather pretend that it doesn't have // it. In particular the event is not fired when backspace or delete key are pressed or // when cut operation is performed. - if (event == 'input' && msie == 9) return false; + // IE10+ implements 'input' event but it erroneously fires under various situations, + // e.g. when placeholder changes, or a form is focused. + if (event === 'input' && msie <= 11) return false; if (isUndefined(eventSupport[event])) { var divElm = document.createElement('div'); @@ -14225,18 +17459,206 @@ function $SnifferProvider() { }, csp: csp(), vendorPrefix: vendorPrefix, - transitions : transitions, - animations : animations, - android: android, - msie : msie, - msieDocumentMode: documentMode + transitions: transitions, + animations: animations, + android: android }; }]; } +var $compileMinErr = minErr('$compile'); + +/** + * @ngdoc service + * @name $templateRequest + * + * @description + * The `$templateRequest` service runs security checks then downloads the provided template using + * `$http` and, upon success, stores the contents inside of `$templateCache`. If the HTTP request + * fails or the response data of the HTTP request is empty, a `$compile` error will be thrown (the + * exception can be thwarted by setting the 2nd parameter of the function to true). Note that the + * contents of `$templateCache` are trusted, so the call to `$sce.getTrustedUrl(tpl)` is omitted + * when `tpl` is of type string and `$templateCache` has the matching entry. + * + * @param {string|TrustedResourceUrl} tpl The HTTP request template URL + * @param {boolean=} ignoreRequestError Whether or not to ignore the exception when the request fails or the template is empty + * + * @return {Promise} a promise for the HTTP response data of the given URL. + * + * @property {number} totalPendingRequests total amount of pending template requests being downloaded. + */ +function $TemplateRequestProvider() { + this.$get = ['$templateCache', '$http', '$q', '$sce', function($templateCache, $http, $q, $sce) { + function handleRequestFn(tpl, ignoreRequestError) { + handleRequestFn.totalPendingRequests++; + + // We consider the template cache holds only trusted templates, so + // there's no need to go through whitelisting again for keys that already + // are included in there. This also makes Angular accept any script + // directive, no matter its name. However, we still need to unwrap trusted + // types. + if (!isString(tpl) || !$templateCache.get(tpl)) { + tpl = $sce.getTrustedResourceUrl(tpl); + } + + var transformResponse = $http.defaults && $http.defaults.transformResponse; + + if (isArray(transformResponse)) { + transformResponse = transformResponse.filter(function(transformer) { + return transformer !== defaultHttpResponseTransform; + }); + } else if (transformResponse === defaultHttpResponseTransform) { + transformResponse = null; + } + + var httpOptions = { + cache: $templateCache, + transformResponse: transformResponse + }; + + return $http.get(tpl, httpOptions) + ['finally'](function() { + handleRequestFn.totalPendingRequests--; + }) + .then(function(response) { + $templateCache.put(tpl, response.data); + return response.data; + }, handleError); + + function handleError(resp) { + if (!ignoreRequestError) { + throw $compileMinErr('tpload', 'Failed to load template: {0} (HTTP status: {1} {2})', + tpl, resp.status, resp.statusText); + } + return $q.reject(resp); + } + } + + handleRequestFn.totalPendingRequests = 0; + + return handleRequestFn; + }]; +} + +function $$TestabilityProvider() { + this.$get = ['$rootScope', '$browser', '$location', + function($rootScope, $browser, $location) { + + /** + * @name $testability + * + * @description + * The private $$testability service provides a collection of methods for use when debugging + * or by automated test and debugging tools. + */ + var testability = {}; + + /** + * @name $$testability#findBindings + * + * @description + * Returns an array of elements that are bound (via ng-bind or {{}}) + * to expressions matching the input. + * + * @param {Element} element The element root to search from. + * @param {string} expression The binding expression to match. + * @param {boolean} opt_exactMatch If true, only returns exact matches + * for the expression. Filters and whitespace are ignored. + */ + testability.findBindings = function(element, expression, opt_exactMatch) { + var bindings = element.getElementsByClassName('ng-binding'); + var matches = []; + forEach(bindings, function(binding) { + var dataBinding = angular.element(binding).data('$binding'); + if (dataBinding) { + forEach(dataBinding, function(bindingName) { + if (opt_exactMatch) { + var matcher = new RegExp('(^|\\s)' + escapeForRegexp(expression) + '(\\s|\\||$)'); + if (matcher.test(bindingName)) { + matches.push(binding); + } + } else { + if (bindingName.indexOf(expression) != -1) { + matches.push(binding); + } + } + }); + } + }); + return matches; + }; + + /** + * @name $$testability#findModels + * + * @description + * Returns an array of elements that are two-way found via ng-model to + * expressions matching the input. + * + * @param {Element} element The element root to search from. + * @param {string} expression The model expression to match. + * @param {boolean} opt_exactMatch If true, only returns exact matches + * for the expression. + */ + testability.findModels = function(element, expression, opt_exactMatch) { + var prefixes = ['ng-', 'data-ng-', 'ng\\:']; + for (var p = 0; p < prefixes.length; ++p) { + var attributeEquals = opt_exactMatch ? '=' : '*='; + var selector = '[' + prefixes[p] + 'model' + attributeEquals + '"' + expression + '"]'; + var elements = element.querySelectorAll(selector); + if (elements.length) { + return elements; + } + } + }; + + /** + * @name $$testability#getLocation + * + * @description + * Shortcut for getting the location in a browser agnostic way. Returns + * the path, search, and hash. (e.g. /path?a=b#hash) + */ + testability.getLocation = function() { + return $location.url(); + }; + + /** + * @name $$testability#setLocation + * + * @description + * Shortcut for navigating to a location without doing a full page reload. + * + * @param {string} url The location url (path, search and hash, + * e.g. /path?a=b#hash) to go to. + */ + testability.setLocation = function(url) { + if (url !== $location.url()) { + $location.url(url); + $rootScope.$digest(); + } + }; + + /** + * @name $$testability#whenStable + * + * @description + * Calls the callback when $timeout and $http requests are completed. + * + * @param {function} callback + */ + testability.whenStable = function(callback) { + $browser.notifyWhenNoOutstandingRequests(callback); + }; + + return testability; + }]; +} + function $TimeoutProvider() { - this.$get = ['$rootScope', '$browser', '$q', '$exceptionHandler', - function($rootScope, $browser, $q, $exceptionHandler) { + this.$get = ['$rootScope', '$browser', '$q', '$$q', '$exceptionHandler', + function($rootScope, $browser, $q, $$q, $exceptionHandler) { + var deferreds = {}; @@ -14249,32 +17671,43 @@ function $TimeoutProvider() { * block and delegates any exceptions to * {@link ng.$exceptionHandler $exceptionHandler} service. * - * The return value of registering a timeout function is a promise, which will be resolved when - * the timeout is reached and the timeout function is executed. + * The return value of calling `$timeout` is a promise, which will be resolved when + * the delay has passed and the timeout function, if provided, is executed. * * To cancel a timeout request, call `$timeout.cancel(promise)`. * * In tests you can use {@link ngMock.$timeout `$timeout.flush()`} to * synchronously flush the queue of deferred functions. * - * @param {function()} fn A function, whose execution should be delayed. + * If you only want a promise that will be resolved after some specified delay + * then you can call `$timeout` without the `fn` function. + * + * @param {function()=} fn A function, whose execution should be delayed. * @param {number=} [delay=0] Delay in milliseconds. * @param {boolean=} [invokeApply=true] If set to `false` skips model dirty checking, otherwise * will invoke `fn` within the {@link ng.$rootScope.Scope#$apply $apply} block. + * @param {...*=} Pass additional parameters to the executed function. * @returns {Promise} Promise that will be resolved when the timeout is reached. The value this * promise will be resolved with is the return value of the `fn` function. * */ function timeout(fn, delay, invokeApply) { - var deferred = $q.defer(), - promise = deferred.promise, + if (!isFunction(fn)) { + invokeApply = delay; + delay = fn; + fn = noop; + } + + var args = sliceArgs(arguments, 3), skipApply = (isDefined(invokeApply) && !invokeApply), + deferred = (skipApply ? $$q : $q).defer(), + promise = deferred.promise, timeoutId; timeoutId = $browser.defer(function() { try { - deferred.resolve(fn()); - } catch(e) { + deferred.resolve(fn.apply(null, args)); + } catch (e) { deferred.reject(e); $exceptionHandler(e); } @@ -14325,7 +17758,7 @@ function $TimeoutProvider() { // exactly the behavior needed here. There is little value is mocking these out for this // service. var urlParsingNode = document.createElement("a"); -var originUrl = urlResolve(window.location.href, true); +var originUrl = urlResolve(window.location.href); /** @@ -14380,7 +17813,7 @@ var originUrl = urlResolve(window.location.href, true); * | pathname | The pathname, beginning with "/" * */ -function urlResolve(url, base) { +function urlResolve(url) { var href = url; if (msie) { @@ -14440,7 +17873,7 @@ function urlIsSameOrigin(requestUrl) {
- +
@@ -14461,10 +17894,65 @@ function urlIsSameOrigin(requestUrl) {
*/ -function $WindowProvider(){ +function $WindowProvider() { this.$get = valueFn(window); } +/** + * @name $$cookieReader + * @requires $document + * + * @description + * This is a private service for reading cookies used by $http and ngCookies + * + * @return {Object} a key/value map of the current cookies + */ +function $$CookieReader($document) { + var rawDocument = $document[0] || {}; + var lastCookies = {}; + var lastCookieString = ''; + + function safeDecodeURIComponent(str) { + try { + return decodeURIComponent(str); + } catch (e) { + return str; + } + } + + return function() { + var cookieArray, cookie, i, index, name; + var currentCookieString = rawDocument.cookie || ''; + + if (currentCookieString !== lastCookieString) { + lastCookieString = currentCookieString; + cookieArray = lastCookieString.split('; '); + lastCookies = {}; + + for (i = 0; i < cookieArray.length; i++) { + cookie = cookieArray[i]; + index = cookie.indexOf('='); + if (index > 0) { //ignore nameless cookies + name = safeDecodeURIComponent(cookie.substring(0, index)); + // the first value that is seen for a cookie is the most + // specific one. values for the same cookie name that + // follow are for less specific paths. + if (lastCookies[name] === undefined) { + lastCookies[name] = safeDecodeURIComponent(cookie.substring(index + 1)); + } + } + } + } + return lastCookies; + }; +} + +$$CookieReader.$inject = ['$document']; + +function $$CookieReaderProvider() { + this.$get = $$CookieReader; +} + /* global currencyFilter: true, dateFilter: true, filterFilter: true, @@ -14485,6 +17973,13 @@ function $WindowProvider(){ * Dependency Injected. To achieve this a filter definition consists of a factory function which is * annotated with dependencies and is responsible for creating a filter function. * + *
+ * **Note:** Filter names must be valid angular {@link expression} identifiers, such as `uppercase` or `orderBy`. + * Names with special characters, such as hyphens and dots, are not allowed. If you wish to namespace + * your filters, then you can use capitalization (`myappSubsectionFilterx`) or underscores + * (`myapp_subsection_filterx`). + *
+ * * ```js * // Filter registration * function MyModule($provide, $filterProvider) { @@ -14525,16 +18020,6 @@ function $WindowProvider(){ * For more information about how angular filters work, and how to create your own filters, see * {@link guide/filter Filters} in the Angular Developer Guide. */ -/** - * @ngdoc method - * @name $filterProvider#register - * @description - * Register filter factory function. - * - * @param {String} name Name of the filter. - * @param {Function} fn The filter factory function which is injectable. - */ - /** * @ngdoc service @@ -14573,14 +18058,21 @@ function $FilterProvider($provide) { /** * @ngdoc method - * @name $controllerProvider#register + * @name $filterProvider#register * @param {string|Object} name Name of the filter function, or an object map of filters where * the keys are the filter names and the values are the filter factories. + * + *
+ * **Note:** Filter names must be valid angular {@link expression} identifiers, such as `uppercase` or `orderBy`. + * Names with special characters, such as hyphens and dots, are not allowed. If you wish to namespace + * your filters, then you can use capitalization (`myappSubsectionFilterx`) or underscores + * (`myapp_subsection_filterx`). + *
* @returns {Object} Registered filter instance, or if a map of filters was provided then a map * of the registered filter instances. */ function register(name, factory) { - if(isObject(name)) { + if (isObject(name)) { var filters = {}; forEach(name, function(filter, key) { filters[key] = register(key, filter); @@ -14637,20 +18129,31 @@ function $FilterProvider($provide) { * * Can be one of: * - * - `string`: The string is evaluated as an expression and the resulting value is used for substring match against - * the contents of the `array`. All strings or objects with string properties in `array` that contain this string - * will be returned. The predicate can be negated by prefixing the string with `!`. + * - `string`: The string is used for matching against the contents of the `array`. All strings or + * objects with string properties in `array` that match this string will be returned. This also + * applies to nested object properties. + * The predicate can be negated by prefixing the string with `!`. * * - `Object`: A pattern object can be used to filter specific properties on objects contained * by `array`. For example `{name:"M", phone:"1"}` predicate will return an array of items * which have property `name` containing "M" and property `phone` containing "1". A special * property name `$` can be used (as in `{$:"text"}`) to accept a match against any - * property of the object. That's equivalent to the simple substring match with a `string` - * as described above. + * property of the object or its nested object properties. That's equivalent to the simple + * substring match with a `string` as described above. The predicate can be negated by prefixing + * the string with `!`. + * For example `{name: "!M"}` predicate will return an array of items which have property `name` + * not containing "M". * - * - `function(value)`: A predicate function can be used to write arbitrary filters. The function is - * called for each element of `array`. The final result is an array of those elements that - * the predicate returned true for. + * Note that a named property will match properties on the same level only, while the special + * `$` property will match properties on the same level or deeper. E.g. an array item like + * `{name: {first: 'John', last: 'Doe'}}` will **not** be matched by `{name: 'John'}`, but + * **will** be matched by `{$: 'John'}`. + * + * - `function(value, index, array)`: A predicate function can be used to write arbitrary filters. + * The function is called for each element of the array, with the element, its index, and + * the entire array itself as arguments. + * + * The final result is an array of those elements that the predicate returned true for. * * @param {function(actual, expected)|true|undefined} comparator Comparator which is used in * determining if the expected value (from the filter expression) and actual value (from @@ -14660,14 +18163,17 @@ function $FilterProvider($provide) { * * - `function(actual, expected)`: * The function will be given the object value and the predicate value to compare and - * should return true if the item should be included in filtered result. + * should return true if both values should be considered equal. * - * - `true`: A shorthand for `function(actual, expected) { return angular.equals(expected, actual)}`. - * this is essentially strict comparison of expected and actual. + * - `true`: A shorthand for `function(actual, expected) { return angular.equals(actual, expected)}`. + * This is essentially strict comparison of expected and actual. * * - `false|undefined`: A short hand for a function which will look for a substring match in case * insensitive way. * + * Primitive values are converted to strings. Objects are not compared against primitives, + * unless they have a custom `toString` method (e.g. `Date` objects). + * * @example @@ -14678,7 +18184,7 @@ function $FilterProvider($provide) { {name:'Julie', phone:'555-8765'}, {name:'Juliette', phone:'555-5678'}]">
- Search: + @@ -14687,10 +18193,10 @@ function $FilterProvider($provide) {
NamePhone

- Any:
- Name only
- Phone only
- Equality
+
+
+
+
@@ -14738,110 +18244,132 @@ function $FilterProvider($provide) { */ function filterFilter() { return function(array, expression, comparator) { - if (!isArray(array)) return array; - - var comparatorType = typeof(comparator), - predicates = []; - - predicates.check = function(value) { - for (var j = 0; j < predicates.length; j++) { - if(!predicates[j](value)) { - return false; - } - } - return true; - }; - - if (comparatorType !== 'function') { - if (comparatorType === 'boolean' && comparator) { - comparator = function(obj, text) { - return angular.equals(obj, text); - }; + if (!isArrayLike(array)) { + if (array == null) { + return array; } else { - comparator = function(obj, text) { - if (obj && text && typeof obj === 'object' && typeof text === 'object') { - for (var objKey in obj) { - if (objKey.charAt(0) !== '$' && hasOwnProperty.call(obj, objKey) && - comparator(obj[objKey], text[objKey])) { - return true; - } - } - return false; - } - text = (''+text).toLowerCase(); - return (''+obj).toLowerCase().indexOf(text) > -1; - }; + throw minErr('filter')('notarray', 'Expected array but received: {0}', array); } } - var search = function(obj, text){ - if (typeof text == 'string' && text.charAt(0) === '!') { - return !search(obj, text.substr(1)); - } - switch (typeof obj) { - case "boolean": - case "number": - case "string": - return comparator(obj, text); - case "object": - switch (typeof text) { - case "object": - return comparator(obj, text); - default: - for ( var objKey in obj) { - if (objKey.charAt(0) !== '$' && search(obj[objKey], text)) { - return true; - } - } - break; - } - return false; - case "array": - for ( var i = 0; i < obj.length; i++) { - if (search(obj[i], text)) { - return true; - } - } - return false; - default: - return false; - } - }; - switch (typeof expression) { - case "boolean": - case "number": - case "string": - // Set up expression object and fall through - expression = {$:expression}; - // jshint -W086 - case "object": - // jshint +W086 - for (var key in expression) { - (function(path) { - if (typeof expression[path] === 'undefined') return; - predicates.push(function(value) { - return search(path == '$' ? value : (value && value[path]), expression[path]); - }); - })(key); - } - break; + var expressionType = getTypeForFilter(expression); + var predicateFn; + var matchAgainstAnyProp; + + switch (expressionType) { case 'function': - predicates.push(expression); + predicateFn = expression; + break; + case 'boolean': + case 'null': + case 'number': + case 'string': + matchAgainstAnyProp = true; + //jshint -W086 + case 'object': + //jshint +W086 + predicateFn = createPredicateFn(expression, comparator, matchAgainstAnyProp); break; default: return array; } - var filtered = []; - for ( var j = 0; j < array.length; j++) { - var value = array[j]; - if (predicates.check(value)) { - filtered.push(value); - } - } - return filtered; + + return Array.prototype.filter.call(array, predicateFn); }; } +// Helper functions for `filterFilter` +function createPredicateFn(expression, comparator, matchAgainstAnyProp) { + var shouldMatchPrimitives = isObject(expression) && ('$' in expression); + var predicateFn; + + if (comparator === true) { + comparator = equals; + } else if (!isFunction(comparator)) { + comparator = function(actual, expected) { + if (isUndefined(actual)) { + // No substring matching against `undefined` + return false; + } + if ((actual === null) || (expected === null)) { + // No substring matching against `null`; only match against `null` + return actual === expected; + } + if (isObject(expected) || (isObject(actual) && !hasCustomToString(actual))) { + // Should not compare primitives against objects, unless they have custom `toString` method + return false; + } + + actual = lowercase('' + actual); + expected = lowercase('' + expected); + return actual.indexOf(expected) !== -1; + }; + } + + predicateFn = function(item) { + if (shouldMatchPrimitives && !isObject(item)) { + return deepCompare(item, expression.$, comparator, false); + } + return deepCompare(item, expression, comparator, matchAgainstAnyProp); + }; + + return predicateFn; +} + +function deepCompare(actual, expected, comparator, matchAgainstAnyProp, dontMatchWholeObject) { + var actualType = getTypeForFilter(actual); + var expectedType = getTypeForFilter(expected); + + if ((expectedType === 'string') && (expected.charAt(0) === '!')) { + return !deepCompare(actual, expected.substring(1), comparator, matchAgainstAnyProp); + } else if (isArray(actual)) { + // In case `actual` is an array, consider it a match + // if ANY of it's items matches `expected` + return actual.some(function(item) { + return deepCompare(item, expected, comparator, matchAgainstAnyProp); + }); + } + + switch (actualType) { + case 'object': + var key; + if (matchAgainstAnyProp) { + for (key in actual) { + if ((key.charAt(0) !== '$') && deepCompare(actual[key], expected, comparator, true)) { + return true; + } + } + return dontMatchWholeObject ? false : deepCompare(actual, expected, comparator, false); + } else if (expectedType === 'object') { + for (key in expected) { + var expectedVal = expected[key]; + if (isFunction(expectedVal) || isUndefined(expectedVal)) { + continue; + } + + var matchAnyProperty = key === '$'; + var actualVal = matchAnyProperty ? actual : actual[key]; + if (!deepCompare(actualVal, expectedVal, comparator, matchAnyProperty, matchAnyProperty)) { + return false; + } + } + return true; + } else { + return comparator(actual, expected); + } + break; + case 'function': + return false; + default: + return comparator(actual, expected); + } +} + +// Used for easily differentiating between `null` and actual `object` +function getTypeForFilter(val) { + return (val === null) ? 'null' : typeof val; +} + /** * @ngdoc filter * @name currency @@ -14853,6 +18381,7 @@ function filterFilter() { * * @param {number} amount Input to filter. * @param {string=} symbol Currency symbol or identifier to be displayed. + * @param {number=} fractionSize Number of decimal places to round the amount to, defaults to default max fraction size for current locale * @returns {string} Formatted number. * * @@ -14866,15 +18395,17 @@ function filterFilter() { }]);
-
+
default currency symbol ($): {{amount | currency}}
- custom currency identifier (USD$): {{amount | currency:"USD$"}} + custom currency identifier (USD$): {{amount | currency:"USD$"}} + no fractions (0): {{amount | currency:"USD$":0}}
it('should init with 1234.56', function() { expect(element(by.id('currency-default')).getText()).toBe('$1,234.56'); - expect(element(by.binding('amount | currency:"USD$"')).getText()).toBe('USD$1,234.56'); + expect(element(by.id('currency-custom')).getText()).toBe('USD$1,234.56'); + expect(element(by.id('currency-no-fractions')).getText()).toBe('USD$1,235'); }); it('should update', function() { if (browser.params.browser == 'safari') { @@ -14885,7 +18416,8 @@ function filterFilter() { element(by.model('amount')).clear(); element(by.model('amount')).sendKeys('-1234'); expect(element(by.id('currency-default')).getText()).toBe('($1,234.00)'); - expect(element(by.binding('amount | currency:"USD$"')).getText()).toBe('(USD$1,234.00)'); + expect(element(by.id('currency-custom')).getText()).toBe('(USD$1,234.00)'); + expect(element(by.id('currency-no-fractions')).getText()).toBe('(USD$1,234)'); }); @@ -14893,10 +18425,20 @@ function filterFilter() { currencyFilter.$inject = ['$locale']; function currencyFilter($locale) { var formats = $locale.NUMBER_FORMATS; - return function(amount, currencySymbol){ - if (isUndefined(currencySymbol)) currencySymbol = formats.CURRENCY_SYM; - return formatNumber(amount, formats.PATTERNS[1], formats.GROUP_SEP, formats.DECIMAL_SEP, 2). - replace(/\u00A4/g, currencySymbol); + return function(amount, currencySymbol, fractionSize) { + if (isUndefined(currencySymbol)) { + currencySymbol = formats.CURRENCY_SYM; + } + + if (isUndefined(fractionSize)) { + fractionSize = formats.PATTERNS[1].maxFrac; + } + + // if null or undefined pass it through + return (amount == null) + ? amount + : formatNumber(amount, formats.PATTERNS[1], formats.GROUP_SEP, formats.DECIMAL_SEP, fractionSize). + replace(/\u00A4/g, currencySymbol); }; } @@ -14908,8 +18450,11 @@ function currencyFilter($locale) { * @description * Formats a number as text. * + * If the input is null or undefined, it will just be returned. + * If the input is infinite (Infinity/-Infinity) the Infinity symbol '∞' is returned. * If the input is not a number an empty string is returned. * + * * @param {number|string} number Number to format. * @param {(number|string)=} fractionSize Number of decimal places to round the number to. * If this is not provided then the fraction size is computed from the current locale's number @@ -14926,7 +18471,7 @@ function currencyFilter($locale) { }]);
- Enter number:
+
Default formatting: {{val | number}}
No fractions: {{val | number:0}}
Negative number: {{-val | number:4}} @@ -14955,26 +18500,35 @@ numberFilter.$inject = ['$locale']; function numberFilter($locale) { var formats = $locale.NUMBER_FORMATS; return function(number, fractionSize) { - return formatNumber(number, formats.PATTERNS[0], formats.GROUP_SEP, formats.DECIMAL_SEP, - fractionSize); + + // if null or undefined pass it through + return (number == null) + ? number + : formatNumber(number, formats.PATTERNS[0], formats.GROUP_SEP, formats.DECIMAL_SEP, + fractionSize); }; } var DECIMAL_SEP = '.'; function formatNumber(number, pattern, groupSep, decimalSep, fractionSize) { - if (number == null || !isFinite(number) || isObject(number)) return ''; + if (isObject(number)) return ''; var isNegative = number < 0; number = Math.abs(number); + + var isInfinity = number === Infinity; + if (!isInfinity && !isFinite(number)) return ''; + var numStr = number + '', formatedText = '', + hasExponent = false, parts = []; - var hasExponent = false; - if (numStr.indexOf('e') !== -1) { + if (isInfinity) formatedText = '\u221e'; + + if (!isInfinity && numStr.indexOf('e') !== -1) { var match = numStr.match(/([\d\.]+)e(-?)(\d+)/); if (match && match[2] == '-' && match[3] > fractionSize + 1) { - numStr = '0'; number = 0; } else { formatedText = numStr; @@ -14982,7 +18536,7 @@ function formatNumber(number, pattern, groupSep, decimalSep, fractionSize) { } } - if (!hasExponent) { + if (!isInfinity && !hasExponent) { var fractionLen = (numStr.split(DECIMAL_SEP)[1] || '').length; // determine fractionSize if it is not specified @@ -15006,7 +18560,7 @@ function formatNumber(number, pattern, groupSep, decimalSep, fractionSize) { if (whole.length >= (lgroup + group)) { pos = whole.length - lgroup; for (i = 0; i < pos; i++) { - if ((pos - i)%group === 0 && i !== 0) { + if ((pos - i) % group === 0 && i !== 0) { formatedText += groupSep; } formatedText += whole.charAt(i); @@ -15014,28 +18568,32 @@ function formatNumber(number, pattern, groupSep, decimalSep, fractionSize) { } for (i = pos; i < whole.length; i++) { - if ((whole.length - i)%lgroup === 0 && i !== 0) { + if ((whole.length - i) % lgroup === 0 && i !== 0) { formatedText += groupSep; } formatedText += whole.charAt(i); } // format fraction part. - while(fraction.length < fractionSize) { + while (fraction.length < fractionSize) { fraction += '0'; } if (fractionSize && fractionSize !== "0") formatedText += decimalSep + fraction.substr(0, fractionSize); } else { - - if (fractionSize > 0 && number > -1 && number < 1) { + if (fractionSize > 0 && number < 1) { formatedText = number.toFixed(fractionSize); + number = parseFloat(formatedText); } } - parts.push(isNegative ? pattern.negPre : pattern.posPre); - parts.push(formatedText); - parts.push(isNegative ? pattern.negSuf : pattern.posSuf); + if (number === 0) { + isNegative = false; + } + + parts.push(isNegative ? pattern.negPre : pattern.posPre, + formatedText, + isNegative ? pattern.negSuf : pattern.posSuf); return parts.join(''); } @@ -15046,9 +18604,10 @@ function padNumber(num, digits, trim) { num = -num; } num = '' + num; - while(num.length < digits) num = '0' + num; - if (trim) + while (num.length < digits) num = '0' + num; + if (trim) { num = num.substr(num.length - digits); + } return neg + num; } @@ -15057,9 +18616,10 @@ function dateGetter(name, size, offset, trim) { offset = offset || 0; return function(date) { var value = date['get' + name](); - if (offset > 0 || value > -offset) + if (offset > 0 || value > -offset) { value += offset; - if (value === 0 && offset == -12 ) value = 12; + } + if (value === 0 && offset == -12) value = 12; return padNumber(value, size, trim); }; } @@ -15073,8 +18633,8 @@ function dateStrGetter(name, shortForm) { }; } -function timeZoneGetter(date) { - var zone = -1 * date.getTimezoneOffset(); +function timeZoneGetter(date, formats, offset) { + var zone = -1 * offset; var paddedZone = (zone >= 0) ? "+" : ""; paddedZone += padNumber(Math[zone > 0 ? 'floor' : 'ceil'](zone / 60), 2) + @@ -15083,10 +18643,44 @@ function timeZoneGetter(date) { return paddedZone; } +function getFirstThursdayOfYear(year) { + // 0 = index of January + var dayOfWeekOnFirst = (new Date(year, 0, 1)).getDay(); + // 4 = index of Thursday (+1 to account for 1st = 5) + // 11 = index of *next* Thursday (+1 account for 1st = 12) + return new Date(year, 0, ((dayOfWeekOnFirst <= 4) ? 5 : 12) - dayOfWeekOnFirst); +} + +function getThursdayThisWeek(datetime) { + return new Date(datetime.getFullYear(), datetime.getMonth(), + // 4 = index of Thursday + datetime.getDate() + (4 - datetime.getDay())); +} + +function weekGetter(size) { + return function(date) { + var firstThurs = getFirstThursdayOfYear(date.getFullYear()), + thisThurs = getThursdayThisWeek(date); + + var diff = +thisThurs - +firstThurs, + result = 1 + Math.round(diff / 6.048e8); // 6.048e8 ms per week + + return padNumber(result, size); + }; +} + function ampmGetter(date, formats) { return date.getHours() < 12 ? formats.AMPMS[0] : formats.AMPMS[1]; } +function eraGetter(date, formats) { + return date.getFullYear() <= 0 ? formats.ERAS[0] : formats.ERAS[1]; +} + +function longEraGetter(date, formats) { + return date.getFullYear() <= 0 ? formats.ERANAMES[0] : formats.ERANAMES[1]; +} + var DATE_FORMATS = { yyyy: dateGetter('FullYear', 4), yy: dateGetter('FullYear', 2, 0, true), @@ -15111,10 +18705,16 @@ var DATE_FORMATS = { EEEE: dateStrGetter('Day'), EEE: dateStrGetter('Day', true), a: ampmGetter, - Z: timeZoneGetter + Z: timeZoneGetter, + ww: weekGetter(2), + w: weekGetter(1), + G: eraGetter, + GG: eraGetter, + GGG: eraGetter, + GGGG: longEraGetter }; -var DATE_FORMATS_SPLIT = /((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/, +var DATE_FORMATS_SPLIT = /((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/, NUMBER_STRING = /^\-?\d+$/; /** @@ -15140,32 +18740,36 @@ var DATE_FORMATS_SPLIT = /((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+ * * `'EEE'`: Day in Week, (Sun-Sat) * * `'HH'`: Hour in day, padded (00-23) * * `'H'`: Hour in day (0-23) - * * `'hh'`: Hour in am/pm, padded (01-12) - * * `'h'`: Hour in am/pm, (1-12) + * * `'hh'`: Hour in AM/PM, padded (01-12) + * * `'h'`: Hour in AM/PM, (1-12) * * `'mm'`: Minute in hour, padded (00-59) * * `'m'`: Minute in hour (0-59) * * `'ss'`: Second in minute, padded (00-59) * * `'s'`: Second in minute (0-59) - * * `'.sss' or ',sss'`: Millisecond in second, padded (000-999) - * * `'a'`: am/pm marker + * * `'sss'`: Millisecond in second, padded (000-999) + * * `'a'`: AM/PM marker * * `'Z'`: 4 digit (+sign) representation of the timezone offset (-1200-+1200) + * * `'ww'`: Week of year, padded (00-53). Week 01 is the week with the first Thursday of the year + * * `'w'`: Week of year (0-53). Week 1 is the week with the first Thursday of the year + * * `'G'`, `'GG'`, `'GGG'`: The abbreviated form of the era string (e.g. 'AD') + * * `'GGGG'`: The long form of the era string (e.g. 'Anno Domini') * * `format` string can also be one of the following predefined * {@link guide/i18n localizable formats}: * * * `'medium'`: equivalent to `'MMM d, y h:mm:ss a'` for en_US locale - * (e.g. Sep 3, 2010 12:05:08 pm) - * * `'short'`: equivalent to `'M/d/yy h:mm a'` for en_US locale (e.g. 9/3/10 12:05 pm) - * * `'fullDate'`: equivalent to `'EEEE, MMMM d,y'` for en_US locale + * (e.g. Sep 3, 2010 12:05:08 PM) + * * `'short'`: equivalent to `'M/d/yy h:mm a'` for en_US locale (e.g. 9/3/10 12:05 PM) + * * `'fullDate'`: equivalent to `'EEEE, MMMM d, y'` for en_US locale * (e.g. Friday, September 3, 2010) * * `'longDate'`: equivalent to `'MMMM d, y'` for en_US locale (e.g. September 3, 2010) * * `'mediumDate'`: equivalent to `'MMM d, y'` for en_US locale (e.g. Sep 3, 2010) * * `'shortDate'`: equivalent to `'M/d/yy'` for en_US locale (e.g. 9/3/10) - * * `'mediumTime'`: equivalent to `'h:mm:ss a'` for en_US locale (e.g. 12:05:08 pm) - * * `'shortTime'`: equivalent to `'h:mm a'` for en_US locale (e.g. 12:05 pm) + * * `'mediumTime'`: equivalent to `'h:mm:ss a'` for en_US locale (e.g. 12:05:08 PM) + * * `'shortTime'`: equivalent to `'h:mm a'` for en_US locale (e.g. 12:05 PM) * - * `format` string can contain literal values. These need to be quoted with single quotes (e.g. - * `"h 'in the morning'"`). In order to output single quote, use two single quotes in a sequence + * `format` string can contain literal values. These need to be escaped by surrounding with single quotes (e.g. + * `"h 'in the morning'"`). In order to output a single quote, escape it - i.e., two single quotes in a sequence * (e.g. `"h 'o''clock'"`). * * @param {(Date|number|string)} date Date to format either as Date object, milliseconds (string or @@ -15174,6 +18778,10 @@ var DATE_FORMATS_SPLIT = /((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+ * specified in the string input, the time is considered to be in the local timezone. * @param {string=} format Formatting rules (see Description). If not specified, * `mediumDate` is used. + * @param {string=} timezone Timezone to be used for formatting. It understands UTC/GMT and the + * continental US time zone abbreviations, but for general use, use a time zone offset, for + * example, `'+0430'` (4 hours, 30 minutes east of the Greenwich meridian) + * If not specified, the timezone of the browser will be used. * @returns {string} Formatted string or the input if input is not recognized as date/millis. * * @example @@ -15185,6 +18793,8 @@ var DATE_FORMATS_SPLIT = /((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+ {{1288323623006 | date:'yyyy-MM-dd HH:mm:ss Z'}}
{{1288323623006 | date:'MM/dd/yyyy @ h:mma'}}: {{'1288323623006' | date:'MM/dd/yyyy @ h:mma'}}
+ {{1288323623006 | date:"MM/dd/yyyy 'at' h:mma"}}: + {{'1288323623006' | date:"MM/dd/yyyy 'at' h:mma"}}
it('should format date', function() { @@ -15194,6 +18804,8 @@ var DATE_FORMATS_SPLIT = /((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+ toMatch(/2010\-10\-2\d \d{2}:\d{2}:\d{2} (\-|\+)?\d{4}/); expect(element(by.binding("'1288323623006' | date:'MM/dd/yyyy @ h:mma'")).getText()). toMatch(/10\/2\d\/2010 @ \d{1,2}:\d{2}(AM|PM)/); + expect(element(by.binding("'1288323623006' | date:\"MM/dd/yyyy 'at' h:mma\"")).getText()). + toMatch(/10\/2\d\/2010 at \d{1,2}:\d{2}(AM|PM)/); }); @@ -15214,14 +18826,14 @@ function dateFilter($locale) { timeSetter = match[8] ? date.setUTCHours : date.setHours; if (match[9]) { - tzHour = int(match[9] + match[10]); - tzMin = int(match[9] + match[11]); + tzHour = toInt(match[9] + match[10]); + tzMin = toInt(match[9] + match[11]); } - dateSetter.call(date, int(match[1]), int(match[2]) - 1, int(match[3])); - var h = int(match[4]||0) - tzHour; - var m = int(match[5]||0) - tzMin; - var s = int(match[6]||0); - var ms = Math.round(parseFloat('0.' + (match[7]||0)) * 1000); + dateSetter.call(date, toInt(match[1]), toInt(match[2]) - 1, toInt(match[3])); + var h = toInt(match[4] || 0) - tzHour; + var m = toInt(match[5] || 0) - tzMin; + var s = toInt(match[6] || 0); + var ms = Math.round(parseFloat('0.' + (match[7] || 0)) * 1000); timeSetter.call(date, h, m, s, ms); return date; } @@ -15229,7 +18841,7 @@ function dateFilter($locale) { } - return function(date, format) { + return function(date, format, timezone) { var text = '', parts = [], fn, match; @@ -15237,18 +18849,18 @@ function dateFilter($locale) { format = format || 'mediumDate'; format = $locale.DATETIME_FORMATS[format] || format; if (isString(date)) { - date = NUMBER_STRING.test(date) ? int(date) : jsonStringToDate(date); + date = NUMBER_STRING.test(date) ? toInt(date) : jsonStringToDate(date); } if (isNumber(date)) { date = new Date(date); } - if (!isDate(date)) { + if (!isDate(date) || !isFinite(date.getTime())) { return date; } - while(format) { + while (format) { match = DATE_FORMATS_SPLIT.exec(format); if (match) { parts = concat(parts, match, 1); @@ -15259,9 +18871,14 @@ function dateFilter($locale) { } } - forEach(parts, function(value){ + var dateTimezoneOffset = date.getTimezoneOffset(); + if (timezone) { + dateTimezoneOffset = timezoneToOffset(timezone, date.getTimezoneOffset()); + date = convertTimezoneToLocal(date, timezone, true); + } + forEach(parts, function(value) { fn = DATE_FORMATS[value]; - text += fn ? fn(date, $locale.DATETIME_FORMATS) + text += fn ? fn(date, $locale.DATETIME_FORMATS, dateTimezoneOffset) : value.replace(/(^'|'$)/g, '').replace(/''/g, "'"); }); @@ -15282,25 +18899,31 @@ function dateFilter($locale) { * the binding is automatically converted to JSON. * * @param {*} object Any JavaScript object (including arrays and primitive types) to filter. + * @param {number=} spacing The number of spaces to use per indentation, defaults to 2. * @returns {string} JSON string. * * * @example -
{{ {'name':'value'} | json }}
+
{{ {'name':'value'} | json }}
+
{{ {'name':'value'} | json:4 }}
it('should jsonify filtered objects', function() { - expect(element(by.binding("{'name':'value'}")).getText()).toMatch(/\{\n "name": ?"value"\n}/); + expect(element(by.id('default-spacing')).getText()).toMatch(/\{\n "name": ?"value"\n}/); + expect(element(by.id('custom-spacing')).getText()).toMatch(/\{\n "name": ?"value"\n}/); });
* */ function jsonFilter() { - return function(object) { - return toJson(object, true); + return function(object, spacing) { + if (isUndefined(spacing)) { + spacing = 2; + } + return toJson(object, spacing); }; } @@ -15333,14 +18956,18 @@ var uppercaseFilter = valueFn(uppercase); * * @description * Creates a new array or string containing only a specified number of elements. The elements - * are taken from either the beginning or the end of the source array or string, as specified by - * the value and sign (positive or negative) of `limit`. + * are taken from either the beginning or the end of the source array, string or number, as specified by + * the value and sign (positive or negative) of `limit`. If a number is used as input, it is + * converted to a string. * - * @param {Array|string} input Source array or string to be limited. + * @param {Array|string|number} input Source array, string or number to be limited. * @param {string|number} limit The length of the returned array or string. If the `limit` number * is positive, `limit` number of items from the beginning of the source array/string are copied. * If the number is negative, `limit` number of items from the end of the source array/string - * are copied. The `limit` will be trimmed if it exceeds `array.length` + * are copied. The `limit` will be trimmed if it exceeds `array.length`. If `limit` is undefined, + * the input will be returned unchanged. + * @param {(string|number)=} begin Index at which to begin limitation. As a negative index, `begin` + * indicates an offset from the end of `input`. Defaults to `0`. * @returns {Array|string} A new sub-array or substring of length `limit` or less if input array * had less than `limit` elements. * @@ -15352,91 +18979,98 @@ var uppercaseFilter = valueFn(uppercase); .controller('ExampleController', ['$scope', function($scope) { $scope.numbers = [1,2,3,4,5,6,7,8,9]; $scope.letters = "abcdefghi"; + $scope.longNumber = 2345432342; $scope.numLimit = 3; $scope.letterLimit = 3; + $scope.longNumberLimit = 3; }]);
- Limit {{numbers}} to: +

Output numbers: {{ numbers | limitTo:numLimit }}

- Limit {{letters}} to: +

Output letters: {{ letters | limitTo:letterLimit }}

+ +

Output long number: {{ longNumber | limitTo:longNumberLimit }}

var numLimitInput = element(by.model('numLimit')); var letterLimitInput = element(by.model('letterLimit')); + var longNumberLimitInput = element(by.model('longNumberLimit')); var limitedNumbers = element(by.binding('numbers | limitTo:numLimit')); var limitedLetters = element(by.binding('letters | limitTo:letterLimit')); + var limitedLongNumber = element(by.binding('longNumber | limitTo:longNumberLimit')); it('should limit the number array to first three items', function() { expect(numLimitInput.getAttribute('value')).toBe('3'); expect(letterLimitInput.getAttribute('value')).toBe('3'); + expect(longNumberLimitInput.getAttribute('value')).toBe('3'); expect(limitedNumbers.getText()).toEqual('Output numbers: [1,2,3]'); expect(limitedLetters.getText()).toEqual('Output letters: abc'); + expect(limitedLongNumber.getText()).toEqual('Output long number: 234'); }); - it('should update the output when -3 is entered', function() { - numLimitInput.clear(); - numLimitInput.sendKeys('-3'); - letterLimitInput.clear(); - letterLimitInput.sendKeys('-3'); - expect(limitedNumbers.getText()).toEqual('Output numbers: [7,8,9]'); - expect(limitedLetters.getText()).toEqual('Output letters: ghi'); - }); + // There is a bug in safari and protractor that doesn't like the minus key + // it('should update the output when -3 is entered', function() { + // numLimitInput.clear(); + // numLimitInput.sendKeys('-3'); + // letterLimitInput.clear(); + // letterLimitInput.sendKeys('-3'); + // longNumberLimitInput.clear(); + // longNumberLimitInput.sendKeys('-3'); + // expect(limitedNumbers.getText()).toEqual('Output numbers: [7,8,9]'); + // expect(limitedLetters.getText()).toEqual('Output letters: ghi'); + // expect(limitedLongNumber.getText()).toEqual('Output long number: 342'); + // }); it('should not exceed the maximum size of input array', function() { numLimitInput.clear(); numLimitInput.sendKeys('100'); letterLimitInput.clear(); letterLimitInput.sendKeys('100'); + longNumberLimitInput.clear(); + longNumberLimitInput.sendKeys('100'); expect(limitedNumbers.getText()).toEqual('Output numbers: [1,2,3,4,5,6,7,8,9]'); expect(limitedLetters.getText()).toEqual('Output letters: abcdefghi'); + expect(limitedLongNumber.getText()).toEqual('Output long number: 2345432342'); }); - */ -function limitToFilter(){ - return function(input, limit) { - if (!isArray(input) && !isString(input)) return input; - +*/ +function limitToFilter() { + return function(input, limit, begin) { if (Math.abs(Number(limit)) === Infinity) { limit = Number(limit); } else { - limit = int(limit); + limit = toInt(limit); } + if (isNaN(limit)) return input; - if (isString(input)) { - //NaN check on limit - if (limit) { - return limit >= 0 ? input.slice(0, limit) : input.slice(limit, input.length); + if (isNumber(input)) input = input.toString(); + if (!isArray(input) && !isString(input)) return input; + + begin = (!begin || isNaN(begin)) ? 0 : toInt(begin); + begin = (begin < 0 && begin >= -input.length) ? input.length + begin : begin; + + if (limit >= 0) { + return input.slice(begin, begin + limit); + } else { + if (begin === 0) { + return input.slice(limit, input.length); } else { - return ""; + return input.slice(Math.max(0, begin + limit), begin); } } - - var out = [], - i, n; - - // if abs(limit) exceeds maximum length, trim it - if (limit > input.length) - limit = input.length; - else if (limit < -input.length) - limit = -input.length; - - if (limit > 0) { - i = 0; - n = limit; - } else { - i = input.length + limit; - n = input.length; - } - - for (; i} expression A predicate to be + * @param {function(*)|string|Array.<(function(*)|string)>=} expression A predicate to be * used by the comparator to determine the order of elements. * * Can be one of: * * - `function`: Getter function. The result of this function will be sorted using the - * `<`, `=`, `>` operator. + * `<`, `===`, `>` operator. * - `string`: An Angular expression. The result of this expression is used to compare elements * (for example `name` to sort by a property called `name` or `name.substr(0, 3)` to sort by * 3 first characters of a property called `name`). The result of a constant expression * is interpreted as a property name to be used in comparisons (for example `"special name"` * to sort object by the value of their `special name` property). An expression can be * optionally prefixed with `+` or `-` to control ascending or descending sort order - * (for example, `+name` or `-name`). + * (for example, `+name` or `-name`). If no property is provided, (e.g. `'+'`) then the array + * element itself is used to compare where sorting. * - `Array`: An array of function or string predicates. The first predicate in the array * is used for sorting, but when two items are equivalent, the next predicate is used. * + * If the predicate is missing or empty then it defaults to `'+'`. + * * @param {boolean=} reverse Reverse the order of the array. * @returns {Array} Sorted copy of the source array. * + * + * @example + * The example below demonstrates a simple ngRepeat, where the data is sorted + * by age in descending order (predicate is set to `'-age'`). + * `reverse` is not set, which means it defaults to `false`. + + + +
+
NamePhone
+ + + + + + + + + + +
NamePhone NumberAge
{{friend.name}}{{friend.phone}}{{friend.age}}
+
+
+
+ * + * The predicate and reverse parameters can be controlled dynamically through scope properties, + * as shown in the next example. * @example @@ -15483,19 +19157,40 @@ function limitToFilter(){ {name:'Mike', phone:'555-4321', age:21}, {name:'Adam', phone:'555-5678', age:35}, {name:'Julie', phone:'555-8765', age:29}]; - $scope.predicate = '-age'; + $scope.predicate = 'age'; + $scope.reverse = true; + $scope.order = function(predicate) { + $scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false; + $scope.predicate = predicate; + }; }]); +
Sorting predicate = {{predicate}}; reverse = {{reverse}}

[ unsorted ] - - - + + + @@ -15553,65 +19248,118 @@ function limitToFilter(){ */ orderByFilter.$inject = ['$parse']; -function orderByFilter($parse){ +function orderByFilter($parse) { return function(array, sortPredicate, reverseOrder) { - if (!isArray(array)) return array; - if (!sortPredicate) return array; - sortPredicate = isArray(sortPredicate) ? sortPredicate: [sortPredicate]; - sortPredicate = map(sortPredicate, function(predicate){ - var descending = false, get = predicate || identity; - if (isString(predicate)) { - if ((predicate.charAt(0) == '+' || predicate.charAt(0) == '-')) { - descending = predicate.charAt(0) == '-'; - predicate = predicate.substring(1); - } - get = $parse(predicate); - if (get.constant) { - var key = get(); - return reverseComparator(function(a,b) { - return compare(a[key], b[key]); - }, descending); - } - } - return reverseComparator(function(a,b){ - return compare(get(a),get(b)); - }, descending); - }); - var arrayCopy = []; - for ( var i = 0; i < array.length; i++) { arrayCopy.push(array[i]); } - return arrayCopy.sort(reverseComparator(comparator, reverseOrder)); - function comparator(o1, o2){ - for ( var i = 0; i < sortPredicate.length; i++) { - var comp = sortPredicate[i](o1, o2); - if (comp !== 0) return comp; - } - return 0; + if (!(isArrayLike(array))) return array; + + if (!isArray(sortPredicate)) { sortPredicate = [sortPredicate]; } + if (sortPredicate.length === 0) { sortPredicate = ['+']; } + + var predicates = processPredicates(sortPredicate, reverseOrder); + + // The next three lines are a version of a Swartzian Transform idiom from Perl + // (sometimes called the Decorate-Sort-Undecorate idiom) + // See https://en.wikipedia.org/wiki/Schwartzian_transform + var compareValues = Array.prototype.map.call(array, getComparisonObject); + compareValues.sort(doComparison); + array = compareValues.map(function(item) { return item.value; }); + + return array; + + function getComparisonObject(value, index) { + return { + value: value, + predicateValues: predicates.map(function(predicate) { + return getPredicateValue(predicate.get(value), index); + }) + }; } - function reverseComparator(comp, descending) { - return toBoolean(descending) - ? function(a,b){return comp(b,a);} - : comp; - } - function compare(v1, v2){ - var t1 = typeof v1; - var t2 = typeof v2; - if (t1 == t2) { - if (isDate(v1) && isDate(v2)) { - v1 = v1.valueOf(); - v2 = v2.valueOf(); - } - if (t1 == "string") { - v1 = v1.toLowerCase(); - v2 = v2.toLowerCase(); - } - if (v1 === v2) return 0; - return v1 < v2 ? -1 : 1; - } else { - return t1 < t2 ? -1 : 1; + + function doComparison(v1, v2) { + var result = 0; + for (var index=0, length = predicates.length; index < length; ++index) { + result = compare(v1.predicateValues[index], v2.predicateValues[index]) * predicates[index].descending; + if (result) break; } + return result; } }; + + function processPredicates(sortPredicate, reverseOrder) { + reverseOrder = reverseOrder ? -1 : 1; + return sortPredicate.map(function(predicate) { + var descending = 1, get = identity; + + if (isFunction(predicate)) { + get = predicate; + } else if (isString(predicate)) { + if ((predicate.charAt(0) == '+' || predicate.charAt(0) == '-')) { + descending = predicate.charAt(0) == '-' ? -1 : 1; + predicate = predicate.substring(1); + } + if (predicate !== '') { + get = $parse(predicate); + if (get.constant) { + var key = get(); + get = function(value) { return value[key]; }; + } + } + } + return { get: get, descending: descending * reverseOrder }; + }); + } + + function isPrimitive(value) { + switch (typeof value) { + case 'number': /* falls through */ + case 'boolean': /* falls through */ + case 'string': + return true; + default: + return false; + } + } + + function objectValue(value, index) { + // If `valueOf` is a valid function use that + if (typeof value.valueOf === 'function') { + value = value.valueOf(); + if (isPrimitive(value)) return value; + } + // If `toString` is a valid function and not the one from `Object.prototype` use that + if (hasCustomToString(value)) { + value = value.toString(); + if (isPrimitive(value)) return value; + } + // We have a basic object so we use the position of the object in the collection + return index; + } + + function getPredicateValue(value, index) { + var type = typeof value; + if (value === null) { + type = 'string'; + value = 'null'; + } else if (type === 'string') { + value = value.toLowerCase(); + } else if (type === 'object') { + value = objectValue(value, index); + } + return { value: value, type: type }; + } + + function compare(v1, v2) { + var result = 0; + if (v1.type === v2.type) { + if (v1.value !== v2.value) { + result = v1.value < v2.value ? -1 : 1; + } + } else { + result = v1.type < v2.type ? -1 : 1; + } + return result; + } } function ngDirective(directive) { @@ -15640,28 +19388,15 @@ function ngDirective(directive) { var htmlAnchorDirective = valueFn({ restrict: 'E', compile: function(element, attr) { - - if (msie <= 8) { - - // turn link into a stylable link in IE - // but only if it doesn't have name attribute, in which case it's an anchor - if (!attr.href && !attr.name) { - attr.$set('href', ''); - } - - // add a comment node to anchors to workaround IE bug that causes element content to be reset - // to new attribute content if attribute is updated with value containing @ and element also - // contains value with @ - // see issue #1949 - element.append(document.createComment('IE fix')); - } - - if (!attr.href && !attr.xlinkHref && !attr.name) { + if (!attr.href && !attr.xlinkHref) { return function(scope, element) { + // If the linked element is not an anchor tag anymore, do nothing + if (element[0].nodeName.toLowerCase() !== 'a') return; + // SVGAElement does not use the href attribute, but rather the 'xlinkHref' attribute. var href = toString.call(element.prop('href')) === '[object SVGAnimatedString]' ? 'xlink:href' : 'href'; - element.on('click', function(event){ + element.on('click', function(event) { // if we have no href url, then don't navigate anywhere. if (!element.attr(href)) { event.preventDefault(); @@ -15683,18 +19418,17 @@ var htmlAnchorDirective = valueFn({ * make the link go to the wrong URL if the user clicks it before * Angular has a chance to replace the `{{hash}}` markup with its * value. Until Angular replaces the markup the link will be broken - * and will most likely return a 404 error. - * - * The `ngHref` directive solves this problem. + * and will most likely return a 404 error. The `ngHref` directive + * solves this problem. * * The wrong way to write it: * ```html - * + * link1 * ``` * * The correct way to write it: * ```html - * + * link1 * ``` * * @element A @@ -15741,7 +19475,7 @@ var htmlAnchorDirective = valueFn({ }, 5000, 'page should navigate to /123'); }); - xit('should execute ng-click but not reload when href empty string and name specified', function() { + it('should execute ng-click but not reload when href empty string and name specified', function() { element(by.id('link-4')).click(); expect(element(by.model('value')).getAttribute('value')).toEqual('4'); expect(element(by.id('link-4')).getAttribute('href')).toBe(''); @@ -15786,12 +19520,12 @@ var htmlAnchorDirective = valueFn({ * * The buggy way to write it: * ```html - * + * Description * ``` * * The correct way to write it: * ```html - * + * Description * ``` * * @element IMG @@ -15812,12 +19546,12 @@ var htmlAnchorDirective = valueFn({ * * The buggy way to write it: * ```html - * + * Description * ``` * * The correct way to write it: * ```html - * + * Description * ``` * * @element IMG @@ -15832,25 +19566,29 @@ var htmlAnchorDirective = valueFn({ * * @description * - * We shouldn't do this, because it will make the button enabled on Chrome/Firefox but not on IE8 and older IEs: + * This directive sets the `disabled` attribute on the element if the + * {@link guide/expression expression} inside `ngDisabled` evaluates to truthy. + * + * A special directive is necessary because we cannot use interpolation inside the `disabled` + * attribute. The following example would make the button enabled on Chrome/Firefox + * but not on older IEs: + * * ```html - *
- * + * + *
+ * *
* ``` * - * The HTML specification does not require browsers to preserve the values of boolean attributes - * such as disabled. (Their presence means true and their absence means false.) + * This is because the HTML specification does not require browsers to preserve the values of + * boolean attributes such as `disabled` (Their presence means true and their absence means false.) * If we put an Angular interpolation expression into such an attribute then the * binding information would be lost when the browser removes the attribute. - * The `ngDisabled` directive solves this problem for the `disabled` attribute. - * This complementary directive is not removed by the browser and so provides - * a permanent reliable place to store the binding information. * * @example - Click me to toggle:
+
@@ -15864,7 +19602,7 @@ var htmlAnchorDirective = valueFn({ * * @element INPUT * @param {expression} ngDisabled If the {@link guide/expression expression} is truthy, - * then special attribute "disabled" will be set on the element + * then the `disabled` attribute will be set on the element */ @@ -15875,6 +19613,13 @@ var htmlAnchorDirective = valueFn({ * @priority 100 * * @description + * Sets the `checked` attribute on the element, if the expression inside `ngChecked` is truthy. + * + * Note that this directive should not be used together with {@link ngModel `ngModel`}, + * as this can lead to unexpected behavior. + * + * ### Why do we need `ngChecked`? + * * The HTML specification does not require browsers to preserve the values of boolean attributes * such as checked. (Their presence means true and their absence means false.) * If we put an Angular interpolation expression into such an attribute then the @@ -15885,8 +19630,8 @@ var htmlAnchorDirective = valueFn({ * @example - Check me to check both:
- +
+
it('should check both checkBoxes', function() { @@ -15899,7 +19644,7 @@ var htmlAnchorDirective = valueFn({ * * @element INPUT * @param {expression} ngChecked If the {@link guide/expression expression} is truthy, - * then special attribute "checked" will be set on the element + * then the `checked` attribute will be set on the element */ @@ -15920,8 +19665,8 @@ var htmlAnchorDirective = valueFn({ * @example - Check me to make text readonly:
- +
+
it('should toggle readonly attr', function() { @@ -15956,8 +19701,8 @@ var htmlAnchorDirective = valueFn({ * @example - Check me to select:
-
+ @@ -15993,7 +19738,7 @@ var htmlAnchorDirective = valueFn({ * @example - Check me check multiple:
+
Show/Hide me
@@ -16014,26 +19759,62 @@ var htmlAnchorDirective = valueFn({ var ngAttributeAliasDirectives = {}; - // boolean attrs are evaluated forEach(BOOLEAN_ATTR, function(propName, attrName) { // binding to multiple is not supported if (propName == "multiple") return; + function defaultLinkFn(scope, element, attr) { + scope.$watch(attr[normalized], function ngBooleanAttrWatchAction(value) { + attr.$set(attrName, !!value); + }); + } + var normalized = directiveNormalize('ng-' + attrName); + var linkFn = defaultLinkFn; + + if (propName === 'checked') { + linkFn = function(scope, element, attr) { + // ensuring ngChecked doesn't interfere with ngModel when both are set on the same input + if (attr.ngModel !== attr[normalized]) { + defaultLinkFn(scope, element, attr); + } + }; + } + ngAttributeAliasDirectives[normalized] = function() { + return { + restrict: 'A', + priority: 100, + link: linkFn + }; + }; +}); + +// aliased input attrs are evaluated +forEach(ALIASED_ATTR, function(htmlAttr, ngAttr) { + ngAttributeAliasDirectives[ngAttr] = function() { return { priority: 100, link: function(scope, element, attr) { - scope.$watch(attr[normalized], function ngBooleanAttrWatchAction(value) { - attr.$set(attrName, !!value); + //special case ngPattern when a literal regular expression value + //is used as the expression (this way we don't have to watch anything). + if (ngAttr === "ngPattern" && attr.ngPattern.charAt(0) == "/") { + var match = attr.ngPattern.match(REGEX_STRING_REGEXP); + if (match) { + attr.$set("ngPattern", new RegExp(match[1], match[2])); + return; + } + } + + scope.$watch(attr[ngAttr], function ngAttrAliasWatchAction(value) { + attr.$set(ngAttr, value); }); } }; }; }); - // ng-src, ng-srcset, ng-href are interpolated forEach(['src', 'srcset', 'href'], function(attrName) { var normalized = directiveNormalize('ng-' + attrName); @@ -16072,14 +19853,22 @@ forEach(['src', 'srcset', 'href'], function(attrName) { }; }); -/* global -nullFormCtrl */ +/* global -nullFormCtrl, -SUBMITTED_CLASS, addSetValidityMethod: true + */ var nullFormCtrl = { $addControl: noop, + $$renameControl: nullFormRenameControl, $removeControl: noop, $setValidity: noop, $setDirty: noop, - $setPristine: noop -}; + $setPristine: noop, + $setSubmitted: noop +}, +SUBMITTED_CLASS = 'ng-submitted'; + +function nullFormRenameControl(control, name) { + control.$name = name; +} /** * @ngdoc type @@ -16089,13 +19878,13 @@ var nullFormCtrl = { * @property {boolean} $dirty True if user has already interacted with the form. * @property {boolean} $valid True if all of the containing forms and controls are valid. * @property {boolean} $invalid True if at least one containing control or form is invalid. + * @property {boolean} $submitted True if user has submitted the form even if its invalid. * - * @property {Object} $error Is an object hash, containing references to all invalid controls or - * forms, where: + * @property {Object} $error Is an object hash, containing references to controls or + * forms with failing validators, where: * * - keys are validation tokens (error names), - * - values are arrays of controls or forms that are invalid for given error name. - * + * - values are arrays of controls or forms that have a failing validator for given error name. * * Built-in validation tokens: * @@ -16108,6 +19897,11 @@ var nullFormCtrl = { * - `pattern` * - `required` * - `url` + * - `date` + * - `datetimelocal` + * - `time` + * - `week` + * - `month` * * @description * `FormController` keeps track of all its controls and nested forms as well as the state of them, @@ -16118,33 +19912,59 @@ var nullFormCtrl = { * */ //asks for $scope to fool the BC controller module -FormController.$inject = ['$element', '$attrs', '$scope', '$animate']; -function FormController(element, attrs, $scope, $animate) { +FormController.$inject = ['$element', '$attrs', '$scope', '$animate', '$interpolate']; +function FormController(element, attrs, $scope, $animate, $interpolate) { var form = this, - parentForm = element.parent().controller('form') || nullFormCtrl, - invalidCount = 0, // used to easily determine if we are valid - errors = form.$error = {}, controls = []; + var parentForm = form.$$parentForm = element.parent().controller('form') || nullFormCtrl; + // init state - form.$name = attrs.name || attrs.ngForm; + form.$error = {}; + form.$$success = {}; + form.$pending = undefined; + form.$name = $interpolate(attrs.name || attrs.ngForm || '')($scope); form.$dirty = false; form.$pristine = true; form.$valid = true; form.$invalid = false; + form.$submitted = false; parentForm.$addControl(form); - // Setup initial state of the control - element.addClass(PRISTINE_CLASS); - toggleValidCss(true); + /** + * @ngdoc method + * @name form.FormController#$rollbackViewValue + * + * @description + * Rollback all form controls pending updates to the `$modelValue`. + * + * Updates may be pending by a debounced event or because the input is waiting for a some future + * event defined in `ng-model-options`. This method is typically needed by the reset button of + * a form that uses `ng-model-options` to pend updates. + */ + form.$rollbackViewValue = function() { + forEach(controls, function(control) { + control.$rollbackViewValue(); + }); + }; - // convenience method for easy toggling of classes - function toggleValidCss(isValid, validationErrorKey) { - validationErrorKey = validationErrorKey ? '-' + snake_case(validationErrorKey, '-') : ''; - $animate.removeClass(element, (isValid ? INVALID_CLASS : VALID_CLASS) + validationErrorKey); - $animate.addClass(element, (isValid ? VALID_CLASS : INVALID_CLASS) + validationErrorKey); - } + /** + * @ngdoc method + * @name form.FormController#$commitViewValue + * + * @description + * Commit all form controls pending updates to the `$modelValue`. + * + * Updates may be pending by a debounced event or because the input is waiting for a some future + * event defined in `ng-model-options`. This method is rarely needed as `NgModelController` + * usually handles calling this in response to input events. + */ + form.$commitViewValue = function() { + forEach(controls, function(control) { + control.$commitViewValue(); + }); + }; /** * @ngdoc method @@ -16166,6 +19986,17 @@ function FormController(element, attrs, $scope, $animate) { } }; + // Private API: rename a form control + form.$$renameControl = function(control, newName) { + var oldName = control.$name; + + if (form[oldName] === control) { + delete form[oldName]; + } + form[newName] = control; + control.$name = newName; + }; + /** * @ngdoc method * @name form.FormController#$removeControl @@ -16179,13 +20010,20 @@ function FormController(element, attrs, $scope, $animate) { if (control.$name && form[control.$name] === control) { delete form[control.$name]; } - forEach(errors, function(queue, validationToken) { - form.$setValidity(validationToken, true, control); + forEach(form.$pending, function(value, name) { + form.$setValidity(name, null, control); + }); + forEach(form.$error, function(value, name) { + form.$setValidity(name, null, control); + }); + forEach(form.$$success, function(value, name) { + form.$setValidity(name, null, control); }); arrayRemove(controls, control); }; + /** * @ngdoc method * @name form.FormController#$setValidity @@ -16195,43 +20033,33 @@ function FormController(element, attrs, $scope, $animate) { * * This method will also propagate to parent forms. */ - form.$setValidity = function(validationToken, isValid, control) { - var queue = errors[validationToken]; - - if (isValid) { - if (queue) { - arrayRemove(queue, control); - if (!queue.length) { - invalidCount--; - if (!invalidCount) { - toggleValidCss(isValid); - form.$valid = true; - form.$invalid = false; - } - errors[validationToken] = false; - toggleValidCss(true, validationToken); - parentForm.$setValidity(validationToken, true, form); + addSetValidityMethod({ + ctrl: this, + $element: element, + set: function(object, property, controller) { + var list = object[property]; + if (!list) { + object[property] = [controller]; + } else { + var index = list.indexOf(controller); + if (index === -1) { + list.push(controller); } } - - } else { - if (!invalidCount) { - toggleValidCss(isValid); + }, + unset: function(object, property, controller) { + var list = object[property]; + if (!list) { + return; } - if (queue) { - if (includes(queue, control)) return; - } else { - errors[validationToken] = queue = []; - invalidCount++; - toggleValidCss(false, validationToken); - parentForm.$setValidity(validationToken, false, form); + arrayRemove(list, controller); + if (list.length === 0) { + delete object[property]; } - queue.push(control); - - form.$valid = false; - form.$invalid = true; - } - }; + }, + parentForm: parentForm, + $animate: $animate + }); /** * @ngdoc method @@ -16265,17 +20093,48 @@ function FormController(element, attrs, $scope, $animate) { * Setting a form back to a pristine state is often useful when we want to 'reuse' a form after * saving or resetting it. */ - form.$setPristine = function () { - $animate.removeClass(element, DIRTY_CLASS); - $animate.addClass(element, PRISTINE_CLASS); + form.$setPristine = function() { + $animate.setClass(element, PRISTINE_CLASS, DIRTY_CLASS + ' ' + SUBMITTED_CLASS); form.$dirty = false; form.$pristine = true; + form.$submitted = false; forEach(controls, function(control) { control.$setPristine(); }); }; -} + /** + * @ngdoc method + * @name form.FormController#$setUntouched + * + * @description + * Sets the form to its untouched state. + * + * This method can be called to remove the 'ng-touched' class and set the form controls to their + * untouched state (ng-untouched class). + * + * Setting a form controls back to their untouched state is often useful when setting the form + * back to its pristine state. + */ + form.$setUntouched = function() { + forEach(controls, function(control) { + control.$setUntouched(); + }); + }; + + /** + * @ngdoc method + * @name form.FormController#$setSubmitted + * + * @description + * Sets the form to its submitted state. + */ + form.$setSubmitted = function() { + $animate.addClass(element, SUBMITTED_CLASS); + form.$submitted = true; + parentForm.$setSubmitted(); + }; +} /** * @ngdoc directive @@ -16310,7 +20169,7 @@ function FormController(element, attrs, $scope, $animate) { * * # Alias: {@link ng.directive:ngForm `ngForm`} * - * In Angular forms can be nested. This means that the outer form is valid when all of the child + * In Angular, forms can be nested. This means that the outer form is valid when all of the child * forms are valid as well. However, browsers do not allow nesting of `
` elements, so * Angular provides the {@link ng.directive:ngForm `ngForm`} directive which behaves identically to * `` but can be nested. This allows you to have nested forms, which is very useful when @@ -16325,6 +20184,7 @@ function FormController(element, attrs, $scope, $animate) { * - `ng-invalid` is set if the form is invalid. * - `ng-pristine` is set if the form is pristine. * - `ng-dirty` is set if the form is dirty. + * - `ng-submitted` is set if the form was submitted. * * Keep in mind that ngAnimate can detect each of these classes when added and removed. * @@ -16358,8 +20218,9 @@ function FormController(element, attrs, $scope, $animate) { * hitting enter in any of the input fields will trigger the click handler on the *first* button or * input[type=submit] (`ngClick`) *and* a submit handler on the enclosing form (`ngSubmit`) * - * @param {string=} name Name of the form. If specified, the form controller will be published into - * related scope, under this name. + * Any pending `ngModelOptions` changes will take place immediately when an enclosing form is + * submitted. Note that `ngClick` events will occur before the model is updated. Use `ngSubmit` + * to have access to the updated model. * * ## Animation Hooks * @@ -16407,11 +20268,11 @@ function FormController(element, attrs, $scope, $animate) { userType: Required!
- userType = {{userType}}
- myForm.input.$valid = {{myForm.input.$valid}}
- myForm.input.$error = {{myForm.input.$error}}
- myForm.$valid = {{myForm.$valid}}
- myForm.$error.required = {{!!myForm.$error.required}}
+ userType = {{userType}}
+ myForm.input.$valid = {{myForm.input.$valid}}
+ myForm.input.$error = {{myForm.input.$error}}
+ myForm.$valid = {{myForm.$valid}}
+ myForm.$error.required = {{!!myForm.$error.required}}
@@ -16437,6 +20298,8 @@ function FormController(element, attrs, $scope, $animate) {
* + * @param {string=} name Name of the form. If specified, the form controller will be published into + * related scope, under this name. */ var formDirectiveFactory = function(isNgForm) { return ['$timeout', function($timeout) { @@ -16444,48 +20307,60 @@ var formDirectiveFactory = function(isNgForm) { name: 'form', restrict: isNgForm ? 'EAC' : 'E', controller: FormController, - compile: function() { + compile: function ngFormCompile(formElement, attr) { + // Setup initial state of the control + formElement.addClass(PRISTINE_CLASS).addClass(VALID_CLASS); + + var nameAttr = attr.name ? 'name' : (isNgForm && attr.ngForm ? 'ngForm' : false); + return { - pre: function(scope, formElement, attr, controller) { - if (!attr.action) { + pre: function ngFormPreLink(scope, formElement, attr, controller) { + // if `action` attr is not present on the form, prevent the default action (submission) + if (!('action' in attr)) { // we can't use jq events because if a form is destroyed during submission the default // action is not prevented. see #1238 // // IE 9 is not affected because it doesn't fire a submit event and try to do a full // page reload if the form was destroyed by submission of the form via a click handler // on a button in the form. Looks like an IE9 specific bug. - var preventDefaultListener = function(event) { - event.preventDefault - ? event.preventDefault() - : event.returnValue = false; // IE + var handleFormSubmission = function(event) { + scope.$apply(function() { + controller.$commitViewValue(); + controller.$setSubmitted(); + }); + + event.preventDefault(); }; - addEventListenerFn(formElement[0], 'submit', preventDefaultListener); + addEventListenerFn(formElement[0], 'submit', handleFormSubmission); // unregister the preventDefault listener so that we don't not leak memory but in a // way that will achieve the prevention of the default action. formElement.on('$destroy', function() { $timeout(function() { - removeEventListenerFn(formElement[0], 'submit', preventDefaultListener); + removeEventListenerFn(formElement[0], 'submit', handleFormSubmission); }, 0, false); }); } - var parentFormCtrl = formElement.parent().controller('form'), - alias = attr.name || attr.ngForm; + var parentFormCtrl = controller.$$parentForm; - if (alias) { - setter(scope, alias, controller, alias); - } - if (parentFormCtrl) { - formElement.on('$destroy', function() { - parentFormCtrl.$removeControl(controller); - if (alias) { - setter(scope, alias, undefined, alias); - } - extend(controller, nullFormCtrl); //stop propagating child destruction handlers upwards + if (nameAttr) { + setter(scope, controller.$name, controller, controller.$name); + attr.$observe(nameAttr, function(newValue) { + if (controller.$name === newValue) return; + setter(scope, controller.$name, undefined, controller.$name); + parentFormCtrl.$$renameControl(controller, newValue); + setter(scope, controller.$name, controller, controller.$name); }); } + formElement.on('$destroy', function() { + parentFormCtrl.$removeControl(controller); + if (nameAttr) { + setter(scope, attr[nameAttr], undefined, controller.$name); + } + extend(controller, nullFormCtrl); //stop propagating child destruction handlers upwards + }); } }; } @@ -16498,15 +20373,25 @@ var formDirectiveFactory = function(isNgForm) { var formDirective = formDirectiveFactory(); var ngFormDirective = formDirectiveFactory(true); -/* global VALID_CLASS: true, - INVALID_CLASS: true, - PRISTINE_CLASS: true, - DIRTY_CLASS: true +/* global VALID_CLASS: false, + INVALID_CLASS: false, + PRISTINE_CLASS: false, + DIRTY_CLASS: false, + UNTOUCHED_CLASS: false, + TOUCHED_CLASS: false, + $ngModelMinErr: false, */ +// Regex code is obtained from SO: https://stackoverflow.com/questions/3143070/javascript-regex-iso-datetime#answer-3143231 +var ISO_DATE_REGEXP = /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/; var URL_REGEXP = /^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/; var EMAIL_REGEXP = /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i; -var NUMBER_REGEXP = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/; +var NUMBER_REGEXP = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/; +var DATE_REGEXP = /^(\d{4})-(\d{2})-(\d{2})$/; +var DATETIMELOCAL_REGEXP = /^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/; +var WEEK_REGEXP = /^(\d{4})-W(\d\d)$/; +var MONTH_REGEXP = /^(\d{4})-(\d\d)$/; +var TIME_REGEXP = /^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/; var inputType = { @@ -16517,7 +20402,6 @@ var inputType = { * @description * Standard HTML text input with angular data binding, inherited by most of the `input` elements. * - * *NOTE* Not every feature offered is available for all input types. * * @param {string} ngModel Assignable angular expression to data-bind to. * @param {string=} name Property name of the form under which the control is published. @@ -16528,10 +20412,20 @@ var inputType = { * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than * minlength. * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than - * maxlength. - * @param {string=} ngPattern Sets `pattern` validation error key if the value does not match the - * RegExp pattern expression. Expected value is `/regexp/` for inline patterns or `regexp` for - * patterns defined as scope expressions. + * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of + * any length. + * @param {string=} pattern Similar to `ngPattern` except that the attribute value is the actual string + * that contains the regular expression body that will be converted to a regular expression + * as in the ngPattern directive. + * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match + * a RegExp found by evaluating the Angular expression given in the attribute value. + * If the expression evaluates to a RegExp object, then this is used directly. + * If the expression evaluates to a string, then it will be converted to a RegExp + * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to + * `new RegExp('^abc$')`.
+ * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to + * start at the index of the last search's match, thus not taking the whole input value into + * account. * @param {string=} ngChange Angular expression to be executed when input changes due to user * interaction with the input element. * @param {boolean=} [ngTrim=true] If set to false Angular will not automatically trim the input. @@ -16544,19 +20438,24 @@ var inputType = {
- Single word: - - Required! - - Single word only! - - text = {{text}}
+ +
+ + Required! + + Single word only! +
+ text = {{example.text}}
myForm.input.$valid = {{myForm.input.$valid}}
myForm.input.$error = {{myForm.input.$error}}
myForm.$valid = {{myForm.$valid}}
@@ -16564,9 +20463,9 @@ var inputType = {
- var text = element(by.binding('text')); + var text = element(by.binding('example.text')); var valid = element(by.binding('myForm.input.$valid')); - var input = element(by.model('text')); + var input = element(by.model('example.text')); it('should initialize to model', function() { expect(text.getText()).toContain('guest'); @@ -16592,6 +20491,485 @@ var inputType = { */ 'text': textInputType, + /** + * @ngdoc input + * @name input[date] + * + * @description + * Input with date validation and transformation. In browsers that do not yet support + * the HTML5 date input, a text element will be used. In that case, text must be entered in a valid ISO-8601 + * date format (yyyy-MM-dd), for example: `2009-01-06`. Since many + * modern browsers do not yet support this input type, it is important to provide cues to users on the + * expected input format via a placeholder or label. + * + * The model must always be a Date object, otherwise Angular will throw an error. + * Invalid `Date` objects (dates whose `getTime()` is `NaN`) will be rendered as an empty string. + * + * The timezone to be used to read/write the `Date` instance in the model can be defined using + * {@link ng.directive:ngModelOptions ngModelOptions}. By default, this is the timezone of the browser. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. This must be a + * valid ISO date string (yyyy-MM-dd). + * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`. This must be + * a valid ISO date string (yyyy-MM-dd). + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
+ + +
+ + Required! + + Not a valid date! +
+ value = {{example.value | date: "yyyy-MM-dd"}}
+ myForm.input.$valid = {{myForm.input.$valid}}
+ myForm.input.$error = {{myForm.input.$error}}
+ myForm.$valid = {{myForm.$valid}}
+ myForm.$error.required = {{!!myForm.$error.required}}
+ +
+ + var value = element(by.binding('example.value | date: "yyyy-MM-dd"')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('example.value')); + + // currently protractor/webdriver does not support + // sending keys to all known HTML5 input controls + // for various browsers (see https://github.com/angular/protractor/issues/562). + function setInput(val) { + // set the value of the element and force validation. + var scr = "var ipt = document.getElementById('exampleInput'); " + + "ipt.value = '" + val + "';" + + "angular.element(ipt).scope().$apply(function(s) { s.myForm[ipt.name].$setViewValue('" + val + "'); });"; + browser.executeScript(scr); + } + + it('should initialize to model', function() { + expect(value.getText()).toContain('2013-10-22'); + expect(valid.getText()).toContain('myForm.input.$valid = true'); + }); + + it('should be invalid if empty', function() { + setInput(''); + expect(value.getText()).toEqual('value ='); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + + it('should be invalid if over max', function() { + setInput('2015-01-01'); + expect(value.getText()).toContain(''); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + +
+ */ + 'date': createDateInputType('date', DATE_REGEXP, + createDateParser(DATE_REGEXP, ['yyyy', 'MM', 'dd']), + 'yyyy-MM-dd'), + + /** + * @ngdoc input + * @name input[datetime-local] + * + * @description + * Input with datetime validation and transformation. In browsers that do not yet support + * the HTML5 date input, a text element will be used. In that case, the text must be entered in a valid ISO-8601 + * local datetime format (yyyy-MM-ddTHH:mm:ss), for example: `2010-12-28T14:57:00`. + * + * The model must always be a Date object, otherwise Angular will throw an error. + * Invalid `Date` objects (dates whose `getTime()` is `NaN`) will be rendered as an empty string. + * + * The timezone to be used to read/write the `Date` instance in the model can be defined using + * {@link ng.directive:ngModelOptions ngModelOptions}. By default, this is the timezone of the browser. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. This must be a + * valid ISO datetime format (yyyy-MM-ddTHH:mm:ss). + * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`. This must be + * a valid ISO datetime format (yyyy-MM-ddTHH:mm:ss). + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
+ + +
+ + Required! + + Not a valid date! +
+ value = {{example.value | date: "yyyy-MM-ddTHH:mm:ss"}}
+ myForm.input.$valid = {{myForm.input.$valid}}
+ myForm.input.$error = {{myForm.input.$error}}
+ myForm.$valid = {{myForm.$valid}}
+ myForm.$error.required = {{!!myForm.$error.required}}
+ +
+ + var value = element(by.binding('example.value | date: "yyyy-MM-ddTHH:mm:ss"')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('example.value')); + + // currently protractor/webdriver does not support + // sending keys to all known HTML5 input controls + // for various browsers (https://github.com/angular/protractor/issues/562). + function setInput(val) { + // set the value of the element and force validation. + var scr = "var ipt = document.getElementById('exampleInput'); " + + "ipt.value = '" + val + "';" + + "angular.element(ipt).scope().$apply(function(s) { s.myForm[ipt.name].$setViewValue('" + val + "'); });"; + browser.executeScript(scr); + } + + it('should initialize to model', function() { + expect(value.getText()).toContain('2010-12-28T14:57:00'); + expect(valid.getText()).toContain('myForm.input.$valid = true'); + }); + + it('should be invalid if empty', function() { + setInput(''); + expect(value.getText()).toEqual('value ='); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + + it('should be invalid if over max', function() { + setInput('2015-01-01T23:59:00'); + expect(value.getText()).toContain(''); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + +
+ */ + 'datetime-local': createDateInputType('datetimelocal', DATETIMELOCAL_REGEXP, + createDateParser(DATETIMELOCAL_REGEXP, ['yyyy', 'MM', 'dd', 'HH', 'mm', 'ss', 'sss']), + 'yyyy-MM-ddTHH:mm:ss.sss'), + + /** + * @ngdoc input + * @name input[time] + * + * @description + * Input with time validation and transformation. In browsers that do not yet support + * the HTML5 date input, a text element will be used. In that case, the text must be entered in a valid ISO-8601 + * local time format (HH:mm:ss), for example: `14:57:00`. Model must be a Date object. This binding will always output a + * Date object to the model of January 1, 1970, or local date `new Date(1970, 0, 1, HH, mm, ss)`. + * + * The model must always be a Date object, otherwise Angular will throw an error. + * Invalid `Date` objects (dates whose `getTime()` is `NaN`) will be rendered as an empty string. + * + * The timezone to be used to read/write the `Date` instance in the model can be defined using + * {@link ng.directive:ngModelOptions ngModelOptions}. By default, this is the timezone of the browser. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. This must be a + * valid ISO time format (HH:mm:ss). + * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`. This must be a + * valid ISO time format (HH:mm:ss). + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
+ + +
+ + Required! + + Not a valid date! +
+ value = {{example.value | date: "HH:mm:ss"}}
+ myForm.input.$valid = {{myForm.input.$valid}}
+ myForm.input.$error = {{myForm.input.$error}}
+ myForm.$valid = {{myForm.$valid}}
+ myForm.$error.required = {{!!myForm.$error.required}}
+ +
+ + var value = element(by.binding('example.value | date: "HH:mm:ss"')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('example.value')); + + // currently protractor/webdriver does not support + // sending keys to all known HTML5 input controls + // for various browsers (https://github.com/angular/protractor/issues/562). + function setInput(val) { + // set the value of the element and force validation. + var scr = "var ipt = document.getElementById('exampleInput'); " + + "ipt.value = '" + val + "';" + + "angular.element(ipt).scope().$apply(function(s) { s.myForm[ipt.name].$setViewValue('" + val + "'); });"; + browser.executeScript(scr); + } + + it('should initialize to model', function() { + expect(value.getText()).toContain('14:57:00'); + expect(valid.getText()).toContain('myForm.input.$valid = true'); + }); + + it('should be invalid if empty', function() { + setInput(''); + expect(value.getText()).toEqual('value ='); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + + it('should be invalid if over max', function() { + setInput('23:59:00'); + expect(value.getText()).toContain(''); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + +
+ */ + 'time': createDateInputType('time', TIME_REGEXP, + createDateParser(TIME_REGEXP, ['HH', 'mm', 'ss', 'sss']), + 'HH:mm:ss.sss'), + + /** + * @ngdoc input + * @name input[week] + * + * @description + * Input with week-of-the-year validation and transformation to Date. In browsers that do not yet support + * the HTML5 week input, a text element will be used. In that case, the text must be entered in a valid ISO-8601 + * week format (yyyy-W##), for example: `2013-W02`. + * + * The model must always be a Date object, otherwise Angular will throw an error. + * Invalid `Date` objects (dates whose `getTime()` is `NaN`) will be rendered as an empty string. + * + * The timezone to be used to read/write the `Date` instance in the model can be defined using + * {@link ng.directive:ngModelOptions ngModelOptions}. By default, this is the timezone of the browser. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. This must be a + * valid ISO week format (yyyy-W##). + * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`. This must be + * a valid ISO week format (yyyy-W##). + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
+ +
+ + Required! + + Not a valid date! +
+ value = {{example.value | date: "yyyy-Www"}}
+ myForm.input.$valid = {{myForm.input.$valid}}
+ myForm.input.$error = {{myForm.input.$error}}
+ myForm.$valid = {{myForm.$valid}}
+ myForm.$error.required = {{!!myForm.$error.required}}
+ +
+ + var value = element(by.binding('example.value | date: "yyyy-Www"')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('example.value')); + + // currently protractor/webdriver does not support + // sending keys to all known HTML5 input controls + // for various browsers (https://github.com/angular/protractor/issues/562). + function setInput(val) { + // set the value of the element and force validation. + var scr = "var ipt = document.getElementById('exampleInput'); " + + "ipt.value = '" + val + "';" + + "angular.element(ipt).scope().$apply(function(s) { s.myForm[ipt.name].$setViewValue('" + val + "'); });"; + browser.executeScript(scr); + } + + it('should initialize to model', function() { + expect(value.getText()).toContain('2013-W01'); + expect(valid.getText()).toContain('myForm.input.$valid = true'); + }); + + it('should be invalid if empty', function() { + setInput(''); + expect(value.getText()).toEqual('value ='); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + + it('should be invalid if over max', function() { + setInput('2015-W01'); + expect(value.getText()).toContain(''); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + +
+ */ + 'week': createDateInputType('week', WEEK_REGEXP, weekParser, 'yyyy-Www'), + + /** + * @ngdoc input + * @name input[month] + * + * @description + * Input with month validation and transformation. In browsers that do not yet support + * the HTML5 month input, a text element will be used. In that case, the text must be entered in a valid ISO-8601 + * month format (yyyy-MM), for example: `2009-01`. + * + * The model must always be a Date object, otherwise Angular will throw an error. + * Invalid `Date` objects (dates whose `getTime()` is `NaN`) will be rendered as an empty string. + * If the model is not set to the first of the month, the next view to model update will set it + * to the first of the month. + * + * The timezone to be used to read/write the `Date` instance in the model can be defined using + * {@link ng.directive:ngModelOptions ngModelOptions}. By default, this is the timezone of the browser. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. This must be + * a valid ISO month format (yyyy-MM). + * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`. This must + * be a valid ISO month format (yyyy-MM). + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
+ + +
+ + Required! + + Not a valid month! +
+ value = {{example.value | date: "yyyy-MM"}}
+ myForm.input.$valid = {{myForm.input.$valid}}
+ myForm.input.$error = {{myForm.input.$error}}
+ myForm.$valid = {{myForm.$valid}}
+ myForm.$error.required = {{!!myForm.$error.required}}
+ +
+ + var value = element(by.binding('example.value | date: "yyyy-MM"')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('example.value')); + + // currently protractor/webdriver does not support + // sending keys to all known HTML5 input controls + // for various browsers (https://github.com/angular/protractor/issues/562). + function setInput(val) { + // set the value of the element and force validation. + var scr = "var ipt = document.getElementById('exampleInput'); " + + "ipt.value = '" + val + "';" + + "angular.element(ipt).scope().$apply(function(s) { s.myForm[ipt.name].$setViewValue('" + val + "'); });"; + browser.executeScript(scr); + } + + it('should initialize to model', function() { + expect(value.getText()).toContain('2013-10'); + expect(valid.getText()).toContain('myForm.input.$valid = true'); + }); + + it('should be invalid if empty', function() { + setInput(''); + expect(value.getText()).toEqual('value ='); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + + it('should be invalid if over max', function() { + setInput('2015-01'); + expect(value.getText()).toContain(''); + expect(valid.getText()).toContain('myForm.input.$valid = false'); + }); + +
+ */ + 'month': createDateInputType('month', MONTH_REGEXP, + createDateParser(MONTH_REGEXP, ['yyyy', 'MM']), + 'yyyy-MM'), /** * @ngdoc input @@ -16601,6 +20979,22 @@ var inputType = { * Text input with number validation and transformation. Sets the `number` validation * error if not a valid number. * + *
+ * The model must always be of type `number` otherwise Angular will throw an error. + * Be aware that a string containing a number is not enough. See the {@link ngModel:numfmt} + * error docs for more information and an example of how to convert your model if necessary. + *
+ * + * ## Issues with HTML5 constraint validation + * + * In browsers that follow the + * [HTML5 specification](https://html.spec.whatwg.org/multipage/forms.html#number-state-%28type=number%29), + * `input[number]` does not work as expected with {@link ngModelOptions `ngModelOptions.allowInvalid`}. + * If a non-number is entered in the input, the browser will report the value as an empty string, + * which means the view / model values in `ngModel` and subsequently the scope value + * will also be an empty string. + * + * * @param {string} ngModel Assignable angular expression to data-bind to. * @param {string=} name Property name of the form under which the control is published. * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. @@ -16612,10 +21006,20 @@ var inputType = { * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than * minlength. * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than - * maxlength. - * @param {string=} ngPattern Sets `pattern` validation error key if the value does not match the - * RegExp pattern expression. Expected value is `/regexp/` for inline patterns or `regexp` for - * patterns defined as scope expressions. + * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of + * any length. + * @param {string=} pattern Similar to `ngPattern` except that the attribute value is the actual string + * that contains the regular expression body that will be converted to a regular expression + * as in the ngPattern directive. + * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match + * a RegExp found by evaluating the Angular expression given in the attribute value. + * If the expression evaluates to a RegExp object, then this is used directly. + * If the expression evaluates to a string, then it will be converted to a RegExp + * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to + * `new RegExp('^abc$')`.
+ * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to + * start at the index of the last search's match, thus not taking the whole input value into + * account. * @param {string=} ngChange Angular expression to be executed when input changes due to user * interaction with the input element. * @@ -16625,17 +21029,23 @@ var inputType = {
- Number: - - Required! - - Not valid number! - value = {{value}}
+ +
+ + Required! + + Not valid number! +
+ value = {{example.value}}
myForm.input.$valid = {{myForm.input.$valid}}
myForm.input.$error = {{myForm.input.$error}}
myForm.$valid = {{myForm.$valid}}
@@ -16643,9 +21053,9 @@ var inputType = {
- var value = element(by.binding('value')); + var value = element(by.binding('example.value')); var valid = element(by.binding('myForm.input.$valid')); - var input = element(by.model('value')); + var input = element(by.model('example.value')); it('should initialize to model', function() { expect(value.getText()).toContain('12'); @@ -16679,6 +21089,12 @@ var inputType = { * Text input with URL validation. Sets the `url` validation error key if the content is not a * valid URL. * + *
+ * **Note:** `input[url]` uses a regex to validate urls that is derived from the regex + * used in Chromium. If you need stricter validation, you can use `ng-pattern` or modify + * the built-in validators (see the {@link guide/forms Forms guide}) + *
+ * * @param {string} ngModel Assignable angular expression to data-bind to. * @param {string=} name Property name of the form under which the control is published. * @param {string=} required Sets `required` validation error key if the value is not entered. @@ -16688,10 +21104,20 @@ var inputType = { * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than * minlength. * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than - * maxlength. - * @param {string=} ngPattern Sets `pattern` validation error key if the value does not match the - * RegExp pattern expression. Expected value is `/regexp/` for inline patterns or `regexp` for - * patterns defined as scope expressions. + * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of + * any length. + * @param {string=} pattern Similar to `ngPattern` except that the attribute value is the actual string + * that contains the regular expression body that will be converted to a regular expression + * as in the ngPattern directive. + * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match + * a RegExp found by evaluating the Angular expression given in the attribute value. + * If the expression evaluates to a RegExp object, then this is used directly. + * If the expression evaluates to a string, then it will be converted to a RegExp + * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to + * `new RegExp('^abc$')`.
+ * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to + * start at the index of the last search's match, thus not taking the whole input value into + * account. * @param {string=} ngChange Angular expression to be executed when input changes due to user * interaction with the input element. * @@ -16701,16 +21127,22 @@ var inputType = {
- URL: - - Required! - - Not valid url! - text = {{text}}
+
- var text = element(by.binding('text')); + var text = element(by.binding('url.text')); var valid = element(by.binding('myForm.input.$valid')); - var input = element(by.model('text')); + var input = element(by.model('url.text')); it('should initialize to model', function() { expect(text.getText()).toContain('http://google.com'); @@ -16756,6 +21188,12 @@ var inputType = { * Text input with email validation. Sets the `email` validation error key if not a valid email * address. * + *
+ * **Note:** `input[email]` uses a regex to validate email addresses that is derived from the regex + * used in Chromium. If you need stricter validation (e.g. requiring a top-level domain), you can + * use `ng-pattern` or modify the built-in validators (see the {@link guide/forms Forms guide}) + *
+ * * @param {string} ngModel Assignable angular expression to data-bind to. * @param {string=} name Property name of the form under which the control is published. * @param {string=} required Sets `required` validation error key if the value is not entered. @@ -16765,10 +21203,20 @@ var inputType = { * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than * minlength. * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than - * maxlength. - * @param {string=} ngPattern Sets `pattern` validation error key if the value does not match the - * RegExp pattern expression. Expected value is `/regexp/` for inline patterns or `regexp` for - * patterns defined as scope expressions. + * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of + * any length. + * @param {string=} pattern Similar to `ngPattern` except that the attribute value is the actual string + * that contains the regular expression body that will be converted to a regular expression + * as in the ngPattern directive. + * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match + * a RegExp found by evaluating the Angular expression given in the attribute value. + * If the expression evaluates to a RegExp object, then this is used directly. + * If the expression evaluates to a string, then it will be converted to a RegExp + * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to + * `new RegExp('^abc$')`.
+ * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to + * start at the index of the last search's match, thus not taking the whole input value into + * account. * @param {string=} ngChange Angular expression to be executed when input changes due to user * interaction with the input element. * @@ -16778,16 +21226,22 @@ var inputType = {
- Email: - - Required! - - Not valid email! - text = {{text}}
+ +
+ + Required! + + Not valid email! +
+ text = {{email.text}}
myForm.input.$valid = {{myForm.input.$valid}}
myForm.input.$error = {{myForm.input.$error}}
myForm.$valid = {{myForm.$valid}}
@@ -16796,9 +21250,9 @@ var inputType = {
- var text = element(by.binding('text')); + var text = element(by.binding('email.text')); var valid = element(by.binding('myForm.input.$valid')); - var input = element(by.model('text')); + var input = element(by.model('email.text')); it('should initialize to model', function() { expect(text.getText()).toContain('me@example.com'); @@ -16832,12 +21286,15 @@ var inputType = { * HTML radio button. * * @param {string} ngModel Assignable angular expression to data-bind to. - * @param {string} value The value to which the expression should be set when selected. + * @param {string} value The value to which the `ngModel` expression should be set when selected. + * Note that `value` only supports `string` values, i.e. the scope model needs to be a string, + * too. Use `ngValue` if you need complex models (`number`, `object`, ...). * @param {string=} name Property name of the form under which the control is published. * @param {string=} ngChange Angular expression to be executed when input changes due to user * interaction with the input element. - * @param {string} ngValue Angular expression which sets the value to which the expression should - * be set when selected. + * @param {string} ngValue Angular expression to which `ngModel` will be be set when the radio + * is selected. Should be used instead of the `value` attribute if you need + * a non-string `ngModel` (`boolean`, `array`, ...). * * @example @@ -16845,7 +21302,9 @@ var inputType = {
- Red
- Green
- Blue
- color = {{color | json}}
+
+
+
+ color = {{color.name | json}}
Note that `ng-value="specialValue"` sets radio item's value to be the value of `$scope.specialValue`.
it('should change state', function() { - var color = element(by.binding('color')); + var color = element(by.binding('color.name')); expect(color.getText()).toContain('blue'); - element.all(by.model('color')).get(0).click(); + element.all(by.model('color.name')).get(0).click(); expect(color.getText()).toContain('red'); }); @@ -16885,8 +21353,8 @@ var inputType = { * * @param {string} ngModel Assignable angular expression to data-bind to. * @param {string=} name Property name of the form under which the control is published. - * @param {string=} ngTrueValue The value to which the expression should be set when selected. - * @param {string=} ngFalseValue The value to which the expression should be set when not selected. + * @param {expression=} ngTrueValue The value to which the expression should be set when selected. + * @param {expression=} ngFalseValue The value to which the expression should be set when not selected. * @param {string=} ngChange Angular expression to be executed when input changes due to user * interaction with the input element. * @@ -16896,28 +21364,34 @@ var inputType = {
- Value1:
- Value2:
- value1 = {{value1}}
- value2 = {{value2}}
+
+
+ value1 = {{checkboxModel.value1}}
+ value2 = {{checkboxModel.value2}}
it('should change state', function() { - var value1 = element(by.binding('value1')); - var value2 = element(by.binding('value2')); + var value1 = element(by.binding('checkboxModel.value1')); + var value2 = element(by.binding('checkboxModel.value2')); expect(value1.getText()).toContain('true'); expect(value2.getText()).toContain('YES'); - element(by.model('value1')).click(); - element(by.model('value2')).click(); + element(by.model('checkboxModel.value1')).click(); + element(by.model('checkboxModel.value2')).click(); expect(value1.getText()).toContain('false'); expect(value2.getText()).toContain('NO'); @@ -16934,50 +21408,19 @@ var inputType = { 'file': noop }; -// A helper function to call $setValidity and return the value / undefined, -// a pattern that is repeated a lot in the input validation logic. -function validate(ctrl, validatorName, validity, value){ - ctrl.$setValidity(validatorName, validity); - return validity ? value : undefined; -} - -function testFlags(validity, flags) { - var i, flag; - if (flags) { - for (i=0; i= minlength, value); - }; + if (parts) { + parts.shift(); + if (date) { + map = { + yyyy: date.getFullYear(), + MM: date.getMonth() + 1, + dd: date.getDate(), + HH: date.getHours(), + mm: date.getMinutes(), + ss: date.getSeconds(), + sss: date.getMilliseconds() / 1000 + }; + } else { + map = { yyyy: 1970, MM: 1, dd: 1, HH: 0, mm: 0, ss: 0, sss: 0 }; + } - ctrl.$parsers.push(minLengthValidator); - ctrl.$formatters.push(minLengthValidator); - } + forEach(parts, function(part, index) { + if (index < mapping.length) { + map[mapping[index]] = +part; + } + }); + return new Date(map.yyyy, map.MM - 1, map.dd, map.HH, map.mm, map.ss || 0, map.sss * 1000 || 0); + } + } - // max length validator - if (attr.ngMaxlength) { - var maxlength = int(attr.ngMaxlength); - var maxLengthValidator = function(value) { - return validate(ctrl, 'maxlength', ctrl.$isEmpty(value) || value.length <= maxlength, value); - }; + return NaN; + }; +} - ctrl.$parsers.push(maxLengthValidator); - ctrl.$formatters.push(maxLengthValidator); +function createDateInputType(type, regexp, parseDate, format) { + return function dynamicDateInputType(scope, element, attr, ctrl, $sniffer, $browser, $filter) { + badInputChecker(scope, element, attr, ctrl); + baseInputType(scope, element, attr, ctrl, $sniffer, $browser); + var timezone = ctrl && ctrl.$options && ctrl.$options.timezone; + var previousDate; + + ctrl.$$parserName = type; + ctrl.$parsers.push(function(value) { + if (ctrl.$isEmpty(value)) return null; + if (regexp.test(value)) { + // Note: We cannot read ctrl.$modelValue, as there might be a different + // parser/formatter in the processing chain so that the model + // contains some different data format! + var parsedDate = parseDate(value, previousDate); + if (timezone) { + parsedDate = convertTimezoneToLocal(parsedDate, timezone); + } + return parsedDate; + } + return undefined; + }); + + ctrl.$formatters.push(function(value) { + if (value && !isDate(value)) { + throw $ngModelMinErr('datefmt', 'Expected `{0}` to be a date', value); + } + if (isValidDate(value)) { + previousDate = value; + if (previousDate && timezone) { + previousDate = convertTimezoneToLocal(previousDate, timezone, true); + } + return $filter('date')(value, format, timezone); + } else { + previousDate = null; + return ''; + } + }); + + if (isDefined(attr.min) || attr.ngMin) { + var minVal; + ctrl.$validators.min = function(value) { + return !isValidDate(value) || isUndefined(minVal) || parseDate(value) >= minVal; + }; + attr.$observe('min', function(val) { + minVal = parseObservedDateValue(val); + ctrl.$validate(); + }); + } + + if (isDefined(attr.max) || attr.ngMax) { + var maxVal; + ctrl.$validators.max = function(value) { + return !isValidDate(value) || isUndefined(maxVal) || parseDate(value) <= maxVal; + }; + attr.$observe('max', function(val) { + maxVal = parseObservedDateValue(val); + ctrl.$validate(); + }); + } + + function isValidDate(value) { + // Invalid Date: getTime() returns NaN + return value && !(value.getTime && value.getTime() !== value.getTime()); + } + + function parseObservedDateValue(val) { + return isDefined(val) ? (isDate(val) ? val : parseDate(val)) : undefined; + } + }; +} + +function badInputChecker(scope, element, attr, ctrl) { + var node = element[0]; + var nativeValidation = ctrl.$$hasNativeValidators = isObject(node.validity); + if (nativeValidation) { + ctrl.$parsers.push(function(value) { + var validity = element.prop(VALIDITY_STATE_PROPERTY) || {}; + // Detect bug in FF35 for input[email] (https://bugzilla.mozilla.org/show_bug.cgi?id=1064430): + // - also sets validity.badInput (should only be validity.typeMismatch). + // - see http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#e-mail-state-(type=email) + // - can ignore this case as we can still read out the erroneous email... + return validity.badInput && !validity.typeMismatch ? undefined : value; + }); } } -var numberBadFlags = ['badInput']; - function numberInputType(scope, element, attr, ctrl, $sniffer, $browser) { - textInputType(scope, element, attr, ctrl, $sniffer, $browser); + badInputChecker(scope, element, attr, ctrl); + baseInputType(scope, element, attr, ctrl, $sniffer, $browser); + ctrl.$$parserName = 'number'; ctrl.$parsers.push(function(value) { - var empty = ctrl.$isEmpty(value); - if (empty || NUMBER_REGEXP.test(value)) { - ctrl.$setValidity('number', true); - return value === '' ? null : (empty ? value : parseFloat(value)); - } else { - ctrl.$setValidity('number', false); - return undefined; + if (ctrl.$isEmpty(value)) return null; + if (NUMBER_REGEXP.test(value)) return parseFloat(value); + return undefined; + }); + + ctrl.$formatters.push(function(value) { + if (!ctrl.$isEmpty(value)) { + if (!isNumber(value)) { + throw $ngModelMinErr('numfmt', 'Expected `{0}` to be a number', value); + } + value = value.toString(); } + return value; }); - addNativeHtml5Validators(ctrl, 'number', numberBadFlags, null, ctrl.$$validityState); - - ctrl.$formatters.push(function(value) { - return ctrl.$isEmpty(value) ? '' : '' + value; - }); - - if (attr.min) { - var minValidator = function(value) { - var min = parseFloat(attr.min); - return validate(ctrl, 'min', ctrl.$isEmpty(value) || value >= min, value); + if (isDefined(attr.min) || attr.ngMin) { + var minVal; + ctrl.$validators.min = function(value) { + return ctrl.$isEmpty(value) || isUndefined(minVal) || value >= minVal; }; - ctrl.$parsers.push(minValidator); - ctrl.$formatters.push(minValidator); + attr.$observe('min', function(val) { + if (isDefined(val) && !isNumber(val)) { + val = parseFloat(val, 10); + } + minVal = isNumber(val) && !isNaN(val) ? val : undefined; + // TODO(matsko): implement validateLater to reduce number of validations + ctrl.$validate(); + }); } - if (attr.max) { - var maxValidator = function(value) { - var max = parseFloat(attr.max); - return validate(ctrl, 'max', ctrl.$isEmpty(value) || value <= max, value); + if (isDefined(attr.max) || attr.ngMax) { + var maxVal; + ctrl.$validators.max = function(value) { + return ctrl.$isEmpty(value) || isUndefined(maxVal) || value <= maxVal; }; - ctrl.$parsers.push(maxValidator); - ctrl.$formatters.push(maxValidator); + attr.$observe('max', function(val) { + if (isDefined(val) && !isNumber(val)) { + val = parseFloat(val, 10); + } + maxVal = isNumber(val) && !isNaN(val) ? val : undefined; + // TODO(matsko): implement validateLater to reduce number of validations + ctrl.$validate(); + }); } - - ctrl.$formatters.push(function(value) { - return validate(ctrl, 'number', ctrl.$isEmpty(value) || isNumber(value), value); - }); } function urlInputType(scope, element, attr, ctrl, $sniffer, $browser) { - textInputType(scope, element, attr, ctrl, $sniffer, $browser); + // Note: no badInputChecker here by purpose as `url` is only a validation + // in browsers, i.e. we can always read out input.value even if it is not valid! + baseInputType(scope, element, attr, ctrl, $sniffer, $browser); + stringBasedInputType(ctrl); - var urlValidator = function(value) { - return validate(ctrl, 'url', ctrl.$isEmpty(value) || URL_REGEXP.test(value), value); + ctrl.$$parserName = 'url'; + ctrl.$validators.url = function(modelValue, viewValue) { + var value = modelValue || viewValue; + return ctrl.$isEmpty(value) || URL_REGEXP.test(value); }; - - ctrl.$formatters.push(urlValidator); - ctrl.$parsers.push(urlValidator); } function emailInputType(scope, element, attr, ctrl, $sniffer, $browser) { - textInputType(scope, element, attr, ctrl, $sniffer, $browser); + // Note: no badInputChecker here by purpose as `url` is only a validation + // in browsers, i.e. we can always read out input.value even if it is not valid! + baseInputType(scope, element, attr, ctrl, $sniffer, $browser); + stringBasedInputType(ctrl); - var emailValidator = function(value) { - return validate(ctrl, 'email', ctrl.$isEmpty(value) || EMAIL_REGEXP.test(value), value); + ctrl.$$parserName = 'email'; + ctrl.$validators.email = function(modelValue, viewValue) { + var value = modelValue || viewValue; + return ctrl.$isEmpty(value) || EMAIL_REGEXP.test(value); }; - - ctrl.$formatters.push(emailValidator); - ctrl.$parsers.push(emailValidator); } function radioInputType(scope, element, attr, ctrl) { @@ -17200,13 +21760,13 @@ function radioInputType(scope, element, attr, ctrl) { element.attr('name', nextUid()); } - element.on('click', function() { + var listener = function(ev) { if (element[0].checked) { - scope.$apply(function() { - ctrl.$setViewValue(attr.value); - }); + ctrl.$setViewValue(attr.value, ev && ev.type); } - }); + }; + + element.on('click', listener); ctrl.$render = function() { var value = attr.value; @@ -17216,30 +21776,42 @@ function radioInputType(scope, element, attr, ctrl) { attr.$observe('value', ctrl.$render); } -function checkboxInputType(scope, element, attr, ctrl) { - var trueValue = attr.ngTrueValue, - falseValue = attr.ngFalseValue; +function parseConstantExpr($parse, context, name, expression, fallback) { + var parseFn; + if (isDefined(expression)) { + parseFn = $parse(expression); + if (!parseFn.constant) { + throw minErr('ngModel')('constexpr', 'Expected constant expression for `{0}`, but saw ' + + '`{1}`.', name, expression); + } + return parseFn(context); + } + return fallback; +} - if (!isString(trueValue)) trueValue = true; - if (!isString(falseValue)) falseValue = false; +function checkboxInputType(scope, element, attr, ctrl, $sniffer, $browser, $filter, $parse) { + var trueValue = parseConstantExpr($parse, scope, 'ngTrueValue', attr.ngTrueValue, true); + var falseValue = parseConstantExpr($parse, scope, 'ngFalseValue', attr.ngFalseValue, false); - element.on('click', function() { - scope.$apply(function() { - ctrl.$setViewValue(element[0].checked); - }); - }); + var listener = function(ev) { + ctrl.$setViewValue(element[0].checked, ev && ev.type); + }; + + element.on('click', listener); ctrl.$render = function() { element[0].checked = ctrl.$viewValue; }; - // Override the standard `$isEmpty` because a value of `false` means empty in a checkbox. + // Override the standard `$isEmpty` because the $viewValue of an empty checkbox is always set to `false` + // This is because of the parser below, which compares the `$modelValue` with `trueValue` to convert + // it to a boolean. ctrl.$isEmpty = function(value) { - return value !== trueValue; + return value === false; }; ctrl.$formatters.push(function(value) { - return value === trueValue; + return equals(value, trueValue); }); ctrl.$parsers.push(function(value) { @@ -17267,10 +21839,17 @@ function checkboxInputType(scope, element, attr, ctrl) { * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than * minlength. * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than - * maxlength. - * @param {string=} ngPattern Sets `pattern` validation error key if the value does not match the - * RegExp pattern expression. Expected value is `/regexp/` for inline patterns or `regexp` for - * patterns defined as scope expressions. + * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of any + * length. + * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match + * a RegExp found by evaluating the Angular expression given in the attribute value. + * If the expression evaluates to a RegExp object, then this is used directly. + * If the expression evaluates to a string, then it will be converted to a RegExp + * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to + * `new RegExp('^abc$')`.
+ * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to + * start at the index of the last search's match, thus not taking the whole input value into + * account. * @param {string=} ngChange Angular expression to be executed when input changes due to user * interaction with the input element. * @param {boolean=} [ngTrim=true] If set to false Angular will not automatically trim the input. @@ -17283,10 +21862,14 @@ function checkboxInputType(scope, element, attr, ctrl) { * @restrict E * * @description - * HTML input element control with angular data-binding. Input control follows HTML5 input types - * and polyfills the HTML5 validation behavior for older browsers. + * HTML input element control. When used together with {@link ngModel `ngModel`}, it provides data-binding, + * input state control, and validation. + * Input control follows HTML5 input types and polyfills the HTML5 validation behavior for older browsers. * - * *NOTE* Not every feature offered is available for all input types. + *
+ * **Note:** Not every feature offered is available for all input types. + * Specifically, data binding and event handling via `ng-model` is unsupported for `input[file]`. + *
* * @param {string} ngModel Assignable angular expression to data-bind to. * @param {string=} name Property name of the form under which the control is published. @@ -17295,10 +21878,17 @@ function checkboxInputType(scope, element, attr, ctrl) { * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than * minlength. * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than - * maxlength. - * @param {string=} ngPattern Sets `pattern` validation error key if the value does not match the - * RegExp pattern expression. Expected value is `/regexp/` for inline patterns or `regexp` for - * patterns defined as scope expressions. + * maxlength. Setting the attribute to a negative or non-numeric value, allows view values of any + * length. + * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match + * a RegExp found by evaluating the Angular expression given in the attribute value. + * If the expression evaluates to a RegExp object, then this is used directly. + * If the expression evaluates to a string, then it will be converted to a RegExp + * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to + * `new RegExp('^abc$')`.
+ * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to + * start at the index of the last search's match, thus not taking the whole input value into + * account. * @param {string=} ngChange Angular expression to be executed when input changes due to user * interaction with the input element. * @param {boolean=} [ngTrim=true] If set to false Angular will not automatically trim the input. @@ -17316,30 +21906,40 @@ function checkboxInputType(scope, element, attr, ctrl) {
- User name: - - Required!
- Last name: - - Too short! - - Too long!
+ +
+ + Required! +
+ +
+ + Too short! + + Too long! +

user = {{user}}
- myForm.userName.$valid = {{myForm.userName.$valid}}
- myForm.userName.$error = {{myForm.userName.$error}}
- myForm.lastName.$valid = {{myForm.lastName.$valid}}
- myForm.lastName.$error = {{myForm.lastName.$error}}
- myForm.$valid = {{myForm.$valid}}
- myForm.$error.required = {{!!myForm.$error.required}}
- myForm.$error.minlength = {{!!myForm.$error.minlength}}
- myForm.$error.maxlength = {{!!myForm.$error.maxlength}}
+ myForm.userName.$valid = {{myForm.userName.$valid}}
+ myForm.userName.$error = {{myForm.userName.$error}}
+ myForm.lastName.$valid = {{myForm.lastName.$valid}}
+ myForm.lastName.$error = {{myForm.lastName.$error}}
+ myForm.$valid = {{myForm.$valid}}
+ myForm.$error.required = {{!!myForm.$error.required}}
+ myForm.$error.minlength = {{!!myForm.$error.minlength}}
+ myForm.$error.maxlength = {{!!myForm.$error.maxlength}}
- var user = element(by.binding('{{user}}')); + var user = element(by.exactBinding('user')); var userNameValid = element(by.binding('myForm.userName.$valid')); var lastNameValid = element(by.binding('myForm.lastName.$valid')); var lastNameError = element(by.binding('myForm.lastName.$error')); @@ -17393,682 +21993,22 @@ function checkboxInputType(scope, element, attr, ctrl) {
*/ -var inputDirective = ['$browser', '$sniffer', function($browser, $sniffer) { +var inputDirective = ['$browser', '$sniffer', '$filter', '$parse', + function($browser, $sniffer, $filter, $parse) { return { restrict: 'E', - require: '?ngModel', - link: function(scope, element, attr, ctrl) { - if (ctrl) { - (inputType[lowercase(attr.type)] || inputType.text)(scope, element, attr, ctrl, $sniffer, - $browser); + require: ['?ngModel'], + link: { + pre: function(scope, element, attr, ctrls) { + if (ctrls[0]) { + (inputType[lowercase(attr.type)] || inputType.text)(scope, element, attr, ctrls[0], $sniffer, + $browser, $filter, $parse); + } } } }; }]; -var VALID_CLASS = 'ng-valid', - INVALID_CLASS = 'ng-invalid', - PRISTINE_CLASS = 'ng-pristine', - DIRTY_CLASS = 'ng-dirty'; - -/** - * @ngdoc type - * @name ngModel.NgModelController - * - * @property {string} $viewValue Actual string value in the view. - * @property {*} $modelValue The value in the model, that the control is bound to. - * @property {Array.} $parsers Array of functions to execute, as a pipeline, whenever - the control reads value from the DOM. Each function is called, in turn, passing the value - through to the next. The last return value is used to populate the model. - Used to sanitize / convert the value as well as validation. For validation, - the parsers should update the validity state using - {@link ngModel.NgModelController#$setValidity $setValidity()}, - and return `undefined` for invalid values. - - * - * @property {Array.} $formatters Array of functions to execute, as a pipeline, whenever - the model value changes. Each function is called, in turn, passing the value through to the - next. Used to format / convert values for display in the control and validation. - * ```js - * function formatter(value) { - * if (value) { - * return value.toUpperCase(); - * } - * } - * ngModel.$formatters.push(formatter); - * ``` - * - * @property {Array.} $viewChangeListeners Array of functions to execute whenever the - * view value has changed. It is called with no arguments, and its return value is ignored. - * This can be used in place of additional $watches against the model value. - * - * @property {Object} $error An object hash with all errors as keys. - * - * @property {boolean} $pristine True if user has not interacted with the control yet. - * @property {boolean} $dirty True if user has already interacted with the control. - * @property {boolean} $valid True if there is no error. - * @property {boolean} $invalid True if at least one error on the control. - * - * @description - * - * `NgModelController` provides API for the `ng-model` directive. The controller contains - * services for data-binding, validation, CSS updates, and value formatting and parsing. It - * purposefully does not contain any logic which deals with DOM rendering or listening to - * DOM events. Such DOM related logic should be provided by other directives which make use of - * `NgModelController` for data-binding. - * - * ## Custom Control Example - * This example shows how to use `NgModelController` with a custom control to achieve - * data-binding. Notice how different directives (`contenteditable`, `ng-model`, and `required`) - * collaborate together to achieve the desired result. - * - * Note that `contenteditable` is an HTML5 attribute, which tells the browser to let the element - * contents be edited in place by the user. This will not work on older browsers. - * - * We are using the {@link ng.service:$sce $sce} service here and include the {@link ngSanitize $sanitize} - * module to automatically remove "bad" content like inline event listener (e.g. ``). - * However, as we are using `$sce` the model can still decide to to provide unsafe content if it marks - * that content using the `$sce` service. - * - * - - [contenteditable] { - border: 1px solid black; - background-color: white; - min-height: 20px; - } - - .ng-invalid { - border: 1px solid red; - } - - - - angular.module('customControl', ['ngSanitize']). - directive('contenteditable', ['$sce', function($sce) { - return { - restrict: 'A', // only activate on element attribute - require: '?ngModel', // get a hold of NgModelController - link: function(scope, element, attrs, ngModel) { - if(!ngModel) return; // do nothing if no ng-model - - // Specify how UI should be updated - ngModel.$render = function() { - element.html($sce.getTrustedHtml(ngModel.$viewValue || '')); - }; - - // Listen for change events to enable binding - element.on('blur keyup change', function() { - scope.$apply(read); - }); - read(); // initialize - - // Write data to the model - function read() { - var html = element.html(); - // When we clear the content editable the browser leaves a
behind - // If strip-br attribute is provided then we strip this out - if( attrs.stripBr && html == '
' ) { - html = ''; - } - ngModel.$setViewValue(html); - } - } - }; - }]); -
- -
-
Change me!
- Required! -
- - -
- - it('should data-bind and become invalid', function() { - if (browser.params.browser == 'safari' || browser.params.browser == 'firefox') { - // SafariDriver can't handle contenteditable - // and Firefox driver can't clear contenteditables very well - return; - } - var contentEditable = element(by.css('[contenteditable]')); - var content = 'Change me!'; - - expect(contentEditable.getText()).toEqual(content); - - contentEditable.clear(); - contentEditable.sendKeys(protractor.Key.BACK_SPACE); - expect(contentEditable.getText()).toEqual(''); - expect(contentEditable.getAttribute('class')).toMatch(/ng-invalid-required/); - }); - - *
- * - * - */ -var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$parse', '$animate', - function($scope, $exceptionHandler, $attr, $element, $parse, $animate) { - this.$viewValue = Number.NaN; - this.$modelValue = Number.NaN; - this.$parsers = []; - this.$formatters = []; - this.$viewChangeListeners = []; - this.$pristine = true; - this.$dirty = false; - this.$valid = true; - this.$invalid = false; - this.$name = $attr.name; - - var ngModelGet = $parse($attr.ngModel), - ngModelSet = ngModelGet.assign; - - if (!ngModelSet) { - throw minErr('ngModel')('nonassign', "Expression '{0}' is non-assignable. Element: {1}", - $attr.ngModel, startingTag($element)); - } - - /** - * @ngdoc method - * @name ngModel.NgModelController#$render - * - * @description - * Called when the view needs to be updated. It is expected that the user of the ng-model - * directive will implement this method. - */ - this.$render = noop; - - /** - * @ngdoc method - * @name ngModel.NgModelController#$isEmpty - * - * @description - * This is called when we need to determine if the value of the input is empty. - * - * For instance, the required directive does this to work out if the input has data or not. - * The default `$isEmpty` function checks whether the value is `undefined`, `''`, `null` or `NaN`. - * - * You can override this for input directives whose concept of being empty is different to the - * default. The `checkboxInputType` directive does this because in its case a value of `false` - * implies empty. - * - * @param {*} value Reference to check. - * @returns {boolean} True if `value` is empty. - */ - this.$isEmpty = function(value) { - return isUndefined(value) || value === '' || value === null || value !== value; - }; - - var parentForm = $element.inheritedData('$formController') || nullFormCtrl, - invalidCount = 0, // used to easily determine if we are valid - $error = this.$error = {}; // keep invalid keys here - - - // Setup initial state of the control - $element.addClass(PRISTINE_CLASS); - toggleValidCss(true); - - // convenience method for easy toggling of classes - function toggleValidCss(isValid, validationErrorKey) { - validationErrorKey = validationErrorKey ? '-' + snake_case(validationErrorKey, '-') : ''; - $animate.removeClass($element, (isValid ? INVALID_CLASS : VALID_CLASS) + validationErrorKey); - $animate.addClass($element, (isValid ? VALID_CLASS : INVALID_CLASS) + validationErrorKey); - } - - /** - * @ngdoc method - * @name ngModel.NgModelController#$setValidity - * - * @description - * Change the validity state, and notifies the form when the control changes validity. (i.e. it - * does not notify form if given validator is already marked as invalid). - * - * This method should be called by validators - i.e. the parser or formatter functions. - * - * @param {string} validationErrorKey Name of the validator. the `validationErrorKey` will assign - * to `$error[validationErrorKey]=!isValid` so that it is available for data-binding. - * The `validationErrorKey` should be in camelCase and will get converted into dash-case - * for class name. Example: `myError` will result in `ng-valid-my-error` and `ng-invalid-my-error` - * class and can be bound to as `{{someForm.someControl.$error.myError}}` . - * @param {boolean} isValid Whether the current state is valid (true) or invalid (false). - */ - this.$setValidity = function(validationErrorKey, isValid) { - // Purposeful use of ! here to cast isValid to boolean in case it is undefined - // jshint -W018 - if ($error[validationErrorKey] === !isValid) return; - // jshint +W018 - - if (isValid) { - if ($error[validationErrorKey]) invalidCount--; - if (!invalidCount) { - toggleValidCss(true); - this.$valid = true; - this.$invalid = false; - } - } else { - toggleValidCss(false); - this.$invalid = true; - this.$valid = false; - invalidCount++; - } - - $error[validationErrorKey] = !isValid; - toggleValidCss(isValid, validationErrorKey); - - parentForm.$setValidity(validationErrorKey, isValid, this); - }; - - /** - * @ngdoc method - * @name ngModel.NgModelController#$setPristine - * - * @description - * Sets the control to its pristine state. - * - * This method can be called to remove the 'ng-dirty' class and set the control to its pristine - * state (ng-pristine class). - */ - this.$setPristine = function () { - this.$dirty = false; - this.$pristine = true; - $animate.removeClass($element, DIRTY_CLASS); - $animate.addClass($element, PRISTINE_CLASS); - }; - - /** - * @ngdoc method - * @name ngModel.NgModelController#$setViewValue - * - * @description - * Update the view value. - * - * This method should be called when the view value changes, typically from within a DOM event handler. - * For example {@link ng.directive:input input} and - * {@link ng.directive:select select} directives call it. - * - * It will update the $viewValue, then pass this value through each of the functions in `$parsers`, - * which includes any validators. The value that comes out of this `$parsers` pipeline, be applied to - * `$modelValue` and the **expression** specified in the `ng-model` attribute. - * - * Lastly, all the registered change listeners, in the `$viewChangeListeners` list, are called. - * - * Note that calling this function does not trigger a `$digest`. - * - * @param {string} value Value from the view. - */ - this.$setViewValue = function(value) { - this.$viewValue = value; - - // change to dirty - if (this.$pristine) { - this.$dirty = true; - this.$pristine = false; - $animate.removeClass($element, PRISTINE_CLASS); - $animate.addClass($element, DIRTY_CLASS); - parentForm.$setDirty(); - } - - forEach(this.$parsers, function(fn) { - value = fn(value); - }); - - if (this.$modelValue !== value) { - this.$modelValue = value; - ngModelSet($scope, value); - forEach(this.$viewChangeListeners, function(listener) { - try { - listener(); - } catch(e) { - $exceptionHandler(e); - } - }); - } - }; - - // model -> value - var ctrl = this; - - $scope.$watch(function ngModelWatch() { - var value = ngModelGet($scope); - - // if scope model value and ngModel value are out of sync - if (ctrl.$modelValue !== value) { - - var formatters = ctrl.$formatters, - idx = formatters.length; - - ctrl.$modelValue = value; - while(idx--) { - value = formatters[idx](value); - } - - if (ctrl.$viewValue !== value) { - ctrl.$viewValue = value; - ctrl.$render(); - } - } - - return value; - }); -}]; - - -/** - * @ngdoc directive - * @name ngModel - * - * @element input - * - * @description - * The `ngModel` directive binds an `input`,`select`, `textarea` (or custom form control) to a - * property on the scope using {@link ngModel.NgModelController NgModelController}, - * which is created and exposed by this directive. - * - * `ngModel` is responsible for: - * - * - Binding the view into the model, which other directives such as `input`, `textarea` or `select` - * require. - * - Providing validation behavior (i.e. required, number, email, url). - * - Keeping the state of the control (valid/invalid, dirty/pristine, validation errors). - * - Setting related css classes on the element (`ng-valid`, `ng-invalid`, `ng-dirty`, `ng-pristine`) including animations. - * - Registering the control with its parent {@link ng.directive:form form}. - * - * Note: `ngModel` will try to bind to the property given by evaluating the expression on the - * current scope. If the property doesn't already exist on this scope, it will be created - * implicitly and added to the scope. - * - * For best practices on using `ngModel`, see: - * - * - [https://github.com/angular/angular.js/wiki/Understanding-Scopes] - * - * For basic examples, how to use `ngModel`, see: - * - * - {@link ng.directive:input input} - * - {@link input[text] text} - * - {@link input[checkbox] checkbox} - * - {@link input[radio] radio} - * - {@link input[number] number} - * - {@link input[email] email} - * - {@link input[url] url} - * - {@link ng.directive:select select} - * - {@link ng.directive:textarea textarea} - * - * # CSS classes - * The following CSS classes are added and removed on the associated input/select/textarea element - * depending on the validity of the model. - * - * - `ng-valid` is set if the model is valid. - * - `ng-invalid` is set if the model is invalid. - * - `ng-pristine` is set if the model is pristine. - * - `ng-dirty` is set if the model is dirty. - * - * Keep in mind that ngAnimate can detect each of these classes when added and removed. - * - * ## Animation Hooks - * - * Animations within models are triggered when any of the associated CSS classes are added and removed - * on the input element which is attached to the model. These classes are: `.ng-pristine`, `.ng-dirty`, - * `.ng-invalid` and `.ng-valid` as well as any other validations that are performed on the model itself. - * The animations that are triggered within ngModel are similar to how they work in ngClass and - * animations can be hooked into using CSS transitions, keyframes as well as JS animations. - * - * The following example shows a simple way to utilize CSS transitions to style an input element - * that has been rendered as invalid after it has been validated: - * - *
- * //be sure to include ngAnimate as a module to hook into more
- * //advanced animations
- * .my-input {
- *   transition:0.5s linear all;
- *   background: white;
- * }
- * .my-input.ng-invalid {
- *   background: red;
- *   color:white;
- * }
- * 
- * - * @example - * - - - - Update input to see transitions when valid/invalid. - Integer is a valid value. -
- - -
- *
- */ -var ngModelDirective = function() { - return { - require: ['ngModel', '^?form'], - controller: NgModelController, - link: function(scope, element, attr, ctrls) { - // notify others, especially parent forms - - var modelCtrl = ctrls[0], - formCtrl = ctrls[1] || nullFormCtrl; - - formCtrl.$addControl(modelCtrl); - - scope.$on('$destroy', function() { - formCtrl.$removeControl(modelCtrl); - }); - } - }; -}; - - -/** - * @ngdoc directive - * @name ngChange - * - * @description - * Evaluate the given expression when the user changes the input. - * The expression is evaluated immediately, unlike the JavaScript onchange event - * which only triggers at the end of a change (usually, when the user leaves the - * form element or presses the return key). - * The expression is not evaluated when the value change is coming from the model. - * - * Note, this directive requires `ngModel` to be present. - * - * @element input - * @param {expression} ngChange {@link guide/expression Expression} to evaluate upon change - * in input value. - * - * @example - * - * - * - *
- * - * - *
- * debug = {{confirmed}}
- * counter = {{counter}}
- *
- *
- * - * var counter = element(by.binding('counter')); - * var debug = element(by.binding('confirmed')); - * - * it('should evaluate the expression if changing from view', function() { - * expect(counter.getText()).toContain('0'); - * - * element(by.id('ng-change-example1')).click(); - * - * expect(counter.getText()).toContain('1'); - * expect(debug.getText()).toContain('true'); - * }); - * - * it('should not evaluate the expression if changing from model', function() { - * element(by.id('ng-change-example2')).click(); - - * expect(counter.getText()).toContain('0'); - * expect(debug.getText()).toContain('true'); - * }); - * - *
- */ -var ngChangeDirective = valueFn({ - require: 'ngModel', - link: function(scope, element, attr, ctrl) { - ctrl.$viewChangeListeners.push(function() { - scope.$eval(attr.ngChange); - }); - } -}); - - -var requiredDirective = function() { - return { - require: '?ngModel', - link: function(scope, elm, attr, ctrl) { - if (!ctrl) return; - attr.required = true; // force truthy in case we are on non input element - - var validator = function(value) { - if (attr.required && ctrl.$isEmpty(value)) { - ctrl.$setValidity('required', false); - return; - } else { - ctrl.$setValidity('required', true); - return value; - } - }; - - ctrl.$formatters.push(validator); - ctrl.$parsers.unshift(validator); - - attr.$observe('required', function() { - validator(ctrl.$viewValue); - }); - } - }; -}; - - -/** - * @ngdoc directive - * @name ngList - * - * @description - * Text input that converts between a delimited string and an array of strings. The delimiter - * can be a fixed string (by default a comma) or a regular expression. - * - * @element input - * @param {string=} ngList optional delimiter that should be used to split the value. If - * specified in form `/something/` then the value will be converted into a regular expression. - * - * @example - - - -
- List: - - Required! -
- names = {{names}}
- myForm.namesInput.$valid = {{myForm.namesInput.$valid}}
- myForm.namesInput.$error = {{myForm.namesInput.$error}}
- myForm.$valid = {{myForm.$valid}}
- myForm.$error.required = {{!!myForm.$error.required}}
- -
- - var listInput = element(by.model('names')); - var names = element(by.binding('{{names}}')); - var valid = element(by.binding('myForm.namesInput.$valid')); - var error = element(by.css('span.error')); - - it('should initialize to model', function() { - expect(names.getText()).toContain('["igor","misko","vojta"]'); - expect(valid.getText()).toContain('true'); - expect(error.getCssValue('display')).toBe('none'); - }); - - it('should be invalid if empty', function() { - listInput.clear(); - listInput.sendKeys(''); - - expect(names.getText()).toContain(''); - expect(valid.getText()).toContain('false'); - expect(error.getCssValue('display')).not.toBe('none'); }); - -
- */ -var ngListDirective = function() { - return { - require: 'ngModel', - link: function(scope, element, attr, ctrl) { - var match = /\/(.*)\//.exec(attr.ngList), - separator = match && new RegExp(match[1]) || attr.ngList || ','; - - var parse = function(viewValue) { - // If the viewValue is invalid (say required but empty) it will be `undefined` - if (isUndefined(viewValue)) return; - - var list = []; - - if (viewValue) { - forEach(viewValue.split(separator), function(value) { - if (value) list.push(trim(value)); - }); - } - - return list; - }; - - ctrl.$parsers.push(parse); - ctrl.$formatters.push(function(value) { - if (isArray(value)) { - return value.join(', '); - } - - return undefined; - }); - - // Override the standard $isEmpty because an empty array means the input is empty. - ctrl.$isEmpty = function(value) { - return !value || !value.length; - }; - } - }; -}; var CONSTANT_VALUE_REGEXP = /^(true|false|\d+)$/; @@ -18077,12 +22017,17 @@ var CONSTANT_VALUE_REGEXP = /^(true|false|\d+)$/; * @name ngValue * * @description - * Binds the given expression to the value of `input[select]` or `input[radio]`, so - * that when the element is selected, the `ngModel` of that element is set to the - * bound value. + * Binds the given expression to the value of `
@@ -18194,20 +22140,21 @@ var ngValueDirective = function() {
*/ -var ngBindDirective = ngDirective({ - compile: function(templateElement) { - templateElement.addClass('ng-binding'); - return function (scope, element, attr) { - element.data('$binding', attr.ngBind); - scope.$watch(attr.ngBind, function ngBindWatchAction(value) { - // We are purposefully using == here rather than === because we want to - // catch when value is "null or undefined" - // jshint -W041 - element.text(value == undefined ? '' : value); - }); - }; - } -}); +var ngBindDirective = ['$compile', function($compile) { + return { + restrict: 'AC', + compile: function ngBindCompile(templateElement) { + $compile.$$addBindingClass(templateElement); + return function ngBindLink(scope, element, attr) { + $compile.$$addBindingInfo(element, attr.ngBind); + element = element[0]; + scope.$watch(attr.ngBind, function ngBindWatchAction(value) { + element.textContent = value === undefined ? '' : value; + }); + }; + } + }; +}]; /** @@ -18232,14 +22179,14 @@ var ngBindDirective = ngDirective({
- Salutation:
- Name:
+
+

        
@@ -18261,14 +22208,19 @@ var ngBindDirective = ngDirective({
*/ -var ngBindTemplateDirective = ['$interpolate', function($interpolate) { - return function(scope, element, attr) { - // TODO: move this to scenario runner - var interpolateFn = $interpolate(element.attr(attr.$attr.ngBindTemplate)); - element.addClass('ng-binding').data('$binding', interpolateFn); - attr.$observe('ngBindTemplate', function(value) { - element.text(value); - }); +var ngBindTemplateDirective = ['$interpolate', '$compile', function($interpolate, $compile) { + return { + compile: function ngBindTemplateCompile(templateElement) { + $compile.$$addBindingClass(templateElement); + return function ngBindTemplateLink(scope, element, attr) { + var interpolateFn = $interpolate(element.attr(attr.$attr.ngBindTemplate)); + $compile.$$addBindingInfo(element, interpolateFn.expressions); + element = element[0]; + attr.$observe('ngBindTemplate', function(value) { + element.textContent = value === undefined ? '' : value; + }); + }; + } }; }]; @@ -18278,13 +22230,15 @@ var ngBindTemplateDirective = ['$interpolate', function($interpolate) { * @name ngBindHtml * * @description - * Creates a binding that will innerHTML the result of evaluating the `expression` into the current - * element in a secure way. By default, the innerHTML-ed content will be sanitized using the {@link - * ngSanitize.$sanitize $sanitize} service. To utilize this functionality, ensure that `$sanitize` - * is available, for example, by including {@link ngSanitize} in your module's dependencies (not in - * core Angular.) You may also bypass sanitization for values you know are safe. To do so, bind to + * Evaluates the expression and inserts the resulting HTML into the element in a secure way. By default, + * the resulting HTML content will be sanitized using the {@link ngSanitize.$sanitize $sanitize} service. + * To utilize this functionality, ensure that `$sanitize` is available, for example, by including {@link + * ngSanitize} in your module's dependencies (not in core Angular). In order to use {@link ngSanitize} + * in your module's dependencies, you need to include "angular-sanitize.js" in your application. + * + * You may also bypass sanitization for values you know are safe. To do so, bind to * an explicitly trusted value via {@link ng.$sce#trustAsHtml $sce.trustAsHtml}. See the example - * under {@link ng.$sce#Example Strict Contextual Escaping (SCE)}. + * under {@link ng.$sce#show-me-an-example-using-sce- Strict Contextual Escaping (SCE)}. * * Note: If a `$sanitize` service is unavailable and the bound value isn't explicitly trusted, you * will have an exception (instead of an exploit.) @@ -18318,28 +22272,106 @@ var ngBindTemplateDirective = ['$interpolate', function($interpolate) { */ -var ngBindHtmlDirective = ['$sce', '$parse', function($sce, $parse) { +var ngBindHtmlDirective = ['$sce', '$parse', '$compile', function($sce, $parse, $compile) { return { - compile: function (tElement) { - tElement.addClass('ng-binding'); + restrict: 'A', + compile: function ngBindHtmlCompile(tElement, tAttrs) { + var ngBindHtmlGetter = $parse(tAttrs.ngBindHtml); + var ngBindHtmlWatch = $parse(tAttrs.ngBindHtml, function getStringValue(value) { + return (value || '').toString(); + }); + $compile.$$addBindingClass(tElement); - return function (scope, element, attr) { - element.data('$binding', attr.ngBindHtml); + return function ngBindHtmlLink(scope, element, attr) { + $compile.$$addBindingInfo(element, attr.ngBindHtml); - var parsed = $parse(attr.ngBindHtml); - - function getStringValue() { - return (parsed(scope) || '').toString(); - } - - scope.$watch(getStringValue, function ngBindHtmlWatchAction(value) { - element.html($sce.getTrustedHtml(parsed(scope)) || ''); + scope.$watch(ngBindHtmlWatch, function ngBindHtmlWatchAction() { + // we re-evaluate the expr because we want a TrustedValueHolderType + // for $sce, not a string + element.html($sce.getTrustedHtml(ngBindHtmlGetter(scope)) || ''); }); }; } }; }]; +/** + * @ngdoc directive + * @name ngChange + * + * @description + * Evaluate the given expression when the user changes the input. + * The expression is evaluated immediately, unlike the JavaScript onchange event + * which only triggers at the end of a change (usually, when the user leaves the + * form element or presses the return key). + * + * The `ngChange` expression is only evaluated when a change in the input value causes + * a new value to be committed to the model. + * + * It will not be evaluated: + * * if the value returned from the `$parsers` transformation pipeline has not changed + * * if the input has continued to be invalid since the model will stay `null` + * * if the model is changed programmatically and not by a change to the input value + * + * + * Note, this directive requires `ngModel` to be present. + * + * @element input + * @param {expression} ngChange {@link guide/expression Expression} to evaluate upon change + * in input value. + * + * @example + * + * + * + *
+ * + * + *
+ * debug = {{confirmed}}
+ * counter = {{counter}}
+ *
+ *
+ * + * var counter = element(by.binding('counter')); + * var debug = element(by.binding('confirmed')); + * + * it('should evaluate the expression if changing from view', function() { + * expect(counter.getText()).toContain('0'); + * + * element(by.id('ng-change-example1')).click(); + * + * expect(counter.getText()).toContain('1'); + * expect(debug.getText()).toContain('true'); + * }); + * + * it('should not evaluate the expression if changing from model', function() { + * element(by.id('ng-change-example2')).click(); + + * expect(counter.getText()).toContain('0'); + * expect(debug.getText()).toContain('true'); + * }); + * + *
+ */ +var ngChangeDirective = valueFn({ + restrict: 'A', + require: 'ngModel', + link: function(scope, element, attr, ctrl) { + ctrl.$viewChangeListeners.push(function() { + scope.$eval(attr.ngChange); + }); + } +}); + function classDirective(name, selector) { name = 'ngClass' + name; return ['$animate', function($animate) { @@ -18378,10 +22410,12 @@ function classDirective(name, selector) { attr.$removeClass(newClasses); } - function digestClassCounts (classes, count) { - var classCounts = element.data('$classCounts') || {}; + function digestClassCounts(classes, count) { + // Use createMap() to prevent class assumptions involving property + // names in Object.prototype + var classCounts = element.data('$classCounts') || createMap(); var classesToUpdate = []; - forEach(classes, function (className) { + forEach(classes, function(className) { if (count > 0 || classCounts[className]) { classCounts[className] = (classCounts[className] || 0) + count; if (classCounts[className] === +(count > 0)) { @@ -18393,18 +22427,16 @@ function classDirective(name, selector) { return classesToUpdate.join(' '); } - function updateClasses (oldClasses, newClasses) { + function updateClasses(oldClasses, newClasses) { var toAdd = arrayDifference(newClasses, oldClasses); var toRemove = arrayDifference(oldClasses, newClasses); - toRemove = digestClassCounts(toRemove, -1); toAdd = digestClassCounts(toAdd, 1); - - if (toAdd.length === 0) { - $animate.removeClass(element, toRemove); - } else if (toRemove.length === 0) { + toRemove = digestClassCounts(toRemove, -1); + if (toAdd && toAdd.length) { $animate.addClass(element, toAdd); - } else { - $animate.setClass(element, toAdd, toRemove); + } + if (toRemove && toRemove.length) { + $animate.removeClass(element, toRemove); } } @@ -18427,23 +22459,26 @@ function classDirective(name, selector) { var values = []; outer: - for(var i = 0; i < tokens1.length; i++) { + for (var i = 0; i < tokens1.length; i++) { var token = tokens1[i]; - for(var j = 0; j < tokens2.length; j++) { - if(token == tokens2[j]) continue outer; + for (var j = 0; j < tokens2.length; j++) { + if (token == tokens2[j]) continue outer; } values.push(token); } return values; } - function arrayClasses (classVal) { + function arrayClasses(classVal) { + var classes = []; if (isArray(classVal)) { - return classVal; + forEach(classVal, function(v) { + classes = classes.concat(arrayClasses(v)); + }); + return classes; } else if (isString(classVal)) { return classVal.split(' '); } else if (isObject(classVal)) { - var classes = [], i = 0; forEach(classVal, function(v, k) { if (v) { classes = classes.concat(k.split(' ')); @@ -18471,20 +22506,23 @@ function classDirective(name, selector) { * 1. If the expression evaluates to a string, the string should be one or more space-delimited class * names. * - * 2. If the expression evaluates to an array, each element of the array should be a string that is - * one or more space-delimited class names. - * - * 3. If the expression evaluates to an object, then for each key-value pair of the + * 2. If the expression evaluates to an object, then for each key-value pair of the * object with a truthy value the corresponding key is used as a class name. * + * 3. If the expression evaluates to an array, each element of the array should either be a string as in + * type 1 or an object as in type 2. This means that you can mix strings and objects together in an array + * to give you more control over what CSS classes appear. See the code below for an example of this. + * + * * The directive won't add duplicate classes if a particular class was already set. * - * When the expression changes, the previously added classes are removed and only then the - * new classes are added. + * When the expression changes, the previously added classes are removed and only then are the + * new classes added. * * @animations - * add - happens just before the class is applied to the element - * remove - happens just before the class is removed from the element + * **add** - happens just before the class is applied to the elements + * + * **remove** - happens just before the class is removed from the element * * @element ANY * @param {expression} ngClass {@link guide/expression Expression} to eval. The result @@ -18496,22 +22534,39 @@ function classDirective(name, selector) { * @example Example that demonstrates basic bindings via ngClass directive. -

Map Syntax Example

- deleted (apply "strike" class)
- important (apply "bold" class)
- error (apply "red" class) +

Map Syntax Example

+
+
+

Using String Syntax

- +

Using Array Syntax

-
-
-
+
+
+
+
+

Using Array and Map Syntax

+
+
.strike { - text-decoration: line-through; + text-decoration: line-through; } .bold { font-weight: bold; @@ -18519,6 +22574,13 @@ function classDirective(name, selector) { .red { color: red; } + .has-error { + color: red; + background-color: yellow; + } + .orange { + color: orange; + } var ps = element.all(by.css('p')); @@ -18526,13 +22588,13 @@ function classDirective(name, selector) { it('should let you toggle the class', function() { expect(ps.first().getAttribute('class')).not.toMatch(/bold/); - expect(ps.first().getAttribute('class')).not.toMatch(/red/); + expect(ps.first().getAttribute('class')).not.toMatch(/has-error/); element(by.model('important')).click(); expect(ps.first().getAttribute('class')).toMatch(/bold/); element(by.model('error')).click(); - expect(ps.first().getAttribute('class')).toMatch(/red/); + expect(ps.first().getAttribute('class')).toMatch(/has-error/); }); it('should let you toggle string example', function() { @@ -18543,11 +22605,18 @@ function classDirective(name, selector) { }); it('array example should have 3 classes', function() { - expect(ps.last().getAttribute('class')).toBe(''); + expect(ps.get(2).getAttribute('class')).toBe(''); element(by.model('style1')).sendKeys('bold'); element(by.model('style2')).sendKeys('strike'); element(by.model('style3')).sendKeys('red'); - expect(ps.last().getAttribute('class')).toBe('bold strike red'); + expect(ps.get(2).getAttribute('class')).toBe('bold strike red'); + }); + + it('array with map example should have 2 classes', function() { + expect(ps.last().getAttribute('class')).toBe(''); + element(by.model('style4')).sendKeys('bold'); + element(by.model('warning')).click(); + expect(ps.last().getAttribute('class')).toBe('bold orange'); });
@@ -18597,8 +22666,8 @@ function classDirective(name, selector) { The ngClass directive still supports CSS3 Transitions/Animations even if they do not follow the ngAnimate CSS naming structure. Upon animation ngAnimate will apply supplementary CSS classes to track the start and end of an animation, but this will not hinder any pre-existing CSS transitions already on the element. To get an idea of what happens during a class-based animation, be sure - to view the step by step details of {@link ngAnimate.$animate#addclass $animate.addClass} and - {@link ngAnimate.$animate#removeclass $animate.removeClass}. + to view the step by step details of {@link $animate#addClass $animate.addClass} and + {@link $animate#removeClass $animate.removeClass}. */ var ngClassDirective = classDirective('', true); @@ -18731,17 +22800,13 @@ var ngClassEvenDirective = classDirective('Even', 1); * document; alternatively, the css rule above must be included in the external stylesheet of the * application. * - * Legacy browsers, like IE7, do not provide attribute selector support (added in CSS 2.1) so they - * cannot match the `[ng\:cloak]` selector. To work around this limitation, you must add the css - * class `ng-cloak` in addition to the `ngCloak` directive as shown in the example below. - * * @element ANY * * @example
{{ 'hello' }}
-
{{ 'hello IE7' }}
+
{{ 'world' }}
it('should remove the template directive and css class', function() { @@ -18784,10 +22849,17 @@ var ngCloakDirective = ngDirective({ * * @element ANY * @scope - * @param {expression} ngController Name of a globally accessible constructor function or an - * {@link guide/expression expression} that on the current scope evaluates to a - * constructor function. The controller instance can be published into a scope property - * by specifying `as propertyName`. + * @priority 500 + * @param {expression} ngController Name of a constructor function registered with the current + * {@link ng.$controllerProvider $controllerProvider} or an {@link guide/expression expression} + * that on the current scope evaluates to a constructor function. + * + * The controller instance can be published into a scope property by specifying + * `ng-controller="as propertyName"`. + * + * If the current `$controllerProvider` is configured to use globals (via + * {@link ng.$controllerProvider#allowGlobals `$controllerProvider.allowGlobals()` }), this may + * also be the name of a globally accessible constructor function (not recommended). * * @example * Here is a simple form for editing user contact information. Adding, removing, clearing, and @@ -18818,20 +22890,20 @@ var ngCloakDirective = ngDirective({ * * *
- * Name: - * [ greet ]
+ * + *
* Contact: *
    *
  • - * * * * - * - * [ clear - * | X ] + * + * + * *
  • - *
  • [ add ]
  • + *
  • *
*
*
@@ -18881,12 +22953,12 @@ var ngCloakDirective = ngDirective({ * expect(secondRepeat.element(by.model('contact.value')).getAttribute('value')) * .toBe('john.smith@example.org'); * - * firstRepeat.element(by.linkText('clear')).click(); + * firstRepeat.element(by.buttonText('clear')).click(); * * expect(firstRepeat.element(by.model('contact.value')).getAttribute('value')) * .toBe(''); * - * container.element(by.linkText('add')).click(); + * container.element(by.buttonText('add')).click(); * * expect(container.element(by.repeater('contact in settings.contacts').row(2)) * .element(by.model('contact.value')) @@ -18901,20 +22973,20 @@ var ngCloakDirective = ngDirective({ * * *
- * Name: - * [ greet ]
+ * + *
* Contact: *
    *
  • - * * * * - * - * [ clear - * | X ] + * + * + * *
  • - *
  • [ add ]
  • + *
  • [ ]
  • *
*
*
@@ -18964,12 +23036,12 @@ var ngCloakDirective = ngDirective({ * expect(secondRepeat.element(by.model('contact.value')).getAttribute('value')) * .toBe('john.smith@example.org'); * - * firstRepeat.element(by.linkText('clear')).click(); + * firstRepeat.element(by.buttonText('clear')).click(); * * expect(firstRepeat.element(by.model('contact.value')).getAttribute('value')) * .toBe(''); * - * container.element(by.linkText('add')).click(); + * container.element(by.buttonText('add')).click(); * * expect(container.element(by.repeater('contact in contacts').row(2)) * .element(by.model('contact.value')) @@ -18982,6 +23054,7 @@ var ngCloakDirective = ngDirective({ */ var ngControllerDirective = [function() { return { + restrict: 'A', scope: true, controller: '@', priority: 500 @@ -18996,7 +23069,7 @@ var ngControllerDirective = [function() { * @description * Enables [CSP (Content Security Policy)](https://developer.mozilla.org/en/Security/CSP) support. * - * This is necessary when developing things like Google Chrome Extensions. + * This is necessary when developing things like Google Chrome Extensions or Universal Windows Apps. * * CSP forbids apps to use `eval` or `Function(string)` generated functions (among other things). * For Angular to be CSP compatible there are only two things that we need to do differently: @@ -19037,7 +23110,125 @@ var ngControllerDirective = [function() { ... ``` - */ + * @example + // Note: the suffix `.csp` in the example name triggers + // csp mode in our http server! + + +
+
+ + + {{ctrl.counter}} + +
+ +
+ + + {{ctrl.evilError}} + +
+
+
+ + angular.module('cspExample', []) + .controller('MainController', function() { + this.counter = 0; + this.inc = function() { + this.counter++; + }; + this.evil = function() { + // jshint evil:true + try { + eval('1+2'); + } catch (e) { + this.evilError = e.message; + } + }; + }); + + + var util, webdriver; + + var incBtn = element(by.id('inc')); + var counter = element(by.id('counter')); + var evilBtn = element(by.id('evil')); + var evilError = element(by.id('evilError')); + + function getAndClearSevereErrors() { + return browser.manage().logs().get('browser').then(function(browserLog) { + return browserLog.filter(function(logEntry) { + return logEntry.level.value > webdriver.logging.Level.WARNING.value; + }); + }); + } + + function clearErrors() { + getAndClearSevereErrors(); + } + + function expectNoErrors() { + getAndClearSevereErrors().then(function(filteredLog) { + expect(filteredLog.length).toEqual(0); + if (filteredLog.length) { + console.log('browser console errors: ' + util.inspect(filteredLog)); + } + }); + } + + function expectError(regex) { + getAndClearSevereErrors().then(function(filteredLog) { + var found = false; + filteredLog.forEach(function(log) { + if (log.message.match(regex)) { + found = true; + } + }); + if (!found) { + throw new Error('expected an error that matches ' + regex); + } + }); + } + + beforeEach(function() { + util = require('util'); + webdriver = require('protractor/node_modules/selenium-webdriver'); + }); + + // For now, we only test on Chrome, + // as Safari does not load the page with Protractor's injected scripts, + // and Firefox webdriver always disables content security policy (#6358) + if (browser.params.browser !== 'chrome') { + return; + } + + it('should not report errors when the page is loaded', function() { + // clear errors so we are not dependent on previous tests + clearErrors(); + // Need to reload the page as the page is already loaded when + // we come here + browser.driver.getCurrentUrl().then(function(url) { + browser.get(url); + }); + expectNoErrors(); + }); + + it('should evaluate expressions', function() { + expect(counter.getText()).toEqual('0'); + incBtn.click(); + expect(counter.getText()).toEqual('1'); + expectNoErrors(); + }); + + it('should throw and report an error when using "eval"', function() { + evilBtn.click(); + expect(evilError.getText()).toMatch(/Content Security Policy/); + expectError(/Content Security Policy/); + }); + +
+ */ // ngCsp is not implemented as a proper directive any more, because we need it be processed while we // bootstrap the system (before $parse is instantiated), for this reason we just have @@ -19062,7 +23253,9 @@ var ngControllerDirective = [function() { - count: {{count}} + + count: {{count}} +
it('should check ng-click', function() { @@ -19074,25 +23267,41 @@ var ngControllerDirective = [function() {
*/ /* - * A directive that allows creation of custom onclick handlers that are defined as angular - * expressions and are compiled and executed within the current scope. - * - * Events that are handled via these handler are always configured not to propagate further. + * A collection of directives that allows creation of custom event handlers that are defined as + * angular expressions and are compiled and executed within the current scope. */ var ngEventDirectives = {}; + +// For events that might fire synchronously during DOM manipulation +// we need to execute their event handlers asynchronously using $evalAsync, +// so that they are not executed in an inconsistent state. +var forceAsyncEvents = { + 'blur': true, + 'focus': true +}; forEach( 'click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste'.split(' '), - function(name) { - var directiveName = directiveNormalize('ng-' + name); - ngEventDirectives[directiveName] = ['$parse', function($parse) { + function(eventName) { + var directiveName = directiveNormalize('ng-' + eventName); + ngEventDirectives[directiveName] = ['$parse', '$rootScope', function($parse, $rootScope) { return { + restrict: 'A', compile: function($element, attr) { - var fn = $parse(attr[directiveName]); + // We expose the powerful $event object on the scope that provides access to the Window, + // etc. that isn't protected by the fast paths in $parse. We explicitly request better + // checks at the cost of speed since event handler expressions are not executed as + // frequently as regular change detection. + var fn = $parse(attr[directiveName], /* interceptorFn */ null, /* expensiveChecks */ true); return function ngEventHandler(scope, element) { - element.on(lowercase(name), function(event) { - scope.$apply(function() { + element.on(eventName, function(event) { + var callback = function() { fn(scope, {$event:event}); - }); + }; + if (forceAsyncEvents[eventName] && $rootScope.$$phase) { + scope.$evalAsync(callback); + } else { + scope.$apply(callback); + } }); }; } @@ -19409,6 +23618,10 @@ forEach( * @description * Specify custom behavior on focus event. * + * Note: As the `focus` event is executed synchronously when calling `input.focus()` + * AngularJS executes the expression using `scope.$evalAsync` if the event is fired + * during an `$apply` to ensure a consistent state. + * * @element window, input, select, textarea, a * @priority 0 * @param {expression} ngFocus {@link guide/expression Expression} to evaluate upon @@ -19425,6 +23638,14 @@ forEach( * @description * Specify custom behavior on blur event. * + * A [blur event](https://developer.mozilla.org/en-US/docs/Web/Events/blur) fires when + * an element has lost focus. + * + * Note: As the `blur` event is executed synchronously also during DOM manipulations + * (e.g. removing a focussed input), + * AngularJS executes the expression using `scope.$evalAsync` if the event is fired + * during an `$apply` to ensure a consistent state. + * * @element window, input, select, textarea, a * @priority 0 * @param {expression} ngBlur {@link guide/expression Expression} to evaluate upon @@ -19501,6 +23722,7 @@ forEach( * @ngdoc directive * @name ngIf * @restrict A + * @multiElement * * @description * The `ngIf` directive removes or recreates a portion of the DOM tree based on an @@ -19516,7 +23738,7 @@ forEach( * Note that when an element is removed using `ngIf` its scope is destroyed and a new scope * is created when the element is restored. The scope created within `ngIf` inherits from * its parent scope using - * [prototypal inheritance](https://github.com/angular/angular.js/wiki/The-Nuances-of-Scope-Prototypal-Inheritance). + * [prototypal inheritance](https://github.com/angular/angular.js/wiki/Understanding-Scopes#javascript-prototypal-inheritance). * An important implication of this is if `ngModel` is used within `ngIf` to bind to * a javascript primitive defined in the parent scope. In this case any modifications made to the * variable within the child scope will override (hide) the value in the parent scope. @@ -19530,8 +23752,8 @@ forEach( * and `leave` effects. * * @animations - * enter - happens just after the ngIf contents change and a new DOM element is created and injected into the ngIf container - * leave - happens just before the ngIf contents are removed from the DOM + * enter - happens just after the `ngIf` contents change and a new DOM element is created and injected into the `ngIf` container + * leave - happens just before the `ngIf` contents are removed from the DOM * * @element ANY * @scope @@ -19543,10 +23765,10 @@ forEach( * @example - Click me:
+
Show when checked: - I'm removed when the checkbox is unchecked. + This is removed when the checkbox is unchecked.
@@ -19575,19 +23797,20 @@ forEach( */ var ngIfDirective = ['$animate', function($animate) { return { + multiElement: true, transclude: 'element', priority: 600, terminal: true, restrict: 'A', $$tlb: true, - link: function ($scope, $element, $attr, ctrl, $transclude) { + link: function($scope, $element, $attr, ctrl, $transclude) { var block, childScope, previousElements; $scope.$watch($attr.ngIf, function ngIfWatchAction(value) { - if (toBoolean(value)) { + if (value) { if (!childScope) { - childScope = $scope.$new(); - $transclude(childScope, function (clone) { + $transclude(function(clone, newScope) { + childScope = newScope; clone[clone.length++] = document.createComment(' end ngIf: ' + $attr.ngIf + ' '); // Note: We only need the first/last node of the cloned nodes. // However, we need to keep the reference to the jqlite wrapper as it might be changed later @@ -19599,17 +23822,17 @@ var ngIfDirective = ['$animate', function($animate) { }); } } else { - if(previousElements) { + if (previousElements) { previousElements.remove(); previousElements = null; } - if(childScope) { + if (childScope) { childScope.$destroy(); childScope = null; } - if(block) { - previousElements = getBlockElements(block.clone); - $animate.leave(previousElements, function() { + if (block) { + previousElements = getBlockNodes(block.clone); + $animate.leave(previousElements).then(function() { previousElements = null; }); block = null; @@ -19629,10 +23852,10 @@ var ngIfDirective = ['$animate', function($animate) { * Fetches, compiles and includes an external HTML fragment. * * By default, the template URL is restricted to the same domain and protocol as the - * application document. This is done by calling {@link ng.$sce#getTrustedResourceUrl + * application document. This is done by calling {@link $sce#getTrustedResourceUrl * $sce.getTrustedResourceUrl} on it. To load templates from other domains or protocols * you may either {@link ng.$sceDelegateProvider#resourceUrlWhitelist whitelist them} or - * [wrap them](ng.$sce#trustAsResourceUrl) as trusted values. Refer to Angular's {@link + * {@link $sce#trustAsResourceUrl wrap them} as trusted values. Refer to Angular's {@link * ng.$sce Strict Contextual Escaping}. * * In addition, the browser's @@ -19669,7 +23892,7 @@ var ngIfDirective = ['$animate', function($animate) { - url of the template: {{template.url}} + url of the template: {{template.url}}
@@ -19770,6 +23993,9 @@ var ngIfDirective = ['$animate', function($animate) { * @eventType emit on the scope ngInclude was declared in * @description * Emitted every time the ngInclude content is requested. + * + * @param {Object} angularEvent Synthetic event object. + * @param {String} src URL of content to load. */ @@ -19779,9 +24005,24 @@ var ngIfDirective = ['$animate', function($animate) { * @eventType emit on the current ngInclude scope * @description * Emitted every time the ngInclude content is reloaded. + * + * @param {Object} angularEvent Synthetic event object. + * @param {String} src URL of content to load. */ -var ngIncludeDirective = ['$http', '$templateCache', '$anchorScroll', '$animate', '$sce', - function($http, $templateCache, $anchorScroll, $animate, $sce) { + + +/** + * @ngdoc event + * @name ngInclude#$includeContentError + * @eventType emit on the scope ngInclude was declared in + * @description + * Emitted when a template HTTP request yields an erroneous response (status < 200 || status > 299) + * + * @param {Object} angularEvent Synthetic event object. + * @param {String} src URL of content to load. + */ +var ngIncludeDirective = ['$templateRequest', '$anchorScroll', '$animate', + function($templateRequest, $anchorScroll, $animate) { return { restrict: 'ECA', priority: 400, @@ -19800,16 +24041,16 @@ var ngIncludeDirective = ['$http', '$templateCache', '$anchorScroll', '$animate' currentElement; var cleanupLastIncludeContent = function() { - if(previousElement) { + if (previousElement) { previousElement.remove(); previousElement = null; } - if(currentScope) { + if (currentScope) { currentScope.$destroy(); currentScope = null; } - if(currentElement) { - $animate.leave(currentElement, function() { + if (currentElement) { + $animate.leave(currentElement).then(function() { previousElement = null; }); previousElement = currentElement; @@ -19817,7 +24058,7 @@ var ngIncludeDirective = ['$http', '$templateCache', '$anchorScroll', '$animate' } }; - scope.$watch($sce.parseAsResourceUrl(srcExp), function ngIncludeWatchAction(src) { + scope.$watch(srcExp, function ngIncludeWatchAction(src) { var afterAnimation = function() { if (isDefined(autoScrollExp) && (!autoScrollExp || scope.$eval(autoScrollExp))) { $anchorScroll(); @@ -19826,7 +24067,9 @@ var ngIncludeDirective = ['$http', '$templateCache', '$anchorScroll', '$animate' var thisChangeId = ++changeCounter; if (src) { - $http.get(src, {cache: $templateCache}).success(function(response) { + //set the 2nd param to true to ignore the template request error so that the inner + //contents and scope can be cleaned up. + $templateRequest(src, true).then(function(response) { if (thisChangeId !== changeCounter) return; var newScope = scope.$new(); ctrl.template = response; @@ -19839,18 +24082,21 @@ var ngIncludeDirective = ['$http', '$templateCache', '$anchorScroll', '$animate' // directives to non existing elements. var clone = $transclude(newScope, function(clone) { cleanupLastIncludeContent(); - $animate.enter(clone, null, $element, afterAnimation); + $animate.enter(clone, null, $element).then(afterAnimation); }); currentScope = newScope; currentElement = clone; - currentScope.$emit('$includeContentLoaded'); + currentScope.$emit('$includeContentLoaded', src); scope.$eval(onloadExp); - }).error(function() { - if (thisChangeId === changeCounter) cleanupLastIncludeContent(); + }, function() { + if (thisChangeId === changeCounter) { + cleanupLastIncludeContent(); + scope.$emit('$includeContentError', src); + } }); - scope.$emit('$includeContentRequested'); + scope.$emit('$includeContentRequested', src); } else { cleanupLastIncludeContent(); ctrl.template = null; @@ -19873,6 +24119,18 @@ var ngIncludeFillContentDirective = ['$compile', priority: -400, require: 'ngInclude', link: function(scope, $element, $attr, ctrl) { + if (/SVG/.test($element[0].toString())) { + // WebKit: https://bugs.webkit.org/show_bug.cgi?id=135698 --- SVG elements do not + // support innerHTML, so detect this here and try to generate the contents + // specially. + $element.empty(); + $compile(jqLiteBuildFragment(ctrl.template, document).childNodes)(scope, + function namespaceAdaptedClone(clone) { + $element.append(clone); + }, {futureParentElement: $element}); + return; + } + $element.html(ctrl.template); $compile($element.contents())(scope); } @@ -19888,7 +24146,7 @@ var ngIncludeFillContentDirective = ['$compile', * The `ngInit` directive allows you to evaluate an expression in the * current scope. * - *
+ *
* The only appropriate use of `ngInit` is for aliasing special properties of * {@link ng.directive:ngRepeat `ngRepeat`}, as seen in the demo below. Besides this case, you * should use {@link guide/controller controllers} rather than `ngInit` @@ -19898,7 +24156,7 @@ var ngIncludeFillContentDirective = ['$compile', * **Note**: If you have assignment in `ngInit` along with {@link ng.$filter `$filter`}, make * sure you have parenthesis for correct precedence: *
- *   
+ * `
` *
*
* @@ -19946,6 +24204,1489 @@ var ngInitDirective = ngDirective({ } }); +/** + * @ngdoc directive + * @name ngList + * + * @description + * Text input that converts between a delimited string and an array of strings. The default + * delimiter is a comma followed by a space - equivalent to `ng-list=", "`. You can specify a custom + * delimiter as the value of the `ngList` attribute - for example, `ng-list=" | "`. + * + * The behaviour of the directive is affected by the use of the `ngTrim` attribute. + * * If `ngTrim` is set to `"false"` then whitespace around both the separator and each + * list item is respected. This implies that the user of the directive is responsible for + * dealing with whitespace but also allows you to use whitespace as a delimiter, such as a + * tab or newline character. + * * Otherwise whitespace around the delimiter is ignored when splitting (although it is respected + * when joining the list items back together) and whitespace around each list item is stripped + * before it is added to the model. + * + * ### Example with Validation + * + * + * + * angular.module('listExample', []) + * .controller('ExampleController', ['$scope', function($scope) { + * $scope.names = ['morpheus', 'neo', 'trinity']; + * }]); + * + * + *
+ * + * + * + * Required! + * + *
+ * names = {{names}}
+ * myForm.namesInput.$valid = {{myForm.namesInput.$valid}}
+ * myForm.namesInput.$error = {{myForm.namesInput.$error}}
+ * myForm.$valid = {{myForm.$valid}}
+ * myForm.$error.required = {{!!myForm.$error.required}}
+ * + *
+ * + * var listInput = element(by.model('names')); + * var names = element(by.exactBinding('names')); + * var valid = element(by.binding('myForm.namesInput.$valid')); + * var error = element(by.css('span.error')); + * + * it('should initialize to model', function() { + * expect(names.getText()).toContain('["morpheus","neo","trinity"]'); + * expect(valid.getText()).toContain('true'); + * expect(error.getCssValue('display')).toBe('none'); + * }); + * + * it('should be invalid if empty', function() { + * listInput.clear(); + * listInput.sendKeys(''); + * + * expect(names.getText()).toContain(''); + * expect(valid.getText()).toContain('false'); + * expect(error.getCssValue('display')).not.toBe('none'); + * }); + * + *
+ * + * ### Example - splitting on whitespace + * + * + * + *
{{ list | json }}
+ *
+ * + * it("should split the text by newlines", function() { + * var listInput = element(by.model('list')); + * var output = element(by.binding('list | json')); + * listInput.sendKeys('abc\ndef\nghi'); + * expect(output.getText()).toContain('[\n "abc",\n "def",\n "ghi"\n]'); + * }); + * + *
+ * + * @element input + * @param {string=} ngList optional delimiter that should be used to split the value. + */ +var ngListDirective = function() { + return { + restrict: 'A', + priority: 100, + require: 'ngModel', + link: function(scope, element, attr, ctrl) { + // We want to control whitespace trimming so we use this convoluted approach + // to access the ngList attribute, which doesn't pre-trim the attribute + var ngList = element.attr(attr.$attr.ngList) || ', '; + var trimValues = attr.ngTrim !== 'false'; + var separator = trimValues ? trim(ngList) : ngList; + + var parse = function(viewValue) { + // If the viewValue is invalid (say required but empty) it will be `undefined` + if (isUndefined(viewValue)) return; + + var list = []; + + if (viewValue) { + forEach(viewValue.split(separator), function(value) { + if (value) list.push(trimValues ? trim(value) : value); + }); + } + + return list; + }; + + ctrl.$parsers.push(parse); + ctrl.$formatters.push(function(value) { + if (isArray(value)) { + return value.join(ngList); + } + + return undefined; + }); + + // Override the standard $isEmpty because an empty array means the input is empty. + ctrl.$isEmpty = function(value) { + return !value || !value.length; + }; + } + }; +}; + +/* global VALID_CLASS: true, + INVALID_CLASS: true, + PRISTINE_CLASS: true, + DIRTY_CLASS: true, + UNTOUCHED_CLASS: true, + TOUCHED_CLASS: true, +*/ + +var VALID_CLASS = 'ng-valid', + INVALID_CLASS = 'ng-invalid', + PRISTINE_CLASS = 'ng-pristine', + DIRTY_CLASS = 'ng-dirty', + UNTOUCHED_CLASS = 'ng-untouched', + TOUCHED_CLASS = 'ng-touched', + PENDING_CLASS = 'ng-pending'; + + +var $ngModelMinErr = new minErr('ngModel'); + +/** + * @ngdoc type + * @name ngModel.NgModelController + * + * @property {string} $viewValue Actual string value in the view. + * @property {*} $modelValue The value in the model that the control is bound to. + * @property {Array.} $parsers Array of functions to execute, as a pipeline, whenever + the control reads value from the DOM. The functions are called in array order, each passing + its return value through to the next. The last return value is forwarded to the + {@link ngModel.NgModelController#$validators `$validators`} collection. + +Parsers are used to sanitize / convert the {@link ngModel.NgModelController#$viewValue +`$viewValue`}. + +Returning `undefined` from a parser means a parse error occurred. In that case, +no {@link ngModel.NgModelController#$validators `$validators`} will run and the `ngModel` +will be set to `undefined` unless {@link ngModelOptions `ngModelOptions.allowInvalid`} +is set to `true`. The parse error is stored in `ngModel.$error.parse`. + + * + * @property {Array.} $formatters Array of functions to execute, as a pipeline, whenever + the model value changes. The functions are called in reverse array order, each passing the value through to the + next. The last return value is used as the actual DOM value. + Used to format / convert values for display in the control. + * ```js + * function formatter(value) { + * if (value) { + * return value.toUpperCase(); + * } + * } + * ngModel.$formatters.push(formatter); + * ``` + * + * @property {Object.} $validators A collection of validators that are applied + * whenever the model value changes. The key value within the object refers to the name of the + * validator while the function refers to the validation operation. The validation operation is + * provided with the model value as an argument and must return a true or false value depending + * on the response of that validation. + * + * ```js + * ngModel.$validators.validCharacters = function(modelValue, viewValue) { + * var value = modelValue || viewValue; + * return /[0-9]+/.test(value) && + * /[a-z]+/.test(value) && + * /[A-Z]+/.test(value) && + * /\W+/.test(value); + * }; + * ``` + * + * @property {Object.} $asyncValidators A collection of validations that are expected to + * perform an asynchronous validation (e.g. a HTTP request). The validation function that is provided + * is expected to return a promise when it is run during the model validation process. Once the promise + * is delivered then the validation status will be set to true when fulfilled and false when rejected. + * When the asynchronous validators are triggered, each of the validators will run in parallel and the model + * value will only be updated once all validators have been fulfilled. As long as an asynchronous validator + * is unfulfilled, its key will be added to the controllers `$pending` property. Also, all asynchronous validators + * will only run once all synchronous validators have passed. + * + * Please note that if $http is used then it is important that the server returns a success HTTP response code + * in order to fulfill the validation and a status level of `4xx` in order to reject the validation. + * + * ```js + * ngModel.$asyncValidators.uniqueUsername = function(modelValue, viewValue) { + * var value = modelValue || viewValue; + * + * // Lookup user by username + * return $http.get('/api/users/' + value). + * then(function resolved() { + * //username exists, this means validation fails + * return $q.reject('exists'); + * }, function rejected() { + * //username does not exist, therefore this validation passes + * return true; + * }); + * }; + * ``` + * + * @property {Array.} $viewChangeListeners Array of functions to execute whenever the + * view value has changed. It is called with no arguments, and its return value is ignored. + * This can be used in place of additional $watches against the model value. + * + * @property {Object} $error An object hash with all failing validator ids as keys. + * @property {Object} $pending An object hash with all pending validator ids as keys. + * + * @property {boolean} $untouched True if control has not lost focus yet. + * @property {boolean} $touched True if control has lost focus. + * @property {boolean} $pristine True if user has not interacted with the control yet. + * @property {boolean} $dirty True if user has already interacted with the control. + * @property {boolean} $valid True if there is no error. + * @property {boolean} $invalid True if at least one error on the control. + * @property {string} $name The name attribute of the control. + * + * @description + * + * `NgModelController` provides API for the {@link ngModel `ngModel`} directive. + * The controller contains services for data-binding, validation, CSS updates, and value formatting + * and parsing. It purposefully does not contain any logic which deals with DOM rendering or + * listening to DOM events. + * Such DOM related logic should be provided by other directives which make use of + * `NgModelController` for data-binding to control elements. + * Angular provides this DOM logic for most {@link input `input`} elements. + * At the end of this page you can find a {@link ngModel.NgModelController#custom-control-example + * custom control example} that uses `ngModelController` to bind to `contenteditable` elements. + * + * @example + * ### Custom Control Example + * This example shows how to use `NgModelController` with a custom control to achieve + * data-binding. Notice how different directives (`contenteditable`, `ng-model`, and `required`) + * collaborate together to achieve the desired result. + * + * `contenteditable` is an HTML5 attribute, which tells the browser to let the element + * contents be edited in place by the user. + * + * We are using the {@link ng.service:$sce $sce} service here and include the {@link ngSanitize $sanitize} + * module to automatically remove "bad" content like inline event listener (e.g. ``). + * However, as we are using `$sce` the model can still decide to provide unsafe content if it marks + * that content using the `$sce` service. + * + * + + [contenteditable] { + border: 1px solid black; + background-color: white; + min-height: 20px; + } + + .ng-invalid { + border: 1px solid red; + } + + + + angular.module('customControl', ['ngSanitize']). + directive('contenteditable', ['$sce', function($sce) { + return { + restrict: 'A', // only activate on element attribute + require: '?ngModel', // get a hold of NgModelController + link: function(scope, element, attrs, ngModel) { + if (!ngModel) return; // do nothing if no ng-model + + // Specify how UI should be updated + ngModel.$render = function() { + element.html($sce.getTrustedHtml(ngModel.$viewValue || '')); + }; + + // Listen for change events to enable binding + element.on('blur keyup change', function() { + scope.$evalAsync(read); + }); + read(); // initialize + + // Write data to the model + function read() { + var html = element.html(); + // When we clear the content editable the browser leaves a
behind + // If strip-br attribute is provided then we strip this out + if ( attrs.stripBr && html == '
' ) { + html = ''; + } + ngModel.$setViewValue(html); + } + } + }; + }]); +
+ +
+
Change me!
+ Required! +
+ + +
+ + it('should data-bind and become invalid', function() { + if (browser.params.browser == 'safari' || browser.params.browser == 'firefox') { + // SafariDriver can't handle contenteditable + // and Firefox driver can't clear contenteditables very well + return; + } + var contentEditable = element(by.css('[contenteditable]')); + var content = 'Change me!'; + + expect(contentEditable.getText()).toEqual(content); + + contentEditable.clear(); + contentEditable.sendKeys(protractor.Key.BACK_SPACE); + expect(contentEditable.getText()).toEqual(''); + expect(contentEditable.getAttribute('class')).toMatch(/ng-invalid-required/); + }); + + *
+ * + * + */ +var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$parse', '$animate', '$timeout', '$rootScope', '$q', '$interpolate', + function($scope, $exceptionHandler, $attr, $element, $parse, $animate, $timeout, $rootScope, $q, $interpolate) { + this.$viewValue = Number.NaN; + this.$modelValue = Number.NaN; + this.$$rawModelValue = undefined; // stores the parsed modelValue / model set from scope regardless of validity. + this.$validators = {}; + this.$asyncValidators = {}; + this.$parsers = []; + this.$formatters = []; + this.$viewChangeListeners = []; + this.$untouched = true; + this.$touched = false; + this.$pristine = true; + this.$dirty = false; + this.$valid = true; + this.$invalid = false; + this.$error = {}; // keep invalid keys here + this.$$success = {}; // keep valid keys here + this.$pending = undefined; // keep pending keys here + this.$name = $interpolate($attr.name || '', false)($scope); + + + var parsedNgModel = $parse($attr.ngModel), + parsedNgModelAssign = parsedNgModel.assign, + ngModelGet = parsedNgModel, + ngModelSet = parsedNgModelAssign, + pendingDebounce = null, + parserValid, + ctrl = this; + + this.$$setOptions = function(options) { + ctrl.$options = options; + if (options && options.getterSetter) { + var invokeModelGetter = $parse($attr.ngModel + '()'), + invokeModelSetter = $parse($attr.ngModel + '($$$p)'); + + ngModelGet = function($scope) { + var modelValue = parsedNgModel($scope); + if (isFunction(modelValue)) { + modelValue = invokeModelGetter($scope); + } + return modelValue; + }; + ngModelSet = function($scope, newValue) { + if (isFunction(parsedNgModel($scope))) { + invokeModelSetter($scope, {$$$p: ctrl.$modelValue}); + } else { + parsedNgModelAssign($scope, ctrl.$modelValue); + } + }; + } else if (!parsedNgModel.assign) { + throw $ngModelMinErr('nonassign', "Expression '{0}' is non-assignable. Element: {1}", + $attr.ngModel, startingTag($element)); + } + }; + + /** + * @ngdoc method + * @name ngModel.NgModelController#$render + * + * @description + * Called when the view needs to be updated. It is expected that the user of the ng-model + * directive will implement this method. + * + * The `$render()` method is invoked in the following situations: + * + * * `$rollbackViewValue()` is called. If we are rolling back the view value to the last + * committed value then `$render()` is called to update the input control. + * * The value referenced by `ng-model` is changed programmatically and both the `$modelValue` and + * the `$viewValue` are different from last time. + * + * Since `ng-model` does not do a deep watch, `$render()` is only invoked if the values of + * `$modelValue` and `$viewValue` are actually different from their previous value. If `$modelValue` + * or `$viewValue` are objects (rather than a string or number) then `$render()` will not be + * invoked if you only change a property on the objects. + */ + this.$render = noop; + + /** + * @ngdoc method + * @name ngModel.NgModelController#$isEmpty + * + * @description + * This is called when we need to determine if the value of an input is empty. + * + * For instance, the required directive does this to work out if the input has data or not. + * + * The default `$isEmpty` function checks whether the value is `undefined`, `''`, `null` or `NaN`. + * + * You can override this for input directives whose concept of being empty is different from the + * default. The `checkboxInputType` directive does this because in its case a value of `false` + * implies empty. + * + * @param {*} value The value of the input to check for emptiness. + * @returns {boolean} True if `value` is "empty". + */ + this.$isEmpty = function(value) { + return isUndefined(value) || value === '' || value === null || value !== value; + }; + + var parentForm = $element.inheritedData('$formController') || nullFormCtrl, + currentValidationRunId = 0; + + /** + * @ngdoc method + * @name ngModel.NgModelController#$setValidity + * + * @description + * Change the validity state, and notify the form. + * + * This method can be called within $parsers/$formatters or a custom validation implementation. + * However, in most cases it should be sufficient to use the `ngModel.$validators` and + * `ngModel.$asyncValidators` collections which will call `$setValidity` automatically. + * + * @param {string} validationErrorKey Name of the validator. The `validationErrorKey` will be assigned + * to either `$error[validationErrorKey]` or `$pending[validationErrorKey]` + * (for unfulfilled `$asyncValidators`), so that it is available for data-binding. + * The `validationErrorKey` should be in camelCase and will get converted into dash-case + * for class name. Example: `myError` will result in `ng-valid-my-error` and `ng-invalid-my-error` + * class and can be bound to as `{{someForm.someControl.$error.myError}}` . + * @param {boolean} isValid Whether the current state is valid (true), invalid (false), pending (undefined), + * or skipped (null). Pending is used for unfulfilled `$asyncValidators`. + * Skipped is used by Angular when validators do not run because of parse errors and + * when `$asyncValidators` do not run because any of the `$validators` failed. + */ + addSetValidityMethod({ + ctrl: this, + $element: $element, + set: function(object, property) { + object[property] = true; + }, + unset: function(object, property) { + delete object[property]; + }, + parentForm: parentForm, + $animate: $animate + }); + + /** + * @ngdoc method + * @name ngModel.NgModelController#$setPristine + * + * @description + * Sets the control to its pristine state. + * + * This method can be called to remove the `ng-dirty` class and set the control to its pristine + * state (`ng-pristine` class). A model is considered to be pristine when the control + * has not been changed from when first compiled. + */ + this.$setPristine = function() { + ctrl.$dirty = false; + ctrl.$pristine = true; + $animate.removeClass($element, DIRTY_CLASS); + $animate.addClass($element, PRISTINE_CLASS); + }; + + /** + * @ngdoc method + * @name ngModel.NgModelController#$setDirty + * + * @description + * Sets the control to its dirty state. + * + * This method can be called to remove the `ng-pristine` class and set the control to its dirty + * state (`ng-dirty` class). A model is considered to be dirty when the control has been changed + * from when first compiled. + */ + this.$setDirty = function() { + ctrl.$dirty = true; + ctrl.$pristine = false; + $animate.removeClass($element, PRISTINE_CLASS); + $animate.addClass($element, DIRTY_CLASS); + parentForm.$setDirty(); + }; + + /** + * @ngdoc method + * @name ngModel.NgModelController#$setUntouched + * + * @description + * Sets the control to its untouched state. + * + * This method can be called to remove the `ng-touched` class and set the control to its + * untouched state (`ng-untouched` class). Upon compilation, a model is set as untouched + * by default, however this function can be used to restore that state if the model has + * already been touched by the user. + */ + this.$setUntouched = function() { + ctrl.$touched = false; + ctrl.$untouched = true; + $animate.setClass($element, UNTOUCHED_CLASS, TOUCHED_CLASS); + }; + + /** + * @ngdoc method + * @name ngModel.NgModelController#$setTouched + * + * @description + * Sets the control to its touched state. + * + * This method can be called to remove the `ng-untouched` class and set the control to its + * touched state (`ng-touched` class). A model is considered to be touched when the user has + * first focused the control element and then shifted focus away from the control (blur event). + */ + this.$setTouched = function() { + ctrl.$touched = true; + ctrl.$untouched = false; + $animate.setClass($element, TOUCHED_CLASS, UNTOUCHED_CLASS); + }; + + /** + * @ngdoc method + * @name ngModel.NgModelController#$rollbackViewValue + * + * @description + * Cancel an update and reset the input element's value to prevent an update to the `$modelValue`, + * which may be caused by a pending debounced event or because the input is waiting for a some + * future event. + * + * If you have an input that uses `ng-model-options` to set up debounced events or events such + * as blur you can have a situation where there is a period when the `$viewValue` + * is out of synch with the ngModel's `$modelValue`. + * + * In this case, you can run into difficulties if you try to update the ngModel's `$modelValue` + * programmatically before these debounced/future events have resolved/occurred, because Angular's + * dirty checking mechanism is not able to tell whether the model has actually changed or not. + * + * The `$rollbackViewValue()` method should be called before programmatically changing the model of an + * input which may have such events pending. This is important in order to make sure that the + * input field will be updated with the new model value and any pending operations are cancelled. + * + * + * + * angular.module('cancel-update-example', []) + * + * .controller('CancelUpdateController', ['$scope', function($scope) { + * $scope.resetWithCancel = function(e) { + * if (e.keyCode == 27) { + * $scope.myForm.myInput1.$rollbackViewValue(); + * $scope.myValue = ''; + * } + * }; + * $scope.resetWithoutCancel = function(e) { + * if (e.keyCode == 27) { + * $scope.myValue = ''; + * } + * }; + * }]); + * + * + *
+ *

Try typing something in each input. See that the model only updates when you + * blur off the input. + *

+ *

Now see what happens if you start typing then press the Escape key

+ * + *
+ *

With $rollbackViewValue()

+ *
+ * myValue: "{{ myValue }}" + * + *

Without $rollbackViewValue()

+ *
+ * myValue: "{{ myValue }}" + * + *
+ *
+ *
+ */ + this.$rollbackViewValue = function() { + $timeout.cancel(pendingDebounce); + ctrl.$viewValue = ctrl.$$lastCommittedViewValue; + ctrl.$render(); + }; + + /** + * @ngdoc method + * @name ngModel.NgModelController#$validate + * + * @description + * Runs each of the registered validators (first synchronous validators and then + * asynchronous validators). + * If the validity changes to invalid, the model will be set to `undefined`, + * unless {@link ngModelOptions `ngModelOptions.allowInvalid`} is `true`. + * If the validity changes to valid, it will set the model to the last available valid + * `$modelValue`, i.e. either the last parsed value or the last value set from the scope. + */ + this.$validate = function() { + // ignore $validate before model is initialized + if (isNumber(ctrl.$modelValue) && isNaN(ctrl.$modelValue)) { + return; + } + + var viewValue = ctrl.$$lastCommittedViewValue; + // Note: we use the $$rawModelValue as $modelValue might have been + // set to undefined during a view -> model update that found validation + // errors. We can't parse the view here, since that could change + // the model although neither viewValue nor the model on the scope changed + var modelValue = ctrl.$$rawModelValue; + + var prevValid = ctrl.$valid; + var prevModelValue = ctrl.$modelValue; + + var allowInvalid = ctrl.$options && ctrl.$options.allowInvalid; + + ctrl.$$runValidators(modelValue, viewValue, function(allValid) { + // If there was no change in validity, don't update the model + // This prevents changing an invalid modelValue to undefined + if (!allowInvalid && prevValid !== allValid) { + // Note: Don't check ctrl.$valid here, as we could have + // external validators (e.g. calculated on the server), + // that just call $setValidity and need the model value + // to calculate their validity. + ctrl.$modelValue = allValid ? modelValue : undefined; + + if (ctrl.$modelValue !== prevModelValue) { + ctrl.$$writeModelToScope(); + } + } + }); + + }; + + this.$$runValidators = function(modelValue, viewValue, doneCallback) { + currentValidationRunId++; + var localValidationRunId = currentValidationRunId; + + // check parser error + if (!processParseErrors()) { + validationDone(false); + return; + } + if (!processSyncValidators()) { + validationDone(false); + return; + } + processAsyncValidators(); + + function processParseErrors() { + var errorKey = ctrl.$$parserName || 'parse'; + if (parserValid === undefined) { + setValidity(errorKey, null); + } else { + if (!parserValid) { + forEach(ctrl.$validators, function(v, name) { + setValidity(name, null); + }); + forEach(ctrl.$asyncValidators, function(v, name) { + setValidity(name, null); + }); + } + // Set the parse error last, to prevent unsetting it, should a $validators key == parserName + setValidity(errorKey, parserValid); + return parserValid; + } + return true; + } + + function processSyncValidators() { + var syncValidatorsValid = true; + forEach(ctrl.$validators, function(validator, name) { + var result = validator(modelValue, viewValue); + syncValidatorsValid = syncValidatorsValid && result; + setValidity(name, result); + }); + if (!syncValidatorsValid) { + forEach(ctrl.$asyncValidators, function(v, name) { + setValidity(name, null); + }); + return false; + } + return true; + } + + function processAsyncValidators() { + var validatorPromises = []; + var allValid = true; + forEach(ctrl.$asyncValidators, function(validator, name) { + var promise = validator(modelValue, viewValue); + if (!isPromiseLike(promise)) { + throw $ngModelMinErr("$asyncValidators", + "Expected asynchronous validator to return a promise but got '{0}' instead.", promise); + } + setValidity(name, undefined); + validatorPromises.push(promise.then(function() { + setValidity(name, true); + }, function(error) { + allValid = false; + setValidity(name, false); + })); + }); + if (!validatorPromises.length) { + validationDone(true); + } else { + $q.all(validatorPromises).then(function() { + validationDone(allValid); + }, noop); + } + } + + function setValidity(name, isValid) { + if (localValidationRunId === currentValidationRunId) { + ctrl.$setValidity(name, isValid); + } + } + + function validationDone(allValid) { + if (localValidationRunId === currentValidationRunId) { + + doneCallback(allValid); + } + } + }; + + /** + * @ngdoc method + * @name ngModel.NgModelController#$commitViewValue + * + * @description + * Commit a pending update to the `$modelValue`. + * + * Updates may be pending by a debounced event or because the input is waiting for a some future + * event defined in `ng-model-options`. this method is rarely needed as `NgModelController` + * usually handles calling this in response to input events. + */ + this.$commitViewValue = function() { + var viewValue = ctrl.$viewValue; + + $timeout.cancel(pendingDebounce); + + // If the view value has not changed then we should just exit, except in the case where there is + // a native validator on the element. In this case the validation state may have changed even though + // the viewValue has stayed empty. + if (ctrl.$$lastCommittedViewValue === viewValue && (viewValue !== '' || !ctrl.$$hasNativeValidators)) { + return; + } + ctrl.$$lastCommittedViewValue = viewValue; + + // change to dirty + if (ctrl.$pristine) { + this.$setDirty(); + } + this.$$parseAndValidate(); + }; + + this.$$parseAndValidate = function() { + var viewValue = ctrl.$$lastCommittedViewValue; + var modelValue = viewValue; + parserValid = isUndefined(modelValue) ? undefined : true; + + if (parserValid) { + for (var i = 0; i < ctrl.$parsers.length; i++) { + modelValue = ctrl.$parsers[i](modelValue); + if (isUndefined(modelValue)) { + parserValid = false; + break; + } + } + } + if (isNumber(ctrl.$modelValue) && isNaN(ctrl.$modelValue)) { + // ctrl.$modelValue has not been touched yet... + ctrl.$modelValue = ngModelGet($scope); + } + var prevModelValue = ctrl.$modelValue; + var allowInvalid = ctrl.$options && ctrl.$options.allowInvalid; + ctrl.$$rawModelValue = modelValue; + + if (allowInvalid) { + ctrl.$modelValue = modelValue; + writeToModelIfNeeded(); + } + + // Pass the $$lastCommittedViewValue here, because the cached viewValue might be out of date. + // This can happen if e.g. $setViewValue is called from inside a parser + ctrl.$$runValidators(modelValue, ctrl.$$lastCommittedViewValue, function(allValid) { + if (!allowInvalid) { + // Note: Don't check ctrl.$valid here, as we could have + // external validators (e.g. calculated on the server), + // that just call $setValidity and need the model value + // to calculate their validity. + ctrl.$modelValue = allValid ? modelValue : undefined; + writeToModelIfNeeded(); + } + }); + + function writeToModelIfNeeded() { + if (ctrl.$modelValue !== prevModelValue) { + ctrl.$$writeModelToScope(); + } + } + }; + + this.$$writeModelToScope = function() { + ngModelSet($scope, ctrl.$modelValue); + forEach(ctrl.$viewChangeListeners, function(listener) { + try { + listener(); + } catch (e) { + $exceptionHandler(e); + } + }); + }; + + /** + * @ngdoc method + * @name ngModel.NgModelController#$setViewValue + * + * @description + * Update the view value. + * + * This method should be called when an input directive want to change the view value; typically, + * this is done from within a DOM event handler. + * + * For example {@link ng.directive:input input} calls it when the value of the input changes and + * {@link ng.directive:select select} calls it when an option is selected. + * + * If the new `value` is an object (rather than a string or a number), we should make a copy of the + * object before passing it to `$setViewValue`. This is because `ngModel` does not perform a deep + * watch of objects, it only looks for a change of identity. If you only change the property of + * the object then ngModel will not realise that the object has changed and will not invoke the + * `$parsers` and `$validators` pipelines. + * + * For this reason, you should not change properties of the copy once it has been passed to + * `$setViewValue`. Otherwise you may cause the model value on the scope to change incorrectly. + * + * When this method is called, the new `value` will be staged for committing through the `$parsers` + * and `$validators` pipelines. If there are no special {@link ngModelOptions} specified then the staged + * value sent directly for processing, finally to be applied to `$modelValue` and then the + * **expression** specified in the `ng-model` attribute. + * + * Lastly, all the registered change listeners, in the `$viewChangeListeners` list, are called. + * + * In case the {@link ng.directive:ngModelOptions ngModelOptions} directive is used with `updateOn` + * and the `default` trigger is not listed, all those actions will remain pending until one of the + * `updateOn` events is triggered on the DOM element. + * All these actions will be debounced if the {@link ng.directive:ngModelOptions ngModelOptions} + * directive is used with a custom debounce for this particular event. + * + * Note that calling this function does not trigger a `$digest`. + * + * @param {string} value Value from the view. + * @param {string} trigger Event that triggered the update. + */ + this.$setViewValue = function(value, trigger) { + ctrl.$viewValue = value; + if (!ctrl.$options || ctrl.$options.updateOnDefault) { + ctrl.$$debounceViewValueCommit(trigger); + } + }; + + this.$$debounceViewValueCommit = function(trigger) { + var debounceDelay = 0, + options = ctrl.$options, + debounce; + + if (options && isDefined(options.debounce)) { + debounce = options.debounce; + if (isNumber(debounce)) { + debounceDelay = debounce; + } else if (isNumber(debounce[trigger])) { + debounceDelay = debounce[trigger]; + } else if (isNumber(debounce['default'])) { + debounceDelay = debounce['default']; + } + } + + $timeout.cancel(pendingDebounce); + if (debounceDelay) { + pendingDebounce = $timeout(function() { + ctrl.$commitViewValue(); + }, debounceDelay); + } else if ($rootScope.$$phase) { + ctrl.$commitViewValue(); + } else { + $scope.$apply(function() { + ctrl.$commitViewValue(); + }); + } + }; + + // model -> value + // Note: we cannot use a normal scope.$watch as we want to detect the following: + // 1. scope value is 'a' + // 2. user enters 'b' + // 3. ng-change kicks in and reverts scope value to 'a' + // -> scope value did not change since the last digest as + // ng-change executes in apply phase + // 4. view should be changed back to 'a' + $scope.$watch(function ngModelWatch() { + var modelValue = ngModelGet($scope); + + // if scope model value and ngModel value are out of sync + // TODO(perf): why not move this to the action fn? + if (modelValue !== ctrl.$modelValue && + // checks for NaN is needed to allow setting the model to NaN when there's an asyncValidator + (ctrl.$modelValue === ctrl.$modelValue || modelValue === modelValue) + ) { + ctrl.$modelValue = ctrl.$$rawModelValue = modelValue; + parserValid = undefined; + + var formatters = ctrl.$formatters, + idx = formatters.length; + + var viewValue = modelValue; + while (idx--) { + viewValue = formatters[idx](viewValue); + } + if (ctrl.$viewValue !== viewValue) { + ctrl.$viewValue = ctrl.$$lastCommittedViewValue = viewValue; + ctrl.$render(); + + ctrl.$$runValidators(modelValue, viewValue, noop); + } + } + + return modelValue; + }); +}]; + + +/** + * @ngdoc directive + * @name ngModel + * + * @element input + * @priority 1 + * + * @description + * The `ngModel` directive binds an `input`,`select`, `textarea` (or custom form control) to a + * property on the scope using {@link ngModel.NgModelController NgModelController}, + * which is created and exposed by this directive. + * + * `ngModel` is responsible for: + * + * - Binding the view into the model, which other directives such as `input`, `textarea` or `select` + * require. + * - Providing validation behavior (i.e. required, number, email, url). + * - Keeping the state of the control (valid/invalid, dirty/pristine, touched/untouched, validation errors). + * - Setting related css classes on the element (`ng-valid`, `ng-invalid`, `ng-dirty`, `ng-pristine`, `ng-touched`, `ng-untouched`) including animations. + * - Registering the control with its parent {@link ng.directive:form form}. + * + * Note: `ngModel` will try to bind to the property given by evaluating the expression on the + * current scope. If the property doesn't already exist on this scope, it will be created + * implicitly and added to the scope. + * + * For best practices on using `ngModel`, see: + * + * - [Understanding Scopes](https://github.com/angular/angular.js/wiki/Understanding-Scopes) + * + * For basic examples, how to use `ngModel`, see: + * + * - {@link ng.directive:input input} + * - {@link input[text] text} + * - {@link input[checkbox] checkbox} + * - {@link input[radio] radio} + * - {@link input[number] number} + * - {@link input[email] email} + * - {@link input[url] url} + * - {@link input[date] date} + * - {@link input[datetime-local] datetime-local} + * - {@link input[time] time} + * - {@link input[month] month} + * - {@link input[week] week} + * - {@link ng.directive:select select} + * - {@link ng.directive:textarea textarea} + * + * # CSS classes + * The following CSS classes are added and removed on the associated input/select/textarea element + * depending on the validity of the model. + * + * - `ng-valid`: the model is valid + * - `ng-invalid`: the model is invalid + * - `ng-valid-[key]`: for each valid key added by `$setValidity` + * - `ng-invalid-[key]`: for each invalid key added by `$setValidity` + * - `ng-pristine`: the control hasn't been interacted with yet + * - `ng-dirty`: the control has been interacted with + * - `ng-touched`: the control has been blurred + * - `ng-untouched`: the control hasn't been blurred + * - `ng-pending`: any `$asyncValidators` are unfulfilled + * + * Keep in mind that ngAnimate can detect each of these classes when added and removed. + * + * ## Animation Hooks + * + * Animations within models are triggered when any of the associated CSS classes are added and removed + * on the input element which is attached to the model. These classes are: `.ng-pristine`, `.ng-dirty`, + * `.ng-invalid` and `.ng-valid` as well as any other validations that are performed on the model itself. + * The animations that are triggered within ngModel are similar to how they work in ngClass and + * animations can be hooked into using CSS transitions, keyframes as well as JS animations. + * + * The following example shows a simple way to utilize CSS transitions to style an input element + * that has been rendered as invalid after it has been validated: + * + *
+ * //be sure to include ngAnimate as a module to hook into more
+ * //advanced animations
+ * .my-input {
+ *   transition:0.5s linear all;
+ *   background: white;
+ * }
+ * .my-input.ng-invalid {
+ *   background: red;
+ *   color:white;
+ * }
+ * 
+ * + * @example + * + + + +

+ Update input to see transitions when valid/invalid. + Integer is a valid value. +

+
+ + +
+ *
+ * + * ## Binding to a getter/setter + * + * Sometimes it's helpful to bind `ngModel` to a getter/setter function. A getter/setter is a + * function that returns a representation of the model when called with zero arguments, and sets + * the internal state of a model when called with an argument. It's sometimes useful to use this + * for models that have an internal representation that's different from what the model exposes + * to the view. + * + *
+ * **Best Practice:** It's best to keep getters fast because Angular is likely to call them more + * frequently than other parts of your code. + *
+ * + * You use this behavior by adding `ng-model-options="{ getterSetter: true }"` to an element that + * has `ng-model` attached to it. You can also add `ng-model-options="{ getterSetter: true }"` to + * a `
`, which will enable this behavior for all ``s within it. See + * {@link ng.directive:ngModelOptions `ngModelOptions`} for more. + * + * The following example shows how to use `ngModel` with a getter/setter: + * + * @example + * + +
+ + + +
user.name = 
+
+
+ + angular.module('getterSetterExample', []) + .controller('ExampleController', ['$scope', function($scope) { + var _name = 'Brian'; + $scope.user = { + name: function(newName) { + // Note that newName can be undefined for two reasons: + // 1. Because it is called as a getter and thus called with no arguments + // 2. Because the property should actually be set to undefined. This happens e.g. if the + // input is invalid + return arguments.length ? (_name = newName) : _name; + } + }; + }]); + + *
+ */ +var ngModelDirective = ['$rootScope', function($rootScope) { + return { + restrict: 'A', + require: ['ngModel', '^?form', '^?ngModelOptions'], + controller: NgModelController, + // Prelink needs to run before any input directive + // so that we can set the NgModelOptions in NgModelController + // before anyone else uses it. + priority: 1, + compile: function ngModelCompile(element) { + // Setup initial state of the control + element.addClass(PRISTINE_CLASS).addClass(UNTOUCHED_CLASS).addClass(VALID_CLASS); + + return { + pre: function ngModelPreLink(scope, element, attr, ctrls) { + var modelCtrl = ctrls[0], + formCtrl = ctrls[1] || nullFormCtrl; + + modelCtrl.$$setOptions(ctrls[2] && ctrls[2].$options); + + // notify others, especially parent forms + formCtrl.$addControl(modelCtrl); + + attr.$observe('name', function(newValue) { + if (modelCtrl.$name !== newValue) { + formCtrl.$$renameControl(modelCtrl, newValue); + } + }); + + scope.$on('$destroy', function() { + formCtrl.$removeControl(modelCtrl); + }); + }, + post: function ngModelPostLink(scope, element, attr, ctrls) { + var modelCtrl = ctrls[0]; + if (modelCtrl.$options && modelCtrl.$options.updateOn) { + element.on(modelCtrl.$options.updateOn, function(ev) { + modelCtrl.$$debounceViewValueCommit(ev && ev.type); + }); + } + + element.on('blur', function(ev) { + if (modelCtrl.$touched) return; + + if ($rootScope.$$phase) { + scope.$evalAsync(modelCtrl.$setTouched); + } else { + scope.$apply(modelCtrl.$setTouched); + } + }); + } + }; + } + }; +}]; + +var DEFAULT_REGEXP = /(\s+|^)default(\s+|$)/; + +/** + * @ngdoc directive + * @name ngModelOptions + * + * @description + * Allows tuning how model updates are done. Using `ngModelOptions` you can specify a custom list of + * events that will trigger a model update and/or a debouncing delay so that the actual update only + * takes place when a timer expires; this timer will be reset after another change takes place. + * + * Given the nature of `ngModelOptions`, the value displayed inside input fields in the view might + * be different from the value in the actual model. This means that if you update the model you + * should also invoke {@link ngModel.NgModelController `$rollbackViewValue`} on the relevant input field in + * order to make sure it is synchronized with the model and that any debounced action is canceled. + * + * The easiest way to reference the control's {@link ngModel.NgModelController `$rollbackViewValue`} + * method is by making sure the input is placed inside a form that has a `name` attribute. This is + * important because `form` controllers are published to the related scope under the name in their + * `name` attribute. + * + * Any pending changes will take place immediately when an enclosing form is submitted via the + * `submit` event. Note that `ngClick` events will occur before the model is updated. Use `ngSubmit` + * to have access to the updated model. + * + * `ngModelOptions` has an effect on the element it's declared on and its descendants. + * + * @param {Object} ngModelOptions options to apply to the current model. Valid keys are: + * - `updateOn`: string specifying which event should the input be bound to. You can set several + * events using an space delimited list. There is a special event called `default` that + * matches the default events belonging of the control. + * - `debounce`: integer value which contains the debounce model update value in milliseconds. A + * value of 0 triggers an immediate update. If an object is supplied instead, you can specify a + * custom value for each event. For example: + * `ng-model-options="{ updateOn: 'default blur', debounce: { 'default': 500, 'blur': 0 } }"` + * - `allowInvalid`: boolean value which indicates that the model can be set with values that did + * not validate correctly instead of the default behavior of setting the model to undefined. + * - `getterSetter`: boolean value which determines whether or not to treat functions bound to + `ngModel` as getters/setters. + * - `timezone`: Defines the timezone to be used to read/write the `Date` instance in the model for + * ``, ``, ... . It understands UTC/GMT and the + * continental US time zone abbreviations, but for general use, use a time zone offset, for + * example, `'+0430'` (4 hours, 30 minutes east of the Greenwich meridian) + * If not specified, the timezone of the browser will be used. + * + * @example + + The following example shows how to override immediate updates. Changes on the inputs within the + form will update the model only when the control loses focus (blur event). If `escape` key is + pressed while the input field is focused, the value is reset to the value in the current model. + + + +
+
+
+
+ +
user.name = 
+
+
+ + angular.module('optionsExample', []) + .controller('ExampleController', ['$scope', function($scope) { + $scope.user = { name: 'say', data: '' }; + + $scope.cancel = function(e) { + if (e.keyCode == 27) { + $scope.userForm.userName.$rollbackViewValue(); + } + }; + }]); + + + var model = element(by.binding('user.name')); + var input = element(by.model('user.name')); + var other = element(by.model('user.data')); + + it('should allow custom events', function() { + input.sendKeys(' hello'); + input.click(); + expect(model.getText()).toEqual('say'); + other.click(); + expect(model.getText()).toEqual('say hello'); + }); + + it('should $rollbackViewValue when model changes', function() { + input.sendKeys(' hello'); + expect(input.getAttribute('value')).toEqual('say hello'); + input.sendKeys(protractor.Key.ESCAPE); + expect(input.getAttribute('value')).toEqual('say'); + other.click(); + expect(model.getText()).toEqual('say'); + }); + +
+ + This one shows how to debounce model changes. Model will be updated only 1 sec after last change. + If the `Clear` button is pressed, any debounced action is canceled and the value becomes empty. + + + +
+
+ + +
+ +
user.name = 
+
+
+ + angular.module('optionsExample', []) + .controller('ExampleController', ['$scope', function($scope) { + $scope.user = { name: 'say' }; + }]); + +
+ + This one shows how to bind to getter/setters: + + + +
+
+ + +
user.name = 
+
+
+ + angular.module('getterSetterExample', []) + .controller('ExampleController', ['$scope', function($scope) { + var _name = 'Brian'; + $scope.user = { + name: function(newName) { + // Note that newName can be undefined for two reasons: + // 1. Because it is called as a getter and thus called with no arguments + // 2. Because the property should actually be set to undefined. This happens e.g. if the + // input is invalid + return arguments.length ? (_name = newName) : _name; + } + }; + }]); + +
+ */ +var ngModelOptionsDirective = function() { + return { + restrict: 'A', + controller: ['$scope', '$attrs', function($scope, $attrs) { + var that = this; + this.$options = copy($scope.$eval($attrs.ngModelOptions)); + // Allow adding/overriding bound events + if (this.$options.updateOn !== undefined) { + this.$options.updateOnDefault = false; + // extract "default" pseudo-event from list of events that can trigger a model update + this.$options.updateOn = trim(this.$options.updateOn.replace(DEFAULT_REGEXP, function() { + that.$options.updateOnDefault = true; + return ' '; + })); + } else { + this.$options.updateOnDefault = true; + } + }] + }; +}; + + + +// helper methods +function addSetValidityMethod(context) { + var ctrl = context.ctrl, + $element = context.$element, + classCache = {}, + set = context.set, + unset = context.unset, + parentForm = context.parentForm, + $animate = context.$animate; + + classCache[INVALID_CLASS] = !(classCache[VALID_CLASS] = $element.hasClass(VALID_CLASS)); + + ctrl.$setValidity = setValidity; + + function setValidity(validationErrorKey, state, controller) { + if (state === undefined) { + createAndSet('$pending', validationErrorKey, controller); + } else { + unsetAndCleanup('$pending', validationErrorKey, controller); + } + if (!isBoolean(state)) { + unset(ctrl.$error, validationErrorKey, controller); + unset(ctrl.$$success, validationErrorKey, controller); + } else { + if (state) { + unset(ctrl.$error, validationErrorKey, controller); + set(ctrl.$$success, validationErrorKey, controller); + } else { + set(ctrl.$error, validationErrorKey, controller); + unset(ctrl.$$success, validationErrorKey, controller); + } + } + if (ctrl.$pending) { + cachedToggleClass(PENDING_CLASS, true); + ctrl.$valid = ctrl.$invalid = undefined; + toggleValidationCss('', null); + } else { + cachedToggleClass(PENDING_CLASS, false); + ctrl.$valid = isObjectEmpty(ctrl.$error); + ctrl.$invalid = !ctrl.$valid; + toggleValidationCss('', ctrl.$valid); + } + + // re-read the state as the set/unset methods could have + // combined state in ctrl.$error[validationError] (used for forms), + // where setting/unsetting only increments/decrements the value, + // and does not replace it. + var combinedState; + if (ctrl.$pending && ctrl.$pending[validationErrorKey]) { + combinedState = undefined; + } else if (ctrl.$error[validationErrorKey]) { + combinedState = false; + } else if (ctrl.$$success[validationErrorKey]) { + combinedState = true; + } else { + combinedState = null; + } + + toggleValidationCss(validationErrorKey, combinedState); + parentForm.$setValidity(validationErrorKey, combinedState, ctrl); + } + + function createAndSet(name, value, controller) { + if (!ctrl[name]) { + ctrl[name] = {}; + } + set(ctrl[name], value, controller); + } + + function unsetAndCleanup(name, value, controller) { + if (ctrl[name]) { + unset(ctrl[name], value, controller); + } + if (isObjectEmpty(ctrl[name])) { + ctrl[name] = undefined; + } + } + + function cachedToggleClass(className, switchValue) { + if (switchValue && !classCache[className]) { + $animate.addClass($element, className); + classCache[className] = true; + } else if (!switchValue && classCache[className]) { + $animate.removeClass($element, className); + classCache[className] = false; + } + } + + function toggleValidationCss(validationErrorKey, isValid) { + validationErrorKey = validationErrorKey ? '-' + snake_case(validationErrorKey, '-') : ''; + + cachedToggleClass(VALID_CLASS + validationErrorKey, isValid === true); + cachedToggleClass(INVALID_CLASS + validationErrorKey, isValid === false); + } +} + +function isObjectEmpty(obj) { + if (obj) { + for (var prop in obj) { + if (obj.hasOwnProperty(prop)) { + return false; + } + } + } + return true; +} + /** * @ngdoc directive * @name ngNonBindable @@ -19980,6 +25721,732 @@ var ngInitDirective = ngDirective({ */ var ngNonBindableDirective = ngDirective({ terminal: true, priority: 1000 }); +/* global jqLiteRemove */ + +var ngOptionsMinErr = minErr('ngOptions'); + +/** + * @ngdoc directive + * @name ngOptions + * @restrict A + * + * @description + * + * The `ngOptions` attribute can be used to dynamically generate a list of `
+ + + it('should check ng-options', function() { + expect(element(by.binding('{selected_color:myColor}')).getText()).toMatch('red'); + element.all(by.model('myColor')).first().click(); + element.all(by.css('select[ng-model="myColor"] option')).first().click(); + expect(element(by.binding('{selected_color:myColor}')).getText()).toMatch('black'); + element(by.css('.nullable select[ng-model="myColor"]')).click(); + element.all(by.css('.nullable select[ng-model="myColor"] option')).first().click(); + expect(element(by.binding('{selected_color:myColor}')).getText()).toMatch('null'); + }); + + + */ + +// jshint maxlen: false +// //00001111111111000000000002222222222000000000000000000000333333333300000000000000000000000004444444444400000000000005555555555555550000000006666666666666660000000777777777777777000000000000000888888888800000000000000000009999999999 +var NG_OPTIONS_REGEXP = /^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/; + // 1: value expression (valueFn) + // 2: label expression (displayFn) + // 3: group by expression (groupByFn) + // 4: disable when expression (disableWhenFn) + // 5: array item variable name + // 6: object item key variable name + // 7: object item value variable name + // 8: collection expression + // 9: track by expression +// jshint maxlen: 100 + + +var ngOptionsDirective = ['$compile', '$parse', function($compile, $parse) { + + function parseOptionsExpression(optionsExp, selectElement, scope) { + + var match = optionsExp.match(NG_OPTIONS_REGEXP); + if (!(match)) { + throw ngOptionsMinErr('iexp', + "Expected expression in form of " + + "'_select_ (as _label_)? for (_key_,)?_value_ in _collection_'" + + " but got '{0}'. Element: {1}", + optionsExp, startingTag(selectElement)); + } + + // Extract the parts from the ngOptions expression + + // The variable name for the value of the item in the collection + var valueName = match[5] || match[7]; + // The variable name for the key of the item in the collection + var keyName = match[6]; + + // An expression that generates the viewValue for an option if there is a label expression + var selectAs = / as /.test(match[0]) && match[1]; + // An expression that is used to track the id of each object in the options collection + var trackBy = match[9]; + // An expression that generates the viewValue for an option if there is no label expression + var valueFn = $parse(match[2] ? match[1] : valueName); + var selectAsFn = selectAs && $parse(selectAs); + var viewValueFn = selectAsFn || valueFn; + var trackByFn = trackBy && $parse(trackBy); + + // Get the value by which we are going to track the option + // if we have a trackFn then use that (passing scope and locals) + // otherwise just hash the given viewValue + var getTrackByValueFn = trackBy ? + function(value, locals) { return trackByFn(scope, locals); } : + function getHashOfValue(value) { return hashKey(value); }; + var getTrackByValue = function(value, key) { + return getTrackByValueFn(value, getLocals(value, key)); + }; + + var displayFn = $parse(match[2] || match[1]); + var groupByFn = $parse(match[3] || ''); + var disableWhenFn = $parse(match[4] || ''); + var valuesFn = $parse(match[8]); + + var locals = {}; + var getLocals = keyName ? function(value, key) { + locals[keyName] = key; + locals[valueName] = value; + return locals; + } : function(value) { + locals[valueName] = value; + return locals; + }; + + + function Option(selectValue, viewValue, label, group, disabled) { + this.selectValue = selectValue; + this.viewValue = viewValue; + this.label = label; + this.group = group; + this.disabled = disabled; + } + + function getOptionValuesKeys(optionValues) { + var optionValuesKeys; + + if (!keyName && isArrayLike(optionValues)) { + optionValuesKeys = optionValues; + } else { + // if object, extract keys, in enumeration order, unsorted + optionValuesKeys = []; + for (var itemKey in optionValues) { + if (optionValues.hasOwnProperty(itemKey) && itemKey.charAt(0) !== '$') { + optionValuesKeys.push(itemKey); + } + } + } + return optionValuesKeys; + } + + return { + trackBy: trackBy, + getTrackByValue: getTrackByValue, + getWatchables: $parse(valuesFn, function(optionValues) { + // Create a collection of things that we would like to watch (watchedArray) + // so that they can all be watched using a single $watchCollection + // that only runs the handler once if anything changes + var watchedArray = []; + optionValues = optionValues || []; + + var optionValuesKeys = getOptionValuesKeys(optionValues); + var optionValuesLength = optionValuesKeys.length; + for (var index = 0; index < optionValuesLength; index++) { + var key = (optionValues === optionValuesKeys) ? index : optionValuesKeys[index]; + var value = optionValues[key]; + + var locals = getLocals(optionValues[key], key); + var selectValue = getTrackByValueFn(optionValues[key], locals); + watchedArray.push(selectValue); + + // Only need to watch the displayFn if there is a specific label expression + if (match[2] || match[1]) { + var label = displayFn(scope, locals); + watchedArray.push(label); + } + + // Only need to watch the disableWhenFn if there is a specific disable expression + if (match[4]) { + var disableWhen = disableWhenFn(scope, locals); + watchedArray.push(disableWhen); + } + } + return watchedArray; + }), + + getOptions: function() { + + var optionItems = []; + var selectValueMap = {}; + + // The option values were already computed in the `getWatchables` fn, + // which must have been called to trigger `getOptions` + var optionValues = valuesFn(scope) || []; + var optionValuesKeys = getOptionValuesKeys(optionValues); + var optionValuesLength = optionValuesKeys.length; + + for (var index = 0; index < optionValuesLength; index++) { + var key = (optionValues === optionValuesKeys) ? index : optionValuesKeys[index]; + var value = optionValues[key]; + var locals = getLocals(value, key); + var viewValue = viewValueFn(scope, locals); + var selectValue = getTrackByValueFn(viewValue, locals); + var label = displayFn(scope, locals); + var group = groupByFn(scope, locals); + var disabled = disableWhenFn(scope, locals); + var optionItem = new Option(selectValue, viewValue, label, group, disabled); + + optionItems.push(optionItem); + selectValueMap[selectValue] = optionItem; + } + + return { + items: optionItems, + selectValueMap: selectValueMap, + getOptionFromViewValue: function(value) { + return selectValueMap[getTrackByValue(value)]; + }, + getViewValueFromOption: function(option) { + // If the viewValue could be an object that may be mutated by the application, + // we need to make a copy and not return the reference to the value on the option. + return trackBy ? angular.copy(option.viewValue) : option.viewValue; + } + }; + } + }; + } + + + // we can't just jqLite('
@@ -20397,29 +26987,84 @@ var ngPluralizeDirective = ['$locale', '$interpolate', function($locale, $interp var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) { var NG_REMOVED = '$$NG_REMOVED'; var ngRepeatMinErr = minErr('ngRepeat'); + + var updateScope = function(scope, index, valueIdentifier, value, keyIdentifier, key, arrayLength) { + // TODO(perf): generate setters to shave off ~40ms or 1-1.5% + scope[valueIdentifier] = value; + if (keyIdentifier) scope[keyIdentifier] = key; + scope.$index = index; + scope.$first = (index === 0); + scope.$last = (index === (arrayLength - 1)); + scope.$middle = !(scope.$first || scope.$last); + // jshint bitwise: false + scope.$odd = !(scope.$even = (index&1) === 0); + // jshint bitwise: true + }; + + var getBlockStart = function(block) { + return block.clone[0]; + }; + + var getBlockEnd = function(block) { + return block.clone[block.clone.length - 1]; + }; + + return { + restrict: 'A', + multiElement: true, transclude: 'element', priority: 1000, terminal: true, $$tlb: true, - link: function($scope, $element, $attr, ctrl, $transclude){ - var expression = $attr.ngRepeat; - var match = expression.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?\s*$/), - trackByExp, trackByExpGetter, trackByIdExpFn, trackByIdArrayFn, trackByIdObjFn, - lhs, rhs, valueIdentifier, keyIdentifier, - hashFnLocals = {$id: hashKey}; + compile: function ngRepeatCompile($element, $attr) { + var expression = $attr.ngRepeat; + var ngRepeatEndComment = document.createComment(' end ngRepeat: ' + expression + ' '); - if (!match) { - throw ngRepeatMinErr('iexp', "Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.", + var match = expression.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/); + + if (!match) { + throw ngRepeatMinErr('iexp', "Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.", expression); - } + } - lhs = match[1]; - rhs = match[2]; - trackByExp = match[3]; + var lhs = match[1]; + var rhs = match[2]; + var aliasAs = match[3]; + var trackByExp = match[4]; - if (trackByExp) { - trackByExpGetter = $parse(trackByExp); + match = lhs.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/); + + if (!match) { + throw ngRepeatMinErr('iidexp', "'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.", + lhs); + } + var valueIdentifier = match[3] || match[1]; + var keyIdentifier = match[2]; + + if (aliasAs && (!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(aliasAs) || + /^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(aliasAs))) { + throw ngRepeatMinErr('badident', "alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.", + aliasAs); + } + + var trackByExpGetter, trackByIdExpFn, trackByIdArrayFn, trackByIdObjFn; + var hashFnLocals = {$id: hashKey}; + + if (trackByExp) { + trackByExpGetter = $parse(trackByExp); + } else { + trackByIdArrayFn = function(key, value) { + return hashKey(value); + }; + trackByIdObjFn = function(key) { + return key; + }; + } + + return function ngRepeatLink($scope, $element, $attr, ctrl, $transclude) { + + if (trackByExpGetter) { trackByIdExpFn = function(key, value, index) { // assign key, value, and $index to the locals so that they can be used in hash functions if (keyIdentifier) hashFnLocals[keyIdentifier] = key; @@ -20427,178 +27072,159 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) { hashFnLocals.$index = index; return trackByExpGetter($scope, hashFnLocals); }; - } else { - trackByIdArrayFn = function(key, value) { - return hashKey(value); - }; - trackByIdObjFn = function(key) { - return key; - }; } - match = lhs.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/); - if (!match) { - throw ngRepeatMinErr('iidexp', "'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.", - lhs); - } - valueIdentifier = match[3] || match[1]; - keyIdentifier = match[2]; - // Store a list of elements from previous run. This is a hash where key is the item from the // iterator, and the value is objects with following properties. // - scope: bound scope // - element: previous element. // - index: position - var lastBlockMap = {}; + // + // We are using no-proto object so that we don't need to guard against inherited props via + // hasOwnProperty. + var lastBlockMap = createMap(); //watch props - $scope.$watchCollection(rhs, function ngRepeatAction(collection){ + $scope.$watchCollection(rhs, function ngRepeatAction(collection) { var index, length, - previousNode = $element[0], // current position of the node + previousNode = $element[0], // node that cloned nodes should be inserted after + // initialized to the comment node anchor nextNode, // Same as lastBlockMap but it has the current state. It will become the // lastBlockMap on the next iteration. - nextBlockMap = {}, - arrayLength, - childScope, + nextBlockMap = createMap(), + collectionLength, key, value, // key/value of iteration trackById, trackByIdFn, collectionKeys, block, // last object information {scope, element, id} - nextBlockOrder = [], + nextBlockOrder, elementsToRemove; + if (aliasAs) { + $scope[aliasAs] = collection; + } if (isArrayLike(collection)) { collectionKeys = collection; trackByIdFn = trackByIdExpFn || trackByIdArrayFn; } else { trackByIdFn = trackByIdExpFn || trackByIdObjFn; - // if object, extract keys, sort them and use to determine order of iteration over obj props + // if object, extract keys, in enumeration order, unsorted collectionKeys = []; - for (key in collection) { - if (collection.hasOwnProperty(key) && key.charAt(0) != '$') { - collectionKeys.push(key); + for (var itemKey in collection) { + if (collection.hasOwnProperty(itemKey) && itemKey.charAt(0) !== '$') { + collectionKeys.push(itemKey); } } - collectionKeys.sort(); } - arrayLength = collectionKeys.length; + collectionLength = collectionKeys.length; + nextBlockOrder = new Array(collectionLength); // locate existing items - length = nextBlockOrder.length = collectionKeys.length; - for(index = 0; index < length; index++) { - key = (collection === collectionKeys) ? index : collectionKeys[index]; - value = collection[key]; - trackById = trackByIdFn(key, value, index); - assertNotHasOwnProperty(trackById, '`track by` id'); - if(lastBlockMap.hasOwnProperty(trackById)) { - block = lastBlockMap[trackById]; - delete lastBlockMap[trackById]; - nextBlockMap[trackById] = block; - nextBlockOrder[index] = block; - } else if (nextBlockMap.hasOwnProperty(trackById)) { - // restore lastBlockMap - forEach(nextBlockOrder, function(block) { - if (block && block.scope) lastBlockMap[block.id] = block; - }); - // This is a duplicate and we need to throw an error - throw ngRepeatMinErr('dupes', "Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}", - expression, trackById); - } else { - // new never before seen block - nextBlockOrder[index] = { id: trackById }; - nextBlockMap[trackById] = false; - } - } - - // remove existing items - for (key in lastBlockMap) { - // lastBlockMap is our own object so we don't need to use special hasOwnPropertyFn - if (lastBlockMap.hasOwnProperty(key)) { - block = lastBlockMap[key]; - elementsToRemove = getBlockElements(block.clone); - $animate.leave(elementsToRemove); - forEach(elementsToRemove, function(element) { element[NG_REMOVED] = true; }); - block.scope.$destroy(); + for (index = 0; index < collectionLength; index++) { + key = (collection === collectionKeys) ? index : collectionKeys[index]; + value = collection[key]; + trackById = trackByIdFn(key, value, index); + if (lastBlockMap[trackById]) { + // found previously seen block + block = lastBlockMap[trackById]; + delete lastBlockMap[trackById]; + nextBlockMap[trackById] = block; + nextBlockOrder[index] = block; + } else if (nextBlockMap[trackById]) { + // if collision detected. restore lastBlockMap and throw an error + forEach(nextBlockOrder, function(block) { + if (block && block.scope) lastBlockMap[block.id] = block; + }); + throw ngRepeatMinErr('dupes', + "Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}", + expression, trackById, value); + } else { + // new never before seen block + nextBlockOrder[index] = {id: trackById, scope: undefined, clone: undefined}; + nextBlockMap[trackById] = true; } } + // remove leftover items + for (var blockKey in lastBlockMap) { + block = lastBlockMap[blockKey]; + elementsToRemove = getBlockNodes(block.clone); + $animate.leave(elementsToRemove); + if (elementsToRemove[0].parentNode) { + // if the element was not removed yet because of pending animation, mark it as deleted + // so that we can ignore it later + for (index = 0, length = elementsToRemove.length; index < length; index++) { + elementsToRemove[index][NG_REMOVED] = true; + } + } + block.scope.$destroy(); + } + // we are not using forEach for perf reasons (trying to avoid #call) - for (index = 0, length = collectionKeys.length; index < length; index++) { + for (index = 0; index < collectionLength; index++) { key = (collection === collectionKeys) ? index : collectionKeys[index]; value = collection[key]; block = nextBlockOrder[index]; - if (nextBlockOrder[index - 1]) previousNode = getBlockEnd(nextBlockOrder[index - 1]); if (block.scope) { // if we have already seen this object, then we need to reuse the // associated scope/element - childScope = block.scope; nextNode = previousNode; + + // skip nodes that are already pending removal via leave animation do { nextNode = nextNode.nextSibling; - } while(nextNode && nextNode[NG_REMOVED]); + } while (nextNode && nextNode[NG_REMOVED]); if (getBlockStart(block) != nextNode) { // existing item which got moved - $animate.move(getBlockElements(block.clone), null, jqLite(previousNode)); + $animate.move(getBlockNodes(block.clone), null, jqLite(previousNode)); } previousNode = getBlockEnd(block); + updateScope(block.scope, index, valueIdentifier, value, keyIdentifier, key, collectionLength); } else { // new item which we don't know about - childScope = $scope.$new(); - } + $transclude(function ngRepeatTransclude(clone, scope) { + block.scope = scope; + // http://jsperf.com/clone-vs-createcomment + var endNode = ngRepeatEndComment.cloneNode(false); + clone[clone.length++] = endNode; - childScope[valueIdentifier] = value; - if (keyIdentifier) childScope[keyIdentifier] = key; - childScope.$index = index; - childScope.$first = (index === 0); - childScope.$last = (index === (arrayLength - 1)); - childScope.$middle = !(childScope.$first || childScope.$last); - // jshint bitwise: false - childScope.$odd = !(childScope.$even = (index&1) === 0); - // jshint bitwise: true - - if (!block.scope) { - $transclude(childScope, function(clone) { - clone[clone.length++] = document.createComment(' end ngRepeat: ' + expression + ' '); + // TODO(perf): support naked previousNode in `enter` to avoid creation of jqLite wrapper? $animate.enter(clone, null, jqLite(previousNode)); - previousNode = clone; - block.scope = childScope; + previousNode = endNode; // Note: We only need the first/last node of the cloned nodes. // However, we need to keep the reference to the jqlite wrapper as it might be changed later // by a directive with templateUrl when its template arrives. block.clone = clone; nextBlockMap[block.id] = block; + updateScope(block.scope, index, valueIdentifier, value, keyIdentifier, key, collectionLength); }); } } lastBlockMap = nextBlockMap; }); + }; } }; - - function getBlockStart(block) { - return block.clone[0]; - } - - function getBlockEnd(block) { - return block.clone[block.clone.length - 1]; - } }]; +var NG_HIDE_CLASS = 'ng-hide'; +var NG_HIDE_IN_PROGRESS_CLASS = 'ng-hide-animate'; /** * @ngdoc directive * @name ngShow + * @multiElement * * @description * The `ngShow` directive shows or hides the given HTML element based on the expression - * provided to the ngShow attribute. The element is shown or hidden by removing or adding - * the `ng-hide` CSS class onto the element. The `.ng-hide` CSS class is predefined + * provided to the `ngShow` attribute. The element is shown or hidden by removing or adding + * the `.ng-hide` CSS class onto the element. The `.ng-hide` CSS class is predefined * in AngularJS and sets the display style to none (using an !important flag). * For CSP mode please add `angular-csp.css` to your html file (see {@link ng.directive:ngCsp ngCsp}). * @@ -20610,18 +27236,13 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) { *
* ``` * - * When the ngShow expression evaluates to false then the ng-hide CSS class is added to the class attribute - * on the element causing it to become hidden. When true, the ng-hide CSS class is removed + * When the `ngShow` expression evaluates to a falsy value then the `.ng-hide` CSS class is added to the class + * attribute on the element causing it to become hidden. When truthy, the `.ng-hide` CSS class is removed * from the element causing the element not to appear hidden. * - *
- * **Note:** Here is a list of values that ngShow will consider as a falsy value (case insensitive):
- * "f" / "0" / "false" / "no" / "n" / "[]" - *
- * * ## Why is !important used? * - * You may be wondering why !important is used for the .ng-hide CSS class. This is because the `.ng-hide` selector + * You may be wondering why !important is used for the `.ng-hide` CSS class. This is because the `.ng-hide` selector * can be easily overridden by heavier selectors. For example, something as simple * as changing the display style on a HTML list item would make hidden elements appear visible. * This also becomes a bigger issue when dealing with CSS frameworks. @@ -20630,25 +27251,26 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) { * specificity (when !important isn't used with any conflicting styles). If a developer chooses to override the * styling to change how to hide an element then it is just a matter of using !important in their own CSS code. * - * ### Overriding .ng-hide + * ### Overriding `.ng-hide` * - * By default, the `.ng-hide` class will style the element with `display:none!important`. If you wish to change + * By default, the `.ng-hide` class will style the element with `display: none!important`. If you wish to change * the hide behavior with ngShow/ngHide then this can be achieved by restating the styles for the `.ng-hide` - * class in CSS: + * class CSS. Note that the selector that needs to be used is actually `.ng-hide:not(.ng-hide-animate)` to cope + * with extra animation classes that can be added. * * ```css - * .ng-hide { - * //this is just another form of hiding an element - * display:block!important; - * position:absolute; - * top:-9999px; - * left:-9999px; + * .ng-hide:not(.ng-hide-animate) { + * /* this is just another form of hiding an element */ + * display: block!important; + * position: absolute; + * top: -9999px; + * left: -9999px; * } * ``` * * By default you don't need to override in CSS anything and the animations will work around the display style. * - * ## A note about animations with ngShow + * ## A note about animations with `ngShow` * * Animations in ngShow/ngHide work with the show and hide events that are triggered when the directive expression * is true and false. This system works like the animation system present with ngClass except that @@ -20660,7 +27282,15 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) { * //a working example can be found at the bottom of this page * // * .my-element.ng-hide-add, .my-element.ng-hide-remove { - * transition:0.5s linear all; + * /* this is required as of 1.3x to properly + * apply all styling in a show/hide animation */ + * transition: 0s linear all; + * } + * + * .my-element.ng-hide-add-active, + * .my-element.ng-hide-remove-active { + * /* the transition is defined in the active class */ + * transition: 1s linear all; * } * * .my-element.ng-hide-add { ... } @@ -20669,12 +27299,12 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) { * .my-element.ng-hide-remove.ng-hide-remove-active { ... } * ``` * - * Keep in mind that, as of AngularJS version 1.2.17 (and 1.3.0-beta.11), there is no need to change the display + * Keep in mind that, as of AngularJS version 1.3.0-beta.11, there is no need to change the display * property to block during animation states--ngAnimate will handle the style toggling automatically for you. * * @animations - * addClass: .ng-hide - happens after the ngShow expression evaluates to a truthy value and the just before contents are set to visible - * removeClass: .ng-hide - happens after the ngShow expression evaluates to a non truthy value and just before the contents are set to hidden + * addClass: `.ng-hide` - happens after the `ngShow` expression evaluates to a truthy value and the just before contents are set to visible + * removeClass: `.ng-hide` - happens after the `ngShow` expression evaluates to a non truthy value and just before the contents are set to hidden * * @element ANY * @param {expression} ngShow If the {@link guide/expression expression} is truthy @@ -20683,7 +27313,7 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) { * @example - Click me:
+ Click me:
Show:
@@ -20698,29 +27328,33 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) {
- @import url(//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css); + @import url(../../components/bootstrap-3.1.1/css/bootstrap.css); .animate-show { - -webkit-transition:all linear 0.5s; - transition:all linear 0.5s; - line-height:20px; - opacity:1; - padding:10px; - border:1px solid black; - background:white; + line-height: 20px; + opacity: 1; + padding: 10px; + border: 1px solid black; + background: white; + } + + .animate-show.ng-hide-add.ng-hide-add-active, + .animate-show.ng-hide-remove.ng-hide-remove-active { + -webkit-transition: all linear 0.5s; + transition: all linear 0.5s; } .animate-show.ng-hide { - line-height:0; - opacity:0; - padding:0 10px; + line-height: 0; + opacity: 0; + padding: 0 10px; } .check-element { - padding:10px; - border:1px solid black; - background:white; + padding: 10px; + border: 1px solid black; + background: white; } @@ -20740,10 +27374,20 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) { */ var ngShowDirective = ['$animate', function($animate) { - return function(scope, element, attr) { - scope.$watch(attr.ngShow, function ngShowWatchAction(value){ - $animate[toBoolean(value) ? 'removeClass' : 'addClass'](element, 'ng-hide'); - }); + return { + restrict: 'A', + multiElement: true, + link: function(scope, element, attr) { + scope.$watch(attr.ngShow, function ngShowWatchAction(value) { + // we're adding a temporary, animation-specific class for ng-hide since this way + // we can control when the element is actually displayed on screen without having + // to have a global/greedy CSS selector that breaks when other animations are run. + // Read: https://github.com/angular/angular.js/issues/9103#issuecomment-58335845 + $animate[value ? 'removeClass' : 'addClass'](element, NG_HIDE_CLASS, { + tempClasses: NG_HIDE_IN_PROGRESS_CLASS + }); + }); + } }; }]; @@ -20751,10 +27395,11 @@ var ngShowDirective = ['$animate', function($animate) { /** * @ngdoc directive * @name ngHide + * @multiElement * * @description * The `ngHide` directive shows or hides the given HTML element based on the expression - * provided to the ngHide attribute. The element is shown or hidden by removing or adding + * provided to the `ngHide` attribute. The element is shown or hidden by removing or adding * the `ng-hide` CSS class onto the element. The `.ng-hide` CSS class is predefined * in AngularJS and sets the display style to none (using an !important flag). * For CSP mode please add `angular-csp.css` to your html file (see {@link ng.directive:ngCsp ngCsp}). @@ -20767,18 +27412,13 @@ var ngShowDirective = ['$animate', function($animate) { *
* ``` * - * When the ngHide expression evaluates to true then the .ng-hide CSS class is added to the class attribute - * on the element causing it to become hidden. When false, the ng-hide CSS class is removed + * When the `ngHide` expression evaluates to a truthy value then the `.ng-hide` CSS class is added to the class + * attribute on the element causing it to become hidden. When falsy, the `.ng-hide` CSS class is removed * from the element causing the element not to appear hidden. * - *
- * **Note:** Here is a list of values that ngHide will consider as a falsy value (case insensitive):
- * "f" / "0" / "false" / "no" / "n" / "[]" - *
- * * ## Why is !important used? * - * You may be wondering why !important is used for the .ng-hide CSS class. This is because the `.ng-hide` selector + * You may be wondering why !important is used for the `.ng-hide` CSS class. This is because the `.ng-hide` selector * can be easily overridden by heavier selectors. For example, something as simple * as changing the display style on a HTML list item would make hidden elements appear visible. * This also becomes a bigger issue when dealing with CSS frameworks. @@ -20787,25 +27427,25 @@ var ngShowDirective = ['$animate', function($animate) { * specificity (when !important isn't used with any conflicting styles). If a developer chooses to override the * styling to change how to hide an element then it is just a matter of using !important in their own CSS code. * - * ### Overriding .ng-hide + * ### Overriding `.ng-hide` * - * By default, the `.ng-hide` class will style the element with `display:none!important`. If you wish to change + * By default, the `.ng-hide` class will style the element with `display: none!important`. If you wish to change * the hide behavior with ngShow/ngHide then this can be achieved by restating the styles for the `.ng-hide` * class in CSS: * * ```css * .ng-hide { - * //this is just another form of hiding an element - * display:block!important; - * position:absolute; - * top:-9999px; - * left:-9999px; + * /* this is just another form of hiding an element */ + * display: block!important; + * position: absolute; + * top: -9999px; + * left: -9999px; * } * ``` * * By default you don't need to override in CSS anything and the animations will work around the display style. * - * ## A note about animations with ngHide + * ## A note about animations with `ngHide` * * Animations in ngShow/ngHide work with the show and hide events that are triggered when the directive expression * is true and false. This system works like the animation system present with ngClass, except that the `.ng-hide` @@ -20816,7 +27456,7 @@ var ngShowDirective = ['$animate', function($animate) { * //a working example can be found at the bottom of this page * // * .my-element.ng-hide-add, .my-element.ng-hide-remove { - * transition:0.5s linear all; + * transition: 0.5s linear all; * } * * .my-element.ng-hide-add { ... } @@ -20825,12 +27465,12 @@ var ngShowDirective = ['$animate', function($animate) { * .my-element.ng-hide-remove.ng-hide-remove-active { ... } * ``` * - * Keep in mind that, as of AngularJS version 1.2.17 (and 1.3.0-beta.11), there is no need to change the display + * Keep in mind that, as of AngularJS version 1.3.0-beta.11, there is no need to change the display * property to block during animation states--ngAnimate will handle the style toggling automatically for you. * * @animations - * removeClass: .ng-hide - happens after the ngHide expression evaluates to a truthy value and just before the contents are set to hidden - * addClass: .ng-hide - happens after the ngHide expression evaluates to a non truthy value and just before the contents are set to visible + * removeClass: `.ng-hide` - happens after the `ngHide` expression evaluates to a truthy value and just before the contents are set to hidden + * addClass: `.ng-hide` - happens after the `ngHide` expression evaluates to a non truthy value and just before the contents are set to visible * * @element ANY * @param {expression} ngHide If the {@link guide/expression expression} is truthy then @@ -20839,7 +27479,7 @@ var ngShowDirective = ['$animate', function($animate) { * @example - Click me:
+ Click me:
Show:
@@ -20854,29 +27494,29 @@ var ngShowDirective = ['$animate', function($animate) {
- @import url(//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css); + @import url(../../components/bootstrap-3.1.1/css/bootstrap.css); .animate-hide { - -webkit-transition:all linear 0.5s; - transition:all linear 0.5s; - line-height:20px; - opacity:1; - padding:10px; - border:1px solid black; - background:white; + -webkit-transition: all linear 0.5s; + transition: all linear 0.5s; + line-height: 20px; + opacity: 1; + padding: 10px; + border: 1px solid black; + background: white; } .animate-hide.ng-hide { - line-height:0; - opacity:0; - padding:0 10px; + line-height: 0; + opacity: 0; + padding: 0 10px; } .check-element { - padding:10px; - border:1px solid black; - background:white; + padding: 10px; + border: 1px solid black; + background: white; } @@ -20896,10 +27536,18 @@ var ngShowDirective = ['$animate', function($animate) { */ var ngHideDirective = ['$animate', function($animate) { - return function(scope, element, attr) { - scope.$watch(attr.ngHide, function ngHideWatchAction(value){ - $animate[toBoolean(value) ? 'addClass' : 'removeClass'](element, 'ng-hide'); - }); + return { + restrict: 'A', + multiElement: true, + link: function(scope, element, attr) { + scope.$watch(attr.ngHide, function ngHideWatchAction(value) { + // The comment inside of the ngShowDirective explains why we add and + // remove a temporary class for the show/hide animation + $animate[value ? 'addClass' : 'removeClass'](element,NG_HIDE_CLASS, { + tempClasses: NG_HIDE_IN_PROGRESS_CLASS + }); + }); + } }; }]; @@ -21000,8 +27648,8 @@ var ngStyleDirective = ngDirective(function(scope, element, attr) { * * * @scope - * @priority 800 - * @param {*} ngSwitch|on expression to match against ng-switch-when. + * @priority 1200 + * @param {*} ngSwitch|on expression to match against ng-switch-when. * On child elements add: * * * `ngSwitchWhen`: the case statement to match against. If match then this @@ -21018,7 +27666,7 @@ var ngStyleDirective = ngDirective(function(scope, element, attr) {
- selection={{selection}} + selection={{selection}}
@@ -21088,7 +27736,6 @@ var ngStyleDirective = ngDirective(function(scope, element, attr) { */ var ngSwitchDirective = ['$animate', function($animate) { return { - restrict: 'EA', require: 'ngSwitch', // asks for $scope to fool the BC controller module @@ -21099,37 +27746,39 @@ var ngSwitchDirective = ['$animate', function($animate) { var watchExpr = attr.ngSwitch || attr.on, selectedTranscludes = [], selectedElements = [], - previousElements = [], + previousLeaveAnimations = [], selectedScopes = []; + var spliceFactory = function(array, index) { + return function() { array.splice(index, 1); }; + }; + scope.$watch(watchExpr, function ngSwitchWatchAction(value) { var i, ii; - for (i = 0, ii = previousElements.length; i < ii; ++i) { - previousElements[i].remove(); + for (i = 0, ii = previousLeaveAnimations.length; i < ii; ++i) { + $animate.cancel(previousLeaveAnimations[i]); } - previousElements.length = 0; + previousLeaveAnimations.length = 0; for (i = 0, ii = selectedScopes.length; i < ii; ++i) { - var selected = selectedElements[i]; + var selected = getBlockNodes(selectedElements[i].clone); selectedScopes[i].$destroy(); - previousElements[i] = selected; - $animate.leave(selected, function() { - previousElements.splice(i, 1); - }); + var promise = previousLeaveAnimations[i] = $animate.leave(selected); + promise.then(spliceFactory(previousLeaveAnimations, i)); } selectedElements.length = 0; selectedScopes.length = 0; if ((selectedTranscludes = ngSwitchController.cases['!' + value] || ngSwitchController.cases['?'])) { - scope.$eval(attr.change); forEach(selectedTranscludes, function(selectedTransclude) { - var selectedScope = scope.$new(); - selectedScopes.push(selectedScope); - selectedTransclude.transclude(selectedScope, function(caseElement) { + selectedTransclude.transclude(function(caseElement, selectedScope) { + selectedScopes.push(selectedScope); var anchor = selectedTransclude.element; + caseElement[caseElement.length++] = document.createComment(' end ngSwitchWhen: '); + var block = { clone: caseElement }; - selectedElements.push(caseElement); + selectedElements.push(block); $animate.enter(caseElement, anchor.parent(), anchor); }); }); @@ -21141,8 +27790,9 @@ var ngSwitchDirective = ['$animate', function($animate) { var ngSwitchWhenDirective = ngDirective({ transclude: 'element', - priority: 800, + priority: 1200, require: '^ngSwitch', + multiElement: true, link: function(scope, element, attrs, ctrl, $transclude) { ctrl.cases['!' + attrs.ngSwitchWhen] = (ctrl.cases['!' + attrs.ngSwitchWhen] || []); ctrl.cases['!' + attrs.ngSwitchWhen].push({ transclude: $transclude, element: element }); @@ -21151,8 +27801,9 @@ var ngSwitchWhenDirective = ngDirective({ var ngSwitchDefaultDirective = ngDirective({ transclude: 'element', - priority: 800, + priority: 1200, require: '^ngSwitch', + multiElement: true, link: function(scope, element, attr, ctrl, $transclude) { ctrl.cases['?'] = (ctrl.cases['?'] || []); ctrl.cases['?'].push({ transclude: $transclude, element: element }); @@ -21162,7 +27813,7 @@ var ngSwitchDefaultDirective = ngDirective({ /** * @ngdoc directive * @name ngTransclude - * @restrict AC + * @restrict EAC * * @description * Directive that marks the insertion point for the transcluded DOM of the nearest parent directive that uses transclusion. @@ -21183,7 +27834,7 @@ var ngSwitchDefaultDirective = ngDirective({ scope: { title:'@' }, template: '
' + '
{{title}}
' + - '
' + + '' + '
' }; }) @@ -21193,8 +27844,8 @@ var ngSwitchDefaultDirective = ngDirective({ }]);
-
-
+
+
{{text}}
@@ -21214,6 +27865,7 @@ var ngSwitchDefaultDirective = ngDirective({ * */ var ngTranscludeDirective = ngDirective({ + restrict: 'EAC', link: function($scope, $element, $attrs, controller, $transclude) { if (!$transclude) { throw minErr('ngTransclude')('orphan', @@ -21270,7 +27922,6 @@ var scriptDirective = ['$templateCache', function($templateCache) { compile: function(element, attr) { if (attr.type == 'text/ng-template') { var templateUrl = attr.id, - // IE is not consistent, in scripts we have to read .text but in other nodes we have to read .textContent text = element[0].text; $templateCache.put(templateUrl, text); @@ -21279,7 +27930,106 @@ var scriptDirective = ['$templateCache', function($templateCache) { }; }]; -var ngOptionsMinErr = minErr('ngOptions'); +var noopNgModelController = { $setViewValue: noop, $render: noop }; + +/** + * @ngdoc type + * @name select.SelectController + * @description + * The controller for the ` and IE barfs otherwise. + self.unknownOption = jqLite(document.createElement('option')); + self.renderUnknownOption = function(val) { + var unknownVal = '? ' + hashKey(val) + ' ?'; + self.unknownOption.val(unknownVal); + $element.prepend(self.unknownOption); + $element.val(unknownVal); + }; + + $scope.$on('$destroy', function() { + // disable unknown option so that we don't do work when the whole select is being destroyed + self.renderUnknownOption = noop; + }); + + self.removeUnknownOption = function() { + if (self.unknownOption.parent()) self.unknownOption.remove(); + }; + + + // Read the value of the select control, the implementation of this changes depending + // upon whether the select can have multiple values and whether ngOptions is at work. + self.readValue = function readSingleValue() { + self.removeUnknownOption(); + return $element.val(); + }; + + + // Write the value to the select control, the implementation of this changes depending + // upon whether the select can have multiple values and whether ngOptions is at work. + self.writeValue = function writeSingleValue(value) { + if (self.hasOption(value)) { + self.removeUnknownOption(); + $element.val(value); + if (value === '') self.emptyOption.prop('selected', true); // to make IE9 happy + } else { + if (value == null && self.emptyOption) { + self.removeUnknownOption(); + $element.val(''); + } else { + self.renderUnknownOption(value); + } + } + }; + + + // Tell the select control that an option, with the given value, has been added + self.addOption = function(value, element) { + assertNotHasOwnProperty(value, '"option value"'); + if (value === '') { + self.emptyOption = element; + } + var count = optionsMap.get(value) || 0; + optionsMap.put(value, count + 1); + }; + + // Tell the select control that an option, with the given value, has been removed + self.removeOption = function(value) { + var count = optionsMap.get(value); + if (count) { + if (count === 1) { + optionsMap.remove(value); + if (value === '') { + self.emptyOption = undefined; + } + } else { + optionsMap.put(value, count - 1); + } + } + }; + + // Check whether the select control has an option matching the given value + self.hasOption = function(value) { + return !!optionsMap.get(value); + }; +}]; + /** * @ngdoc directive * @name select @@ -21288,607 +28038,170 @@ var ngOptionsMinErr = minErr('ngOptions'); * @description * HTML `SELECT` element with angular data-binding. * - * # `ngOptions` - * - * The `ngOptions` attribute can be used to dynamically generate a list of `
Name - (^)Phone NumberAge + Name + + + Phone Number + + + Age + +
{{friend.name}}
","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};na.optgroup=na.option;na.tbody=na.tfoot=na.colgroup=na.caption=na.thead; +na.th=na.td;var Pa=Q.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;"complete"===U.readyState?setTimeout(a):(this.on("DOMContentLoaded",a),Q(O).on("load",a))},toString:function(){var b=[];m(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return 0<=b?y(this[b]):y(this[this.length+b])},length:0,push:kg,sort:[].sort,splice:[].splice},Ab={};m("multiple selected checked disabled readOnly required open".split(" "),function(b){Ab[M(b)]=b});var Tc={};m("input select option textarea button form details".split(" "), +function(b){Tc[b]=!0});var Uc={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};m({data:Wb,removeData:ub,hasData:function(b){for(var a in ib[b.ng339])return!0;return!1}},function(b,a){Q[a]=b});m({data:Wb,inheritedData:zb,scope:function(b){return y.data(b,"$scope")||zb(b.parentNode||b,["$isolateScope","$scope"])},isolateScope:function(b){return y.data(b,"$isolateScope")||y.data(b,"$isolateScopeNoTemplate")},controller:Qc,injector:function(b){return zb(b, +"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:wb,css:function(b,a,c){a=hb(a);if(w(c))b.style[a]=c;else return b.style[a]},attr:function(b,a,c){var d=b.nodeType;if(d!==Na&&2!==d&&8!==d)if(d=M(a),Ab[d])if(w(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));else return b[a]||(b.attributes.getNamedItem(a)||v).specified?d:t;else if(w(c))b.setAttribute(a,c);else if(b.getAttribute)return b=b.getAttribute(a,2),null===b?t:b},prop:function(b,a,c){if(w(c))b[a]=c;else return b[a]}, +text:function(){function b(a,b){if(A(b)){var d=a.nodeType;return d===qa||d===Na?a.textContent:""}a.textContent=b}b.$dv="";return b}(),val:function(b,a){if(A(a)){if(b.multiple&&"select"===ta(b)){var c=[];m(b.options,function(a){a.selected&&c.push(a.value||a.text)});return 0===c.length?null:c}return b.value}b.value=a},html:function(b,a){if(A(a))return b.innerHTML;tb(b,!0);b.innerHTML=a},empty:Rc},function(b,a){Q.prototype[a]=function(a,d){var e,f,g=this.length;if(b!==Rc&&(2==b.length&&b!==wb&&b!==Qc? +a:d)===t){if(H(a)){for(e=0;e <= >= && || ! = |".split(" "),function(a){Mb[a]=!0});var qg={n:"\n",f:"\f",r:"\r", +t:"\t",v:"\v","'":"'",'"':'"'},gc=function(a){this.options=a};gc.prototype={constructor:gc,lex:function(a){this.text=a;this.index=0;for(this.tokens=[];this.index=a&&"string"===typeof a},isWhitespace:function(a){return" "===a||"\r"===a|| +"\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdent:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,c,d){d=d||this.index;c=w(c)?"s "+c+"-"+this.index+" ["+this.text.substring(c,d)+"]":" "+d;throw da("lexerr",a,c,this.text);},readNumber:function(){for(var a="",c=this.index;this.index","<=",">=");)a={type:q.BinaryExpression,operator:c.text,left:a,right:this.additive()};return a},additive:function(){for(var a=this.multiplicative(),c;c=this.expect("+","-");)a={type:q.BinaryExpression,operator:c.text,left:a,right:this.multiplicative()};return a},multiplicative:function(){for(var a=this.unary(),c;c=this.expect("*","/","%");)a={type:q.BinaryExpression,operator:c.text, +left:a,right:this.unary()};return a},unary:function(){var a;return(a=this.expect("+","-","!"))?{type:q.UnaryExpression,operator:a.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var a;this.expect("(")?(a=this.filterChain(),this.consume(")")):this.expect("[")?a=this.arrayDeclaration():this.expect("{")?a=this.object():this.constants.hasOwnProperty(this.peek().text)?a=fa(this.constants[this.consume().text]):this.peek().identifier?a=this.identifier():this.peek().constant?a=this.constant(): +this.throwError("not a primary expression",this.peek());for(var c;c=this.expect("(","[",".");)"("===c.text?(a={type:q.CallExpression,callee:a,arguments:this.parseArguments()},this.consume(")")):"["===c.text?(a={type:q.MemberExpression,object:a,property:this.expression(),computed:!0},this.consume("]")):"."===c.text?a={type:q.MemberExpression,object:a,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return a},filter:function(a){a=[a];for(var c={type:q.CallExpression,callee:this.identifier(), +arguments:a,filter:!0};this.expect(":");)a.push(this.expression());return c},parseArguments:function(){var a=[];if(")"!==this.peekToken().text){do a.push(this.expression());while(this.expect(","))}return a},identifier:function(){var a=this.consume();a.identifier||this.throwError("is not a valid identifier",a);return{type:q.Identifier,name:a.text}},constant:function(){return{type:q.Literal,value:this.consume().value}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break; +a.push(this.expression())}while(this.expect(","))}this.consume("]");return{type:q.ArrayExpression,elements:a}},object:function(){var a=[],c;if("}"!==this.peekToken().text){do{if(this.peek("}"))break;c={type:q.Property,kind:"init"};this.peek().constant?c.key=this.constant():this.peek().identifier?c.key=this.identifier():this.throwError("invalid key",this.peek());this.consume(":");c.value=this.expression();a.push(c)}while(this.expect(","))}this.consume("}");return{type:q.ObjectExpression,properties:a}}, +throwError:function(a,c){throw da("syntax",c.text,a,c.index+1,this.text,this.text.substring(c.index));},consume:function(a){if(0===this.tokens.length)throw da("ueoe",this.text);var c=this.expect(a);c||this.throwError("is unexpected, expecting ["+a+"]",this.peek());return c},peekToken:function(){if(0===this.tokens.length)throw da("ueoe",this.text);return this.tokens[0]},peek:function(a,c,d,e){return this.peekAhead(0,a,c,d,e)},peekAhead:function(a,c,d,e,f){if(this.tokens.length>a){a=this.tokens[a]; +var g=a.text;if(g===c||g===d||g===e||g===f||!(c||d||e||f))return a}return!1},expect:function(a,c,d,e){return(a=this.peek(a,c,d,e))?(this.tokens.shift(),a):!1},constants:{"true":{type:q.Literal,value:!0},"false":{type:q.Literal,value:!1},"null":{type:q.Literal,value:null},undefined:{type:q.Literal,value:t},"this":{type:q.ThisExpression}}};rd.prototype={compile:function(a,c){var d=this,e=this.astBuilder.ast(a);this.state={nextId:0,filters:{},expensiveChecks:c,fn:{vars:[],body:[],own:{}},assign:{vars:[], +body:[],own:{}},inputs:[]};T(e,d.$filter);var f="",g;this.stage="assign";if(g=pd(e))this.state.computing="assign",f=this.nextId(),this.recurse(g,f),f="fn.assign="+this.generateFunction("assign","s,v,l");g=nd(e.body);d.stage="inputs";m(g,function(a,c){var e="fn"+c;d.state[e]={vars:[],body:[],own:{}};d.state.computing=e;var f=d.nextId();d.recurse(a,f);d.return_(f);d.state.inputs.push(e);a.watchId=c});this.state.computing="fn";this.stage="main";this.recurse(e);f='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+ +"var fn="+this.generateFunction("fn","s,l,a,i")+f+this.watchFns()+"return fn;";f=(new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","ifDefined","plus","text",f))(this.$filter,Ca,oa,ld,Xf,md,a);this.state=this.stage=t;f.literal=qd(e);f.constant=e.constant;return f},USE:"use",STRICT:"strict",watchFns:function(){var a=[],c=this.state.inputs,d=this;m(c,function(c){a.push("var "+c+"="+d.generateFunction(c,"s"))});c.length&&a.push("fn.inputs=["+c.join(",")+"];");return a.join("")}, +generateFunction:function(a,c){return"function("+c+"){"+this.varsPrefix(a)+this.body(a)+"};"},filterPrefix:function(){var a=[],c=this;m(this.state.filters,function(d,e){a.push(d+"=$filter("+c.escape(e)+")")});return a.length?"var "+a.join(",")+";":""},varsPrefix:function(a){return this.state[a].vars.length?"var "+this.state[a].vars.join(",")+";":""},body:function(a){return this.state[a].body.join("")},recurse:function(a,c,d,e,f,g){var h,l,k=this,n,r;e=e||v;if(!g&&w(a.watchId))c=c||this.nextId(),this.if_("i", +this.lazyAssign(c,this.computedMember("i",a.watchId)),this.lazyRecurse(a,c,d,e,f,!0));else switch(a.type){case q.Program:m(a.body,function(c,d){k.recurse(c.expression,t,t,function(a){l=a});d!==a.body.length-1?k.current().body.push(l,";"):k.return_(l)});break;case q.Literal:r=this.escape(a.value);this.assign(c,r);e(r);break;case q.UnaryExpression:this.recurse(a.argument,t,t,function(a){l=a});r=a.operator+"("+this.ifDefined(l,0)+")";this.assign(c,r);e(r);break;case q.BinaryExpression:this.recurse(a.left, +t,t,function(a){h=a});this.recurse(a.right,t,t,function(a){l=a});r="+"===a.operator?this.plus(h,l):"-"===a.operator?this.ifDefined(h,0)+a.operator+this.ifDefined(l,0):"("+h+")"+a.operator+"("+l+")";this.assign(c,r);e(r);break;case q.LogicalExpression:c=c||this.nextId();k.recurse(a.left,c);k.if_("&&"===a.operator?c:k.not(c),k.lazyRecurse(a.right,c));e(c);break;case q.ConditionalExpression:c=c||this.nextId();k.recurse(a.test,c);k.if_(c,k.lazyRecurse(a.alternate,c),k.lazyRecurse(a.consequent,c));e(c); +break;case q.Identifier:c=c||this.nextId();d&&(d.context="inputs"===k.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",a.name)+"?l:s"),d.computed=!1,d.name=a.name);Ca(a.name);k.if_("inputs"===k.stage||k.not(k.getHasOwnProperty("l",a.name)),function(){k.if_("inputs"===k.stage||"s",function(){f&&1!==f&&k.if_(k.not(k.nonComputedMember("s",a.name)),k.lazyAssign(k.nonComputedMember("s",a.name),"{}"));k.assign(c,k.nonComputedMember("s",a.name))})},c&&k.lazyAssign(c,k.nonComputedMember("l", +a.name)));(k.state.expensiveChecks||Fb(a.name))&&k.addEnsureSafeObject(c);e(c);break;case q.MemberExpression:h=d&&(d.context=this.nextId())||this.nextId();c=c||this.nextId();k.recurse(a.object,h,t,function(){k.if_(k.notNull(h),function(){if(a.computed)l=k.nextId(),k.recurse(a.property,l),k.addEnsureSafeMemberName(l),f&&1!==f&&k.if_(k.not(k.computedMember(h,l)),k.lazyAssign(k.computedMember(h,l),"{}")),r=k.ensureSafeObject(k.computedMember(h,l)),k.assign(c,r),d&&(d.computed=!0,d.name=l);else{Ca(a.property.name); +f&&1!==f&&k.if_(k.not(k.nonComputedMember(h,a.property.name)),k.lazyAssign(k.nonComputedMember(h,a.property.name),"{}"));r=k.nonComputedMember(h,a.property.name);if(k.state.expensiveChecks||Fb(a.property.name))r=k.ensureSafeObject(r);k.assign(c,r);d&&(d.computed=!1,d.name=a.property.name)}},function(){k.assign(c,"undefined")});e(c)},!!f);break;case q.CallExpression:c=c||this.nextId();a.filter?(l=k.filter(a.callee.name),n=[],m(a.arguments,function(a){var c=k.nextId();k.recurse(a,c);n.push(c)}),r=l+ +"("+n.join(",")+")",k.assign(c,r),e(c)):(l=k.nextId(),h={},n=[],k.recurse(a.callee,l,h,function(){k.if_(k.notNull(l),function(){k.addEnsureSafeFunction(l);m(a.arguments,function(a){k.recurse(a,k.nextId(),t,function(a){n.push(k.ensureSafeObject(a))})});h.name?(k.state.expensiveChecks||k.addEnsureSafeObject(h.context),r=k.member(h.context,h.name,h.computed)+"("+n.join(",")+")"):r=l+"("+n.join(",")+")";r=k.ensureSafeObject(r);k.assign(c,r)},function(){k.assign(c,"undefined")});e(c)}));break;case q.AssignmentExpression:l= +this.nextId();h={};if(!od(a.left))throw da("lval");this.recurse(a.left,t,h,function(){k.if_(k.notNull(h.context),function(){k.recurse(a.right,l);k.addEnsureSafeObject(k.member(h.context,h.name,h.computed));r=k.member(h.context,h.name,h.computed)+a.operator+l;k.assign(c,r);e(c||r)})},1);break;case q.ArrayExpression:n=[];m(a.elements,function(a){k.recurse(a,k.nextId(),t,function(a){n.push(a)})});r="["+n.join(",")+"]";this.assign(c,r);e(r);break;case q.ObjectExpression:n=[];m(a.properties,function(a){k.recurse(a.value, +k.nextId(),t,function(c){n.push(k.escape(a.key.type===q.Identifier?a.key.name:""+a.key.value)+":"+c)})});r="{"+n.join(",")+"}";this.assign(c,r);e(r);break;case q.ThisExpression:this.assign(c,"s");e("s");break;case q.NGValueParameter:this.assign(c,"v"),e("v")}},getHasOwnProperty:function(a,c){var d=a+"."+c,e=this.current().own;e.hasOwnProperty(d)||(e[d]=this.nextId(!1,a+"&&("+this.escape(c)+" in "+a+")"));return e[d]},assign:function(a,c){if(a)return this.current().body.push(a,"=",c,";"),a},filter:function(a){this.state.filters.hasOwnProperty(a)|| +(this.state.filters[a]=this.nextId(!0));return this.state.filters[a]},ifDefined:function(a,c){return"ifDefined("+a+","+this.escape(c)+")"},plus:function(a,c){return"plus("+a+","+c+")"},return_:function(a){this.current().body.push("return ",a,";")},if_:function(a,c,d){if(!0===a)c();else{var e=this.current().body;e.push("if(",a,"){");c();e.push("}");d&&(e.push("else{"),d(),e.push("}"))}},not:function(a){return"!("+a+")"},notNull:function(a){return a+"!=null"},nonComputedMember:function(a,c){return a+ +"."+c},computedMember:function(a,c){return a+"["+c+"]"},member:function(a,c,d){return d?this.computedMember(a,c):this.nonComputedMember(a,c)},addEnsureSafeObject:function(a){this.current().body.push(this.ensureSafeObject(a),";")},addEnsureSafeMemberName:function(a){this.current().body.push(this.ensureSafeMemberName(a),";")},addEnsureSafeFunction:function(a){this.current().body.push(this.ensureSafeFunction(a),";")},ensureSafeObject:function(a){return"ensureSafeObject("+a+",text)"},ensureSafeMemberName:function(a){return"ensureSafeMemberName("+ +a+",text)"},ensureSafeFunction:function(a){return"ensureSafeFunction("+a+",text)"},lazyRecurse:function(a,c,d,e,f,g){var h=this;return function(){h.recurse(a,c,d,e,f,g)}},lazyAssign:function(a,c){var d=this;return function(){d.assign(a,c)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)},escape:function(a){if(L(a))return"'"+a.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(V(a))return a.toString();if(!0===a)return"true"; +if(!1===a)return"false";if(null===a)return"null";if("undefined"===typeof a)return"undefined";throw da("esc");},nextId:function(a,c){var d="v"+this.state.nextId++;a||this.current().vars.push(d+(c?"="+c:""));return d},current:function(){return this.state[this.state.computing]}};sd.prototype={compile:function(a,c){var d=this,e=this.astBuilder.ast(a);this.expression=a;this.expensiveChecks=c;T(e,d.$filter);var f,g;if(f=pd(e))g=this.recurse(f);f=nd(e.body);var h;f&&(h=[],m(f,function(a,c){var e=d.recurse(a); +a.input=e;h.push(e);a.watchId=c}));var l=[];m(e.body,function(a){l.push(d.recurse(a.expression))});f=0===e.body.length?function(){}:1===e.body.length?l[0]:function(a,c){var d;m(l,function(e){d=e(a,c)});return d};g&&(f.assign=function(a,c,d){return g(a,d,c)});h&&(f.inputs=h);f.literal=qd(e);f.constant=e.constant;return f},recurse:function(a,c,d){var e,f,g=this,h;if(a.input)return this.inputs(a.input,a.watchId);switch(a.type){case q.Literal:return this.value(a.value,c);case q.UnaryExpression:return f= +this.recurse(a.argument),this["unary"+a.operator](f,c);case q.BinaryExpression:return e=this.recurse(a.left),f=this.recurse(a.right),this["binary"+a.operator](e,f,c);case q.LogicalExpression:return e=this.recurse(a.left),f=this.recurse(a.right),this["binary"+a.operator](e,f,c);case q.ConditionalExpression:return this["ternary?:"](this.recurse(a.test),this.recurse(a.alternate),this.recurse(a.consequent),c);case q.Identifier:return Ca(a.name,g.expression),g.identifier(a.name,g.expensiveChecks||Fb(a.name), +c,d,g.expression);case q.MemberExpression:return e=this.recurse(a.object,!1,!!d),a.computed||(Ca(a.property.name,g.expression),f=a.property.name),a.computed&&(f=this.recurse(a.property)),a.computed?this.computedMember(e,f,c,d,g.expression):this.nonComputedMember(e,f,g.expensiveChecks,c,d,g.expression);case q.CallExpression:return h=[],m(a.arguments,function(a){h.push(g.recurse(a))}),a.filter&&(f=this.$filter(a.callee.name)),a.filter||(f=this.recurse(a.callee,!0)),a.filter?function(a,d,e,g){for(var m= +[],q=0;q":function(a,c,d){return function(e,f,g,h){e=a(e,f,g,h)>c(e,f,g,h);return d?{value:e}:e}},"binary<=":function(a,c,d){return function(e, +f,g,h){e=a(e,f,g,h)<=c(e,f,g,h);return d?{value:e}:e}},"binary>=":function(a,c,d){return function(e,f,g,h){e=a(e,f,g,h)>=c(e,f,g,h);return d?{value:e}:e}},"binary&&":function(a,c,d){return function(e,f,g,h){e=a(e,f,g,h)&&c(e,f,g,h);return d?{value:e}:e}},"binary||":function(a,c,d){return function(e,f,g,h){e=a(e,f,g,h)||c(e,f,g,h);return d?{value:e}:e}},"ternary?:":function(a,c,d,e){return function(f,g,h,l){f=a(f,g,h,l)?c(f,g,h,l):d(f,g,h,l);return e?{value:f}:f}},value:function(a,c){return function(){return c? +{context:t,name:t,value:a}:a}},identifier:function(a,c,d,e,f){return function(g,h,l,k){g=h&&a in h?h:g;e&&1!==e&&g&&!g[a]&&(g[a]={});h=g?g[a]:t;c&&oa(h,f);return d?{context:g,name:a,value:h}:h}},computedMember:function(a,c,d,e,f){return function(g,h,l,k){var n=a(g,h,l,k),m,s;null!=n&&(m=c(g,h,l,k),Ca(m,f),e&&1!==e&&n&&!n[m]&&(n[m]={}),s=n[m],oa(s,f));return d?{context:n,name:m,value:s}:s}},nonComputedMember:function(a,c,d,e,f,g){return function(h,l,k,n){h=a(h,l,k,n);f&&1!==f&&h&&!h[c]&&(h[c]={}); +l=null!=h?h[c]:t;(d||Fb(c))&&oa(l,g);return e?{context:h,name:c,value:l}:l}},inputs:function(a,c){return function(d,e,f,g){return g?g[c]:a(d,e,f)}}};var hc=function(a,c,d){this.lexer=a;this.$filter=c;this.options=d;this.ast=new q(this.lexer);this.astCompiler=d.csp?new sd(this.ast,c):new rd(this.ast,c)};hc.prototype={constructor:hc,parse:function(a){return this.astCompiler.compile(a,this.options.expensiveChecks)}};ga();ga();var Yf=Object.prototype.valueOf,Da=J("$sce"),pa={HTML:"html",CSS:"css",URL:"url", +RESOURCE_URL:"resourceUrl",JS:"js"},ea=J("$compile"),X=U.createElement("a"),wd=Ba(O.location.href);xd.$inject=["$document"];Lc.$inject=["$provide"];yd.$inject=["$locale"];Ad.$inject=["$locale"];var Dd=".",hg={yyyy:Y("FullYear",4),yy:Y("FullYear",2,0,!0),y:Y("FullYear",1),MMMM:Hb("Month"),MMM:Hb("Month",!0),MM:Y("Month",2,1),M:Y("Month",1,1),dd:Y("Date",2),d:Y("Date",1),HH:Y("Hours",2),H:Y("Hours",1),hh:Y("Hours",2,-12),h:Y("Hours",1,-12),mm:Y("Minutes",2),m:Y("Minutes",1),ss:Y("Seconds",2),s:Y("Seconds", +1),sss:Y("Milliseconds",3),EEEE:Hb("Day"),EEE:Hb("Day",!0),a:function(a,c){return 12>a.getHours()?c.AMPMS[0]:c.AMPMS[1]},Z:function(a,c,d){a=-1*d;return a=(0<=a?"+":"")+(Gb(Math[0=a.getFullYear()?c.ERANAMES[0]:c.ERANAMES[1]}},gg=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,fg=/^\-?\d+$/;zd.$inject=["$locale"];var cg=ra(M),dg=ra(rb);Bd.$inject= +["$parse"];var ie=ra({restrict:"E",compile:function(a,c){if(!c.href&&!c.xlinkHref)return function(a,c){if("a"===c[0].nodeName.toLowerCase()){var f="[object SVGAnimatedString]"===sa.call(c.prop("href"))?"xlink:href":"href";c.on("click",function(a){c.attr(f)||a.preventDefault()})}}}}),sb={};m(Ab,function(a,c){function d(a,d,f){a.$watch(f[e],function(a){f.$set(c,!!a)})}if("multiple"!=a){var e=wa("ng-"+c),f=d;"checked"===a&&(f=function(a,c,f){f.ngModel!==f[e]&&d(a,c,f)});sb[e]=function(){return{restrict:"A", +priority:100,link:f}}}});m(Uc,function(a,c){sb[c]=function(){return{priority:100,link:function(a,e,f){if("ngPattern"===c&&"/"==f.ngPattern.charAt(0)&&(e=f.ngPattern.match(jg))){f.$set("ngPattern",new RegExp(e[1],e[2]));return}a.$watch(f[c],function(a){f.$set(c,a)})}}}});m(["src","srcset","href"],function(a){var c=wa("ng-"+a);sb[c]=function(){return{priority:99,link:function(d,e,f){var g=a,h=a;"href"===a&&"[object SVGAnimatedString]"===sa.call(e.prop("href"))&&(h="xlinkHref",f.$attr[h]="xlink:href", +g=null);f.$observe(c,function(c){c?(f.$set(h,c),Ua&&g&&e.prop(g,f[h])):"href"===a&&f.$set(h,null)})}}}});var Ib={$addControl:v,$$renameControl:function(a,c){a.$name=c},$removeControl:v,$setValidity:v,$setDirty:v,$setPristine:v,$setSubmitted:v};Gd.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var Od=function(a){return["$timeout",function(c){return{name:"form",restrict:a?"EAC":"E",controller:Gd,compile:function(d,e){d.addClass(Va).addClass(mb);var f=e.name?"name":a&&e.ngForm?"ngForm": +!1;return{pre:function(a,d,e,k){if(!("action"in e)){var n=function(c){a.$apply(function(){k.$commitViewValue();k.$setSubmitted()});c.preventDefault()};d[0].addEventListener("submit",n,!1);d.on("$destroy",function(){c(function(){d[0].removeEventListener("submit",n,!1)},0,!1)})}var m=k.$$parentForm;f&&(Eb(a,k.$name,k,k.$name),e.$observe(f,function(c){k.$name!==c&&(Eb(a,k.$name,t,k.$name),m.$$renameControl(k,c),Eb(a,k.$name,k,k.$name))}));d.on("$destroy",function(){m.$removeControl(k);f&&Eb(a,e[f],t, +k.$name);P(k,Ib)})}}}}}]},je=Od(),we=Od(!0),ig=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,rg=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,sg=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,tg=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,Pd=/^(\d{4})-(\d{2})-(\d{2})$/,Qd=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,mc=/^(\d{4})-W(\d\d)$/,Rd=/^(\d{4})-(\d\d)$/, +Sd=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Td={text:function(a,c,d,e,f,g){kb(a,c,d,e,f,g);kc(e)},date:lb("date",Pd,Kb(Pd,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":lb("datetimelocal",Qd,Kb(Qd,"yyyy MM dd HH mm ss sss".split(" ")),"yyyy-MM-ddTHH:mm:ss.sss"),time:lb("time",Sd,Kb(Sd,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:lb("week",mc,function(a,c){if(aa(a))return a;if(L(a)){mc.lastIndex=0;var d=mc.exec(a);if(d){var e=+d[1],f=+d[2],g=d=0,h=0,l=0,k=Ed(e),f=7*(f-1);c&&(d=c.getHours(),g= +c.getMinutes(),h=c.getSeconds(),l=c.getMilliseconds());return new Date(e,0,k.getDate()+f,d,g,h,l)}}return NaN},"yyyy-Www"),month:lb("month",Rd,Kb(Rd,["yyyy","MM"]),"yyyy-MM"),number:function(a,c,d,e,f,g){Id(a,c,d,e);kb(a,c,d,e,f,g);e.$$parserName="number";e.$parsers.push(function(a){return e.$isEmpty(a)?null:tg.test(a)?parseFloat(a):t});e.$formatters.push(function(a){if(!e.$isEmpty(a)){if(!V(a))throw Lb("numfmt",a);a=a.toString()}return a});if(w(d.min)||d.ngMin){var h;e.$validators.min=function(a){return e.$isEmpty(a)|| +A(h)||a>=h};d.$observe("min",function(a){w(a)&&!V(a)&&(a=parseFloat(a,10));h=V(a)&&!isNaN(a)?a:t;e.$validate()})}if(w(d.max)||d.ngMax){var l;e.$validators.max=function(a){return e.$isEmpty(a)||A(l)||a<=l};d.$observe("max",function(a){w(a)&&!V(a)&&(a=parseFloat(a,10));l=V(a)&&!isNaN(a)?a:t;e.$validate()})}},url:function(a,c,d,e,f,g){kb(a,c,d,e,f,g);kc(e);e.$$parserName="url";e.$validators.url=function(a,c){var d=a||c;return e.$isEmpty(d)||rg.test(d)}},email:function(a,c,d,e,f,g){kb(a,c,d,e,f,g);kc(e); +e.$$parserName="email";e.$validators.email=function(a,c){var d=a||c;return e.$isEmpty(d)||sg.test(d)}},radio:function(a,c,d,e){A(d.name)&&c.attr("name",++nb);c.on("click",function(a){c[0].checked&&e.$setViewValue(d.value,a&&a.type)});e.$render=function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",e.$render)},checkbox:function(a,c,d,e,f,g,h,l){var k=Jd(l,a,"ngTrueValue",d.ngTrueValue,!0),n=Jd(l,a,"ngFalseValue",d.ngFalseValue,!1);c.on("click",function(a){e.$setViewValue(c[0].checked,a&& +a.type)});e.$render=function(){c[0].checked=e.$viewValue};e.$isEmpty=function(a){return!1===a};e.$formatters.push(function(a){return ka(a,k)});e.$parsers.push(function(a){return a?k:n})},hidden:v,button:v,submit:v,reset:v,file:v},Fc=["$browser","$sniffer","$filter","$parse",function(a,c,d,e){return{restrict:"E",require:["?ngModel"],link:{pre:function(f,g,h,l){l[0]&&(Td[M(h.type)]||Td.text)(f,g,h,l[0],c,a,d,e)}}}}],ug=/^(true|false|\d+)$/,Oe=function(){return{restrict:"A",priority:100,compile:function(a, +c){return ug.test(c.ngValue)?function(a,c,f){f.$set("value",a.$eval(f.ngValue))}:function(a,c,f){a.$watch(f.ngValue,function(a){f.$set("value",a)})}}}},oe=["$compile",function(a){return{restrict:"AC",compile:function(c){a.$$addBindingClass(c);return function(c,e,f){a.$$addBindingInfo(e,f.ngBind);e=e[0];c.$watch(f.ngBind,function(a){e.textContent=a===t?"":a})}}}}],qe=["$interpolate","$compile",function(a,c){return{compile:function(d){c.$$addBindingClass(d);return function(d,f,g){d=a(f.attr(g.$attr.ngBindTemplate)); +c.$$addBindingInfo(f,d.expressions);f=f[0];g.$observe("ngBindTemplate",function(a){f.textContent=a===t?"":a})}}}}],pe=["$sce","$parse","$compile",function(a,c,d){return{restrict:"A",compile:function(e,f){var g=c(f.ngBindHtml),h=c(f.ngBindHtml,function(a){return(a||"").toString()});d.$$addBindingClass(e);return function(c,e,f){d.$$addBindingInfo(e,f.ngBindHtml);c.$watch(h,function(){e.html(a.getTrustedHtml(g(c))||"")})}}}}],Ne=ra({restrict:"A",require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}), +re=lc("",!0),te=lc("Odd",0),se=lc("Even",1),ue=Ma({compile:function(a,c){c.$set("ngCloak",t);a.removeClass("ng-cloak")}}),ve=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Kc={},vg={blur:!0,focus:!0};m("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var c=wa("ng-"+a);Kc[c]=["$parse","$rootScope",function(d,e){return{restrict:"A",compile:function(f,g){var h= +d(g[c],null,!0);return function(c,d){d.on(a,function(d){var f=function(){h(c,{$event:d})};vg[a]&&e.$$phase?c.$evalAsync(f):c.$apply(f)})}}}}]});var ye=["$animate",function(a){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(c,d,e,f,g){var h,l,k;c.$watch(e.ngIf,function(c){c?l||g(function(c,f){l=f;c[c.length++]=U.createComment(" end ngIf: "+e.ngIf+" ");h={clone:c};a.enter(c,d.parent(),d)}):(k&&(k.remove(),k=null),l&&(l.$destroy(),l=null),h&&(k= +qb(h.clone),a.leave(k).then(function(){k=null}),h=null))})}}}],ze=["$templateRequest","$anchorScroll","$animate",function(a,c,d){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:ca.noop,compile:function(e,f){var g=f.ngInclude||f.src,h=f.onload||"",l=f.autoscroll;return function(e,f,m,s,q){var t=0,F,u,p,v=function(){u&&(u.remove(),u=null);F&&(F.$destroy(),F=null);p&&(d.leave(p).then(function(){u=null}),u=p,p=null)};e.$watch(g,function(g){var m=function(){!w(l)||l&&!e.$eval(l)|| +c()},r=++t;g?(a(g,!0).then(function(a){if(r===t){var c=e.$new();s.template=a;a=q(c,function(a){v();d.enter(a,null,f).then(m)});F=c;p=a;F.$emit("$includeContentLoaded",g);e.$eval(h)}},function(){r===t&&(v(),e.$emit("$includeContentError",g))}),e.$emit("$includeContentRequested",g)):(v(),s.template=null)})}}}}],Qe=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(c,d,e,f){/SVG/.test(d[0].toString())?(d.empty(),a(Nc(f.template,U).childNodes)(c,function(a){d.append(a)}, +{futureParentElement:d})):(d.html(f.template),a(d.contents())(c))}}}],Ae=Ma({priority:450,compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),Me=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,c,d,e){var f=c.attr(d.$attr.ngList)||", ",g="false"!==d.ngTrim,h=g?R(f):f;e.$parsers.push(function(a){if(!A(a)){var c=[];a&&m(a.split(h),function(a){a&&c.push(g?R(a):a)});return c}});e.$formatters.push(function(a){return G(a)?a.join(f):t});e.$isEmpty=function(a){return!a|| +!a.length}}}},mb="ng-valid",Kd="ng-invalid",Va="ng-pristine",Jb="ng-dirty",Md="ng-pending",Lb=new J("ngModel"),wg=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(a,c,d,e,f,g,h,l,k,n){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue=t;this.$validators={};this.$asyncValidators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$untouched=!0;this.$touched=!1;this.$pristine=!0;this.$dirty= +!1;this.$valid=!0;this.$invalid=!1;this.$error={};this.$$success={};this.$pending=t;this.$name=n(d.name||"",!1)(a);var r=f(d.ngModel),s=r.assign,q=r,C=s,F=null,u,p=this;this.$$setOptions=function(a){if((p.$options=a)&&a.getterSetter){var c=f(d.ngModel+"()"),g=f(d.ngModel+"($$$p)");q=function(a){var d=r(a);z(d)&&(d=c(a));return d};C=function(a,c){z(r(a))?g(a,{$$$p:p.$modelValue}):s(a,p.$modelValue)}}else if(!r.assign)throw Lb("nonassign",d.ngModel,ua(e));};this.$render=v;this.$isEmpty=function(a){return A(a)|| +""===a||null===a||a!==a};var K=e.inheritedData("$formController")||Ib,y=0;Hd({ctrl:this,$element:e,set:function(a,c){a[c]=!0},unset:function(a,c){delete a[c]},parentForm:K,$animate:g});this.$setPristine=function(){p.$dirty=!1;p.$pristine=!0;g.removeClass(e,Jb);g.addClass(e,Va)};this.$setDirty=function(){p.$dirty=!0;p.$pristine=!1;g.removeClass(e,Va);g.addClass(e,Jb);K.$setDirty()};this.$setUntouched=function(){p.$touched=!1;p.$untouched=!0;g.setClass(e,"ng-untouched","ng-touched")};this.$setTouched= +function(){p.$touched=!0;p.$untouched=!1;g.setClass(e,"ng-touched","ng-untouched")};this.$rollbackViewValue=function(){h.cancel(F);p.$viewValue=p.$$lastCommittedViewValue;p.$render()};this.$validate=function(){if(!V(p.$modelValue)||!isNaN(p.$modelValue)){var a=p.$$rawModelValue,c=p.$valid,d=p.$modelValue,e=p.$options&&p.$options.allowInvalid;p.$$runValidators(a,p.$$lastCommittedViewValue,function(f){e||c===f||(p.$modelValue=f?a:t,p.$modelValue!==d&&p.$$writeModelToScope())})}};this.$$runValidators= +function(a,c,d){function e(){var d=!0;m(p.$validators,function(e,f){var h=e(a,c);d=d&&h;g(f,h)});return d?!0:(m(p.$asyncValidators,function(a,c){g(c,null)}),!1)}function f(){var d=[],e=!0;m(p.$asyncValidators,function(f,h){var k=f(a,c);if(!k||!z(k.then))throw Lb("$asyncValidators",k);g(h,t);d.push(k.then(function(){g(h,!0)},function(a){e=!1;g(h,!1)}))});d.length?k.all(d).then(function(){h(e)},v):h(!0)}function g(a,c){l===y&&p.$setValidity(a,c)}function h(a){l===y&&d(a)}y++;var l=y;(function(){var a= +p.$$parserName||"parse";if(u===t)g(a,null);else return u||(m(p.$validators,function(a,c){g(c,null)}),m(p.$asyncValidators,function(a,c){g(c,null)})),g(a,u),u;return!0})()?e()?f():h(!1):h(!1)};this.$commitViewValue=function(){var a=p.$viewValue;h.cancel(F);if(p.$$lastCommittedViewValue!==a||""===a&&p.$$hasNativeValidators)p.$$lastCommittedViewValue=a,p.$pristine&&this.$setDirty(),this.$$parseAndValidate()};this.$$parseAndValidate=function(){var c=p.$$lastCommittedViewValue;if(u=A(c)?t:!0)for(var d= +0;df||e.$isEmpty(c)||c.length<=f}}}}},Ic=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){if(e){var f=0;d.$observe("minlength",function(a){f=W(a)||0;e.$validate()});e.$validators.minlength=function(a,c){return e.$isEmpty(c)||c.length>=f}}}}};O.angular.bootstrap?console.log("WARNING: Tried to load angular more than once."):(ce(),ee(ca),y(U).ready(function(){Zd(U,Ac)}))})(window,document);!window.angular.$$csp()&&window.angular.element(document.head).prepend(''); +//# sourceMappingURL=angular.min.js.map diff --git a/awx/ui/client/lib/angular/angular.min.js.gzip b/awx/ui/client/lib/angular/angular.min.js.gzip new file mode 100644 index 0000000000..64c240da57 Binary files /dev/null and b/awx/ui/client/lib/angular/angular.min.js.gzip differ diff --git a/awx/ui/client/lib/angular/angular.min.js.map b/awx/ui/client/lib/angular/angular.min.js.map new file mode 100644 index 0000000000..71ce90dcc5 --- /dev/null +++ b/awx/ui/client/lib/angular/angular.min.js.map @@ -0,0 +1,8 @@ +{ +"version":3, +"file":"angular.min.js", +"lineCount":289, +"mappings":"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", +"sources":["angular.js"], +"names":["window","document","undefined","minErr","isArrayLike","obj","isWindow","length","Object","nodeType","NODE_TYPE_ELEMENT","isString","isArray","forEach","iterator","context","key","isFunction","hasOwnProperty","call","isPrimitive","isBlankObject","forEachSorted","keys","sort","i","reverseParams","iteratorFn","value","nextUid","uid","setHashKey","h","$$hashKey","baseExtend","dst","objs","deep","ii","isObject","j","jj","src","isDate","Date","valueOf","extend","slice","arguments","merge","toInt","str","parseInt","inherit","parent","extra","create","noop","identity","$","valueFn","hasCustomToString","toString","prototype","isUndefined","isDefined","getPrototypeOf","isNumber","isRegExp","isScope","$evalAsync","$watch","isBoolean","isElement","node","nodeName","prop","attr","find","makeMap","items","split","nodeName_","element","lowercase","arrayRemove","array","index","indexOf","splice","copy","source","destination","stackSource","stackDest","ngMinErr","TYPED_ARRAY_REGEXP","test","push","constructor","getTime","RegExp","match","lastIndex","emptyObject","shallowCopy","charAt","equals","o1","o2","t1","t2","keySet","createMap","concat","array1","array2","bind","self","fn","curryArgs","startIndex","apply","toJsonReplacer","val","toJson","pretty","JSON","stringify","fromJson","json","parse","timezoneToOffset","timezone","fallback","requestedTimezoneOffset","isNaN","convertTimezoneToLocal","date","reverse","timezoneOffset","getTimezoneOffset","setMinutes","getMinutes","minutes","startingTag","jqLite","clone","empty","e","elemHtml","append","html","NODE_TYPE_TEXT","replace","tryDecodeURIComponent","decodeURIComponent","parseKeyValue","keyValue","key_value","toKeyValue","parts","arrayValue","encodeUriQuery","join","encodeUriSegment","pctEncodeSpaces","encodeURIComponent","getNgAttribute","ngAttr","ngAttrPrefixes","getAttribute","angularInit","bootstrap","appElement","module","config","prefix","name","hasAttribute","candidate","querySelector","strictDi","modules","defaultConfig","doBootstrap","injector","tag","unshift","$provide","debugInfoEnabled","$compileProvider","createInjector","invoke","bootstrapApply","scope","compile","$apply","data","NG_ENABLE_DEBUG_INFO","NG_DEFER_BOOTSTRAP","angular","resumeBootstrap","angular.resumeBootstrap","extraModules","resumeDeferredBootstrap","reloadWithDebugInfo","location","reload","getTestability","rootElement","get","snake_case","separator","SNAKE_CASE_REGEXP","letter","pos","toLowerCase","bindJQuery","originalCleanData","bindJQueryFired","jqName","jq","jQuery","on","JQLitePrototype","isolateScope","controller","inheritedData","cleanData","jQuery.cleanData","elems","events","skipDestroyOnNextJQueryCleanData","elem","_data","$destroy","triggerHandler","JQLite","assertArg","arg","reason","assertArgFn","acceptArrayAnnotation","assertNotHasOwnProperty","getter","path","bindFnToScope","lastInstance","len","getBlockNodes","nodes","endNode","blockNodes","nextSibling","setupModuleLoader","ensure","factory","$injectorMinErr","$$minErr","requires","configFn","invokeLater","provider","method","insertMethod","queue","invokeQueue","moduleInstance","invokeLaterAndSetModuleName","recipeName","factoryFunction","$$moduleName","configBlocks","runBlocks","_invokeQueue","_configBlocks","_runBlocks","service","constant","decorator","animation","filter","directive","run","block","publishExternalAPI","version","uppercase","counter","csp","angularModule","$LocaleProvider","ngModule","$$sanitizeUri","$$SanitizeUriProvider","$CompileProvider","a","htmlAnchorDirective","input","inputDirective","textarea","form","formDirective","script","scriptDirective","select","selectDirective","style","styleDirective","option","optionDirective","ngBind","ngBindDirective","ngBindHtml","ngBindHtmlDirective","ngBindTemplate","ngBindTemplateDirective","ngClass","ngClassDirective","ngClassEven","ngClassEvenDirective","ngClassOdd","ngClassOddDirective","ngCloak","ngCloakDirective","ngController","ngControllerDirective","ngForm","ngFormDirective","ngHide","ngHideDirective","ngIf","ngIfDirective","ngInclude","ngIncludeDirective","ngInit","ngInitDirective","ngNonBindable","ngNonBindableDirective","ngPluralize","ngPluralizeDirective","ngRepeat","ngRepeatDirective","ngShow","ngShowDirective","ngStyle","ngStyleDirective","ngSwitch","ngSwitchDirective","ngSwitchWhen","ngSwitchWhenDirective","ngSwitchDefault","ngSwitchDefaultDirective","ngOptions","ngOptionsDirective","ngTransclude","ngTranscludeDirective","ngModel","ngModelDirective","ngList","ngListDirective","ngChange","ngChangeDirective","pattern","patternDirective","ngPattern","required","requiredDirective","ngRequired","minlength","minlengthDirective","ngMinlength","maxlength","maxlengthDirective","ngMaxlength","ngValue","ngValueDirective","ngModelOptions","ngModelOptionsDirective","ngIncludeFillContentDirective","ngAttributeAliasDirectives","ngEventDirectives","$anchorScroll","$AnchorScrollProvider","$animate","$AnimateProvider","$$animateQueue","$$CoreAnimateQueueProvider","$$AnimateRunner","$$CoreAnimateRunnerProvider","$browser","$BrowserProvider","$cacheFactory","$CacheFactoryProvider","$controller","$ControllerProvider","$document","$DocumentProvider","$exceptionHandler","$ExceptionHandlerProvider","$filter","$FilterProvider","$interpolate","$InterpolateProvider","$interval","$IntervalProvider","$http","$HttpProvider","$httpParamSerializer","$HttpParamSerializerProvider","$httpParamSerializerJQLike","$HttpParamSerializerJQLikeProvider","$httpBackend","$HttpBackendProvider","$location","$LocationProvider","$log","$LogProvider","$parse","$ParseProvider","$rootScope","$RootScopeProvider","$q","$QProvider","$$q","$$QProvider","$sce","$SceProvider","$sceDelegate","$SceDelegateProvider","$sniffer","$SnifferProvider","$templateCache","$TemplateCacheProvider","$templateRequest","$TemplateRequestProvider","$$testability","$$TestabilityProvider","$timeout","$TimeoutProvider","$window","$WindowProvider","$$rAF","$$RAFProvider","$$jqLite","$$jqLiteProvider","$$HashMap","$$HashMapProvider","$$cookieReader","$$CookieReaderProvider","camelCase","SPECIAL_CHARS_REGEXP","_","offset","toUpperCase","MOZ_HACK_REGEXP","jqLiteAcceptsData","NODE_TYPE_DOCUMENT","jqLiteBuildFragment","tmp","fragment","createDocumentFragment","HTML_REGEXP","appendChild","createElement","TAG_NAME_REGEXP","exec","wrap","wrapMap","_default","innerHTML","XHTML_TAG_REGEXP","lastChild","childNodes","firstChild","textContent","createTextNode","argIsString","trim","jqLiteMinErr","parsed","SINGLE_TAG_REGEXP","jqLiteAddNodes","jqLiteClone","cloneNode","jqLiteDealoc","onlyDescendants","jqLiteRemoveData","querySelectorAll","descendants","l","jqLiteOff","type","unsupported","expandoStore","jqLiteExpandoStore","handle","listenerFns","removeEventListener","expandoId","ng339","jqCache","createIfNecessary","jqId","jqLiteData","isSimpleSetter","isSimpleGetter","massGetter","jqLiteHasClass","selector","jqLiteRemoveClass","cssClasses","setAttribute","cssClass","jqLiteAddClass","existingClasses","root","elements","jqLiteController","jqLiteInheritedData","documentElement","names","parentNode","NODE_TYPE_DOCUMENT_FRAGMENT","host","jqLiteEmpty","removeChild","jqLiteRemove","keepData","jqLiteDocumentLoaded","action","win","readyState","setTimeout","getBooleanAttrName","booleanAttr","BOOLEAN_ATTR","BOOLEAN_ELEMENTS","getAliasedAttrName","ALIASED_ATTR","createEventHandler","eventHandler","event","isDefaultPrevented","event.isDefaultPrevented","defaultPrevented","eventFns","eventFnsLength","immediatePropagationStopped","originalStopImmediatePropagation","stopImmediatePropagation","event.stopImmediatePropagation","stopPropagation","isImmediatePropagationStopped","event.isImmediatePropagationStopped","$get","this.$get","hasClass","classes","addClass","removeClass","hashKey","nextUidFn","objType","HashMap","isolatedUid","this.nextUid","put","anonFn","args","fnText","STRIP_COMMENTS","FN_ARGS","modulesToLoad","supportObject","delegate","provider_","providerInjector","instantiate","providerCache","providerSuffix","enforceReturnValue","enforcedReturnValue","result","instanceInjector","factoryFn","enforce","loadModules","moduleFn","runInvokeQueue","invokeArgs","loadedModules","message","stack","createInternalInjector","cache","getService","serviceName","caller","INSTANTIATING","err","shift","locals","$inject","$$annotate","Type","instance","returnedValue","annotate","has","$injector","instanceCache","decorFn","origProvider","orig$get","origProvider.$get","origInstance","$delegate","autoScrollingEnabled","disableAutoScrolling","this.disableAutoScrolling","getFirstAnchor","list","Array","some","scrollTo","scrollIntoView","scroll","yOffset","getComputedStyle","position","getBoundingClientRect","bottom","elemTop","top","scrollBy","hash","elm","getElementById","getElementsByName","autoScrollWatch","autoScrollWatchAction","newVal","oldVal","mergeClasses","b","splitClasses","klass","prepareAnimateOptions","options","Browser","completeOutstandingRequest","outstandingRequestCount","outstandingRequestCallbacks","pop","error","cacheStateAndFireUrlChange","cacheState","fireUrlChange","history","state","cachedState","lastCachedState","lastBrowserUrl","url","lastHistoryState","urlChangeListeners","listener","clearTimeout","pendingDeferIds","isMock","$$completeOutstandingRequest","$$incOutstandingRequestCount","self.$$incOutstandingRequestCount","notifyWhenNoOutstandingRequests","self.notifyWhenNoOutstandingRequests","callback","href","baseElement","reloadLocation","self.url","sameState","sameBase","stripHash","substr","self.state","urlChangeInit","onUrlChange","self.onUrlChange","$$applicationDestroyed","self.$$applicationDestroyed","off","$$checkUrlChange","baseHref","self.baseHref","defer","self.defer","delay","timeoutId","cancel","self.defer.cancel","deferId","cacheFactory","cacheId","refresh","entry","freshEnd","staleEnd","n","link","p","nextEntry","prevEntry","caches","size","stats","id","capacity","Number","MAX_VALUE","lruHash","lruEntry","remove","removeAll","destroy","info","cacheFactory.info","cacheFactory.get","$$sanitizeUriProvider","parseIsolateBindings","directiveName","isController","LOCAL_REGEXP","bindings","definition","scopeName","$compileMinErr","mode","collection","optional","attrName","assertValidDirectiveName","hasDirectives","COMMENT_DIRECTIVE_REGEXP","CLASS_DIRECTIVE_REGEXP","ALL_OR_NOTHING_ATTRS","REQUIRE_PREFIX_REGEXP","EVENT_HANDLER_ATTR_REGEXP","this.directive","registerDirective","directiveFactory","Suffix","directives","priority","require","restrict","bindToController","controllerAs","CNTRL_REG","$$bindings","$$isolateBindings","aHrefSanitizationWhitelist","this.aHrefSanitizationWhitelist","regexp","imgSrcSanitizationWhitelist","this.imgSrcSanitizationWhitelist","this.debugInfoEnabled","enabled","safeAddClass","$element","className","$compileNodes","transcludeFn","maxPriority","ignoreDirective","previousCompileContext","nodeValue","compositeLinkFn","compileNodes","$$addScopeClass","namespace","publicLinkFn","cloneConnectFn","parentBoundTranscludeFn","transcludeControllers","futureParentElement","$$boundTransclude","$linkNode","wrapTemplate","controllerName","$$addScopeInfo","nodeList","$rootElement","childLinkFn","childScope","childBoundTranscludeFn","stableNodeList","nodeLinkFnFound","linkFns","idx","nodeLinkFn","destroyBindings","$new","$$destroyBindings","$on","transcludeOnThisElement","createBoundTranscludeFn","transclude","templateOnThisElement","attrs","linkFnFound","Attributes","collectDirectives","applyDirectivesToNode","$$element","terminal","previousBoundTranscludeFn","boundTranscludeFn","transcludedScope","cloneFn","controllers","containingScope","$$transcluded","attrsMap","$attr","addDirective","directiveNormalize","isNgAttr","nAttrs","attributes","attrStartName","attrEndName","ngAttrName","NG_ATTR_BINDING","PREFIX_REGEXP","directiveNName","directiveIsMultiElement","nName","addAttrInterpolateDirective","animVal","msie","addTextInterpolateDirective","NODE_TYPE_COMMENT","byPriority","groupScan","attrStart","attrEnd","depth","groupElementsLinkFnWrapper","linkFn","compileNode","templateAttrs","jqCollection","originalReplaceDirective","preLinkFns","postLinkFns","addLinkFns","pre","post","newIsolateScopeDirective","$$isolateScope","cloneAndAnnotateFn","getControllers","elementControllers","substring","inheritType","dataName","setupControllers","controllerDirectives","controllerKey","$scope","$attrs","$transclude","controllerInstance","hasElementTranscludeDirective","linkNode","thisLinkFn","controllersBoundTransclude","cloneAttachFn","scopeToChild","templateDirective","$$originalDirective","initializeDirectiveBindings","scopeDirective","newScopeDirective","controllerForBindings","identifier","controllerResult","invokeLinkFn","template","templateUrl","terminalPriority","nonTlbTranscludeDirective","hasTranscludeDirective","hasTemplate","$compileNode","$template","childTranscludeFn","$$start","$$end","directiveValue","assertNoDuplicate","$$tlb","createComment","replaceWith","replaceDirective","contents","denormalizeTemplate","removeComments","templateNamespace","newTemplateAttrs","templateDirectives","unprocessedDirectives","markDirectivesAsIsolate","mergeTemplateAttributes","compileTemplateUrl","Math","max","tDirectives","startAttrName","endAttrName","multiElement","srcAttr","dstAttr","$set","tAttrs","linkQueue","afterTemplateNodeLinkFn","afterTemplateChildLinkFn","beforeTemplateCompileNode","origAsyncDirective","derivedSyncDirective","then","content","tempTemplateAttrs","beforeTemplateLinkNode","linkRootElement","$$destroyed","oldClasses","delayedNodeLinkFn","ignoreChildLinkFn","diff","what","previousDirective","wrapModuleNameIfDefined","moduleName","text","interpolateFn","textInterpolateCompileFn","templateNode","templateNodeParent","hasCompileParent","$$addBindingClass","textInterpolateLinkFn","$$addBindingInfo","expressions","interpolateFnWatchAction","wrapper","getTrustedContext","attrNormalizedName","HTML","RESOURCE_URL","allOrNothing","trustedContext","attrInterpolatePreLinkFn","$$observers","newValue","$$inter","$$scope","oldValue","$updateClass","elementsToRemove","newNode","firstElementToRemove","removeCount","j2","replaceChild","hasData","expando","k","kk","annotation","newScope","onNewScopeDestroyed","lastValue","parentGet","parentSet","compare","$observe","literal","assign","parentValueWatch","parentValue","$stateful","unwatch","$watchCollection","attributesToCopy","$normalize","$addClass","classVal","$removeClass","newClasses","toAdd","tokenDifference","toRemove","writeAttr","booleanKey","aliasedKey","observer","trimmedSrcset","srcPattern","rawUris","nbrUrisWith2parts","floor","innerIdx","lastTuple","removeAttr","listeners","startSymbol","endSymbol","binding","isolated","noTemplate","str1","str2","values","tokens1","tokens2","token","jqNodes","globals","register","this.register","allowGlobals","this.allowGlobals","addIdentifier","expression","later","ident","$controllerMinErr","controllerPrototype","exception","cause","serializeValue","v","toISOString","ngParamSerializer","params","jQueryLikeParamSerializer","serialize","toSerialize","topLevel","defaultHttpResponseTransform","headers","tempData","JSON_PROTECTION_PREFIX","contentType","jsonStart","JSON_START","JSON_ENDS","parseHeaders","line","headerVal","headerKey","headersGetter","headersObj","transformData","status","fns","defaults","transformResponse","transformRequest","d","common","CONTENT_TYPE_APPLICATION_JSON","patch","xsrfCookieName","xsrfHeaderName","paramSerializer","useApplyAsync","this.useApplyAsync","interceptorFactories","interceptors","requestConfig","response","resp","reject","executeHeaderFns","headerContent","processedHeaders","headerFn","header","mergeHeaders","defHeaders","reqHeaders","defHeaderName","lowercaseDefHeaderName","reqHeaderName","chain","serverRequest","reqData","withCredentials","sendReq","promise","when","reversedInterceptors","interceptor","request","requestError","responseError","thenFn","rejectFn","success","promise.success","promise.error","done","headersString","statusText","resolveHttpPromise","resolvePromise","$applyAsync","$$phase","deferred","resolve","resolvePromiseWithResult","removePendingReq","pendingRequests","cachedResp","buildUrl","defaultCache","xsrfValue","urlIsSameOrigin","timeout","responseType","serializedParams","interceptorFactory","createShortMethods","createShortMethodsWithData","createXhr","XMLHttpRequest","createHttpBackend","callbacks","$browserDefer","rawDocument","jsonpReq","callbackId","async","body","called","addEventListener","timeoutRequest","jsonpDone","xhr","abort","completeRequest","open","setRequestHeader","onload","xhr.onload","responseText","urlResolve","protocol","getAllResponseHeaders","onerror","onabort","send","this.startSymbol","this.endSymbol","escape","ch","unescapeText","escapedStartRegexp","escapedEndRegexp","mustHaveExpression","parseStringifyInterceptor","getTrusted","$interpolateMinErr","interr","endIndex","parseFns","textLength","expressionPositions","startSymbolLength","exp","endSymbolLength","throwNoconcat","compute","interpolationFn","$$watchDelegate","$watchGroup","interpolateFnWatcher","oldValues","currValue","$interpolate.startSymbol","$interpolate.endSymbol","interval","count","invokeApply","hasParams","setInterval","clearInterval","iteration","skipApply","$$intervalId","tick","notify","intervals","interval.cancel","NUMBER_FORMATS","DECIMAL_SEP","GROUP_SEP","PATTERNS","minInt","minFrac","maxFrac","posPre","posSuf","negPre","negSuf","gSize","lgSize","CURRENCY_SYM","DATETIME_FORMATS","MONTH","SHORTMONTH","DAY","SHORTDAY","AMPMS","medium","fullDate","longDate","mediumDate","shortDate","mediumTime","shortTime","ERANAMES","ERAS","pluralCat","num","encodePath","segments","parseAbsoluteUrl","absoluteUrl","locationObj","parsedUrl","$$protocol","$$host","hostname","$$port","port","DEFAULT_PORTS","parseAppUrl","relativeUrl","prefixed","$$path","pathname","$$search","search","$$hash","beginsWith","begin","whole","trimEmptyHash","stripFile","lastIndexOf","LocationHtml5Url","appBase","basePrefix","$$html5","appBaseNoFile","$$parse","this.$$parse","pathUrl","$locationMinErr","$$compose","this.$$compose","$$url","$$absUrl","$$parseLinkUrl","this.$$parseLinkUrl","relHref","appUrl","prevAppUrl","rewrittenUrl","LocationHashbangUrl","hashPrefix","withoutBaseUrl","withoutHashUrl","windowsFilePathExp","base","firstPathSegmentMatch","LocationHashbangInHtml5Url","locationGetter","property","locationGetterSetter","preprocess","html5Mode","requireBase","rewriteLinks","this.hashPrefix","this.html5Mode","setBrowserUrlWithFallback","oldUrl","oldState","$$state","afterLocationChange","$broadcast","absUrl","LocationMode","initialUrl","IGNORE_URI_REGEXP","ctrlKey","metaKey","shiftKey","which","button","target","absHref","preventDefault","initializing","newUrl","newState","$digest","$locationWatch","currentReplace","$$replace","urlOrStateChanged","debug","debugEnabled","this.debugEnabled","flag","formatError","Error","sourceURL","consoleLog","console","logFn","log","hasApply","arg1","arg2","warn","ensureSafeMemberName","fullExpression","$parseMinErr","ensureSafeObject","children","ensureSafeFunction","CALL","APPLY","BIND","ifDefined","plusFn","r","findConstantAndWatchExpressions","ast","allConstants","argsToWatch","AST","Program","expr","Literal","toWatch","UnaryExpression","argument","BinaryExpression","left","right","LogicalExpression","ConditionalExpression","alternate","consequent","Identifier","MemberExpression","object","computed","CallExpression","callee","AssignmentExpression","ArrayExpression","ObjectExpression","properties","ThisExpression","getInputs","lastExpression","isAssignable","assignableAST","NGValueParameter","operator","isLiteral","ASTCompiler","astBuilder","ASTInterpreter","setter","setValue","fullExp","propertyObj","isPossiblyDangerousMemberName","getValueOf","objectValueOf","cacheDefault","cacheExpensive","expressionInputDirtyCheck","oldValueOfValue","inputsWatchDelegate","objectEquality","parsedExpression","prettyPrintExpression","inputExpressions","inputs","lastResult","oldInputValueOf","expressionInputWatch","newInputValue","oldInputValueOfValues","oldInputValues","expressionInputsWatch","changed","oneTimeWatchDelegate","oneTimeWatch","oneTimeListener","old","$$postDigest","oneTimeLiteralWatchDelegate","isAllDefined","allDefined","constantWatchDelegate","constantWatch","constantListener","addInterceptor","interceptorFn","watchDelegate","regularInterceptedExpression","oneTimeInterceptedExpression","$parseOptions","expensiveChecks","$parseOptionsExpensive","oneTime","cacheKey","parseOptions","lexer","Lexer","parser","Parser","qFactory","nextTick","exceptionHandler","callOnce","resolveFn","Promise","simpleBind","scheduleProcessQueue","processScheduled","pending","Deferred","$qMinErr","TypeError","onFulfilled","onRejected","progressBack","catch","finally","handleCallback","$$reject","$$resolve","progress","makePromise","resolved","isResolved","callbackOutput","errback","$Q","Q","resolver","all","promises","results","flush","taskQueue","task","taskCount","queueFn","asyncFn","cancelLastRAF","rafFn","cancelQueueFn","requestAnimationFrame","webkitRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","webkitCancelRequestAnimationFrame","rafSupported","timer","supported","createChildScopeClass","ChildScope","$$watchers","$$nextSibling","$$childHead","$$childTail","$$listeners","$$listenerCount","$$watchersCount","$id","$$ChildScope","TTL","$rootScopeMinErr","lastDirtyWatch","applyAsyncId","digestTtl","this.digestTtl","destroyChildScope","$event","currentScope","Scope","$parent","$$prevSibling","$root","beginPhase","phase","incrementWatchersCount","current","decrementListenerCount","initWatchVal","flushApplyAsync","applyAsyncQueue","scheduleApplyAsync","isolate","child","watchExp","watcher","last","eq","deregisterWatch","watchExpressions","watchGroupAction","changeReactionScheduled","firstRun","newValues","deregisterFns","shouldCall","deregisterWatchGroup","unwatchFn","watchGroupSubAction","$watchCollectionInterceptor","_value","bothNaN","newItem","oldItem","internalArray","oldLength","changeDetected","newLength","internalObject","veryOldValue","trackVeryOldValue","changeDetector","initRun","$watchCollectionAction","watch","watchers","dirty","ttl","watchLog","logIdx","asyncTask","asyncQueue","$eval","msg","next","postDigestQueue","eventName","this.$watchGroup","$applyAsyncExpression","namedListeners","indexOfListener","$emit","targetScope","listenerArgs","$$asyncQueue","$$postDigestQueue","$$applyAsyncQueue","sanitizeUri","uri","isImage","regex","normalizedVal","adjustMatcher","matcher","$sceMinErr","escapeForRegexp","adjustMatchers","matchers","adjustedMatchers","SCE_CONTEXTS","resourceUrlWhitelist","resourceUrlBlacklist","this.resourceUrlWhitelist","this.resourceUrlBlacklist","matchUrl","generateHolderType","Base","holderType","trustedValue","$$unwrapTrustedValue","this.$$unwrapTrustedValue","holderType.prototype.valueOf","holderType.prototype.toString","htmlSanitizer","trustedValueHolderBase","byType","CSS","URL","JS","trustAs","Constructor","maybeTrusted","allowed","this.enabled","sce","isEnabled","sce.isEnabled","sce.getTrusted","parseAs","sce.parseAs","enumValue","lName","eventSupport","android","userAgent","navigator","boxee","vendorPrefix","vendorRegex","bodyStyle","transitions","animations","webkitTransition","webkitAnimation","pushState","hasEvent","divElm","handleRequestFn","tpl","ignoreRequestError","totalPendingRequests","getTrustedResourceUrl","transformer","httpOptions","handleError","testability","testability.findBindings","opt_exactMatch","getElementsByClassName","matches","dataBinding","bindingName","testability.findModels","prefixes","attributeEquals","testability.getLocation","testability.setLocation","testability.whenStable","deferreds","$$timeoutId","timeout.cancel","urlParsingNode","requestUrl","originUrl","$$CookieReader","safeDecodeURIComponent","lastCookies","lastCookieString","cookieArray","cookie","currentCookieString","filters","suffix","currencyFilter","dateFilter","filterFilter","jsonFilter","limitToFilter","lowercaseFilter","numberFilter","orderByFilter","uppercaseFilter","comparator","matchAgainstAnyProp","getTypeForFilter","expressionType","predicateFn","createPredicateFn","shouldMatchPrimitives","actual","expected","item","deepCompare","dontMatchWholeObject","actualType","expectedType","expectedVal","matchAnyProperty","actualVal","$locale","formats","amount","currencySymbol","fractionSize","formatNumber","number","groupSep","decimalSep","isNegative","abs","isInfinity","Infinity","isFinite","numStr","formatedText","hasExponent","toFixed","parseFloat","fractionLen","min","round","fraction","lgroup","group","padNumber","digits","neg","dateGetter","dateStrGetter","shortForm","getFirstThursdayOfYear","year","dayOfWeekOnFirst","getDay","weekGetter","firstThurs","getFullYear","thisThurs","getMonth","getDate","eraGetter","jsonStringToDate","string","R_ISO8601_STR","tzHour","tzMin","dateSetter","setUTCFullYear","setFullYear","timeSetter","setUTCHours","setHours","m","s","ms","format","NUMBER_STRING","DATE_FORMATS_SPLIT","dateTimezoneOffset","DATE_FORMATS","spacing","limit","processPredicates","sortPredicate","reverseOrder","map","predicate","descending","predicates","compareValues","getComparisonObject","predicateValues","doComparison","v1","v2","ngDirective","FormController","controls","parentForm","$$parentForm","nullFormCtrl","$error","$$success","$pending","$name","$dirty","$pristine","$valid","$invalid","$submitted","$addControl","$rollbackViewValue","form.$rollbackViewValue","control","$commitViewValue","form.$commitViewValue","form.$addControl","$$renameControl","form.$$renameControl","newName","oldName","$removeControl","form.$removeControl","$setValidity","addSetValidityMethod","ctrl","set","unset","$setDirty","form.$setDirty","PRISTINE_CLASS","DIRTY_CLASS","$setPristine","form.$setPristine","setClass","SUBMITTED_CLASS","$setUntouched","form.$setUntouched","$setSubmitted","form.$setSubmitted","stringBasedInputType","$formatters","$isEmpty","baseInputType","composing","ev","ngTrim","$viewValue","$$hasNativeValidators","$setViewValue","deferListener","origValue","keyCode","$render","ctrl.$render","createDateParser","mapping","iso","ISO_DATE_REGEXP","yyyy","MM","dd","HH","getHours","mm","ss","getSeconds","sss","getMilliseconds","part","NaN","createDateInputType","parseDate","dynamicDateInputType","isValidDate","parseObservedDateValue","badInputChecker","$options","previousDate","$$parserName","$parsers","parsedDate","$ngModelMinErr","ngMin","minVal","$validators","ctrl.$validators.min","$validate","ngMax","maxVal","ctrl.$validators.max","validity","VALIDITY_STATE_PROPERTY","badInput","typeMismatch","parseConstantExpr","parseFn","classDirective","arrayDifference","arrayClasses","digestClassCounts","classCounts","classesToUpdate","ngClassWatchAction","$index","old$index","mod","cachedToggleClass","switchValue","classCache","toggleValidationCss","validationErrorKey","isValid","VALID_CLASS","INVALID_CLASS","setValidity","isObjectEmpty","PENDING_CLASS","combinedState","REGEX_STRING_REGEXP","documentMode","isActive_","active","Function","name_","el","full","major","minor","dot","codeName","JQLite._data","MOUSE_EVENT_MAP","mouseleave","mouseenter","optgroup","tbody","tfoot","colgroup","caption","thead","th","td","ready","trigger","fired","removeData","jqLiteHasData","removeAttribute","css","NODE_TYPE_ATTRIBUTE","lowercasedName","specified","getNamedItem","ret","getText","$dv","multiple","selected","nodeCount","jqLiteOn","types","related","relatedTarget","contains","one","onFn","replaceNode","insertBefore","contentDocument","prepend","wrapNode","detach","after","newElement","toggleClass","condition","classCondition","nextElementSibling","getElementsByTagName","extraParameters","dummyEvent","handlerArgs","eventFnsCopy","arg3","unbind","FN_ARG_SPLIT","FN_ARG","argDecl","underscore","$animateMinErr","AnimateRunner","end","resume","pause","complete","pass","fail","postDigestElements","addRemoveClassesPostDigest","add","existing","pin","domOperation","from","to","$$registeredAnimations","classNameFilter","this.classNameFilter","$$classNameFilter","reservedRegex","NG_ANIMATE_CLASSNAME","domInsert","parentElement","afterElement","afterNode","ELEMENT_NODE","previousElementSibling","runner","enter","move","leave","addclass","animate","tempClasses","APPLICATION_JSON","$interpolateMinErr.throwNoconcat","$interpolateMinErr.interr","PATH_MATCH","locationPrototype","paramValue","Location","Location.prototype.state","OPERATORS","ESCAPE","lex","tokens","readString","peek","readNumber","isIdent","readIdent","is","isWhitespace","ch2","ch3","op2","op3","op1","throwError","chars","isExpOperator","start","colStr","peekCh","quote","rawString","hex","String","fromCharCode","rep","ExpressionStatement","Property","program","expressionStatement","expect","filterChain","assignment","ternary","logicalOR","consume","logicalAND","equality","relational","additive","multiplicative","unary","primary","arrayDeclaration","constants","parseArguments","baseExpression","peekToken","kind","e1","e2","e3","e4","peekAhead","t","nextId","vars","own","assignable","stage","computing","recurse","generateFunction","fnKey","intoId","return_","watchId","fnString","USE","STRICT","filterPrefix","watchFns","varsPrefix","section","nameId","recursionFn","skipWatchIdCheck","if_","lazyAssign","computedMember","lazyRecurse","plus","not","getHasOwnProperty","nonComputedMember","addEnsureSafeObject","notNull","addEnsureSafeMemberName","addEnsureSafeFunction","member","filterName","defaultValue","stringEscapeRegex","stringEscapeFn","c","charCodeAt","skip","init","fn.assign","rhs","lhs","unary+","unary-","unary!","binary+","binary-","binary*","binary/","binary%","binary===","binary!==","binary==","binary!=","binary<","binary>","binary<=","binary>=","binary&&","binary||","ternary?:","astCompiler","yy","y","MMMM","MMM","M","H","hh","EEEE","EEE","ampmGetter","Z","timeZoneGetter","zone","paddedZone","ww","w","G","GG","GGG","GGGG","longEraGetter","xlinkHref","propName","defaultLinkFn","normalized","ngBooleanAttrWatchAction","htmlAttr","ngAttrAliasWatchAction","nullFormRenameControl","formDirectiveFactory","isNgForm","ngFormCompile","formElement","nameAttr","ngFormPreLink","handleFormSubmission","parentFormCtrl","URL_REGEXP","EMAIL_REGEXP","NUMBER_REGEXP","DATE_REGEXP","DATETIMELOCAL_REGEXP","WEEK_REGEXP","MONTH_REGEXP","TIME_REGEXP","inputType","textInputType","weekParser","isoWeek","existingDate","week","hours","seconds","milliseconds","addDays","numberInputType","urlInputType","ctrl.$validators.url","modelValue","viewValue","emailInputType","email","ctrl.$validators.email","radioInputType","checked","checkboxInputType","trueValue","ngTrueValue","falseValue","ngFalseValue","ctrl.$isEmpty","ctrls","CONSTANT_VALUE_REGEXP","tplAttr","ngValueConstantLink","ngValueLink","valueWatchAction","$compile","ngBindCompile","templateElement","ngBindLink","ngBindWatchAction","ngBindTemplateCompile","ngBindTemplateLink","ngBindHtmlCompile","tElement","ngBindHtmlGetter","ngBindHtmlWatch","getStringValue","ngBindHtmlLink","ngBindHtmlWatchAction","getTrustedHtml","$viewChangeListeners","forceAsyncEvents","ngEventHandler","previousElements","ngIfWatchAction","srcExp","onloadExp","autoScrollExp","autoscroll","changeCounter","previousElement","currentElement","cleanupLastIncludeContent","ngIncludeWatchAction","afterAnimation","thisChangeId","namespaceAdaptedClone","trimValues","NgModelController","$modelValue","$$rawModelValue","$asyncValidators","$untouched","$touched","parsedNgModel","parsedNgModelAssign","ngModelGet","ngModelSet","pendingDebounce","parserValid","$$setOptions","this.$$setOptions","getterSetter","invokeModelGetter","invokeModelSetter","$$$p","this.$isEmpty","currentValidationRunId","this.$setPristine","this.$setDirty","this.$setUntouched","UNTOUCHED_CLASS","TOUCHED_CLASS","$setTouched","this.$setTouched","this.$rollbackViewValue","$$lastCommittedViewValue","this.$validate","prevValid","prevModelValue","allowInvalid","$$runValidators","allValid","$$writeModelToScope","this.$$runValidators","doneCallback","processSyncValidators","syncValidatorsValid","validator","processAsyncValidators","validatorPromises","validationDone","localValidationRunId","processParseErrors","errorKey","this.$commitViewValue","$$parseAndValidate","this.$$parseAndValidate","this.$$writeModelToScope","this.$setViewValue","updateOnDefault","$$debounceViewValueCommit","this.$$debounceViewValueCommit","debounceDelay","debounce","ngModelWatch","formatters","ngModelCompile","ngModelPreLink","modelCtrl","formCtrl","ngModelPostLink","updateOn","DEFAULT_REGEXP","that","ngOptionsMinErr","NG_OPTIONS_REGEXP","parseOptionsExpression","optionsExp","selectElement","Option","selectValue","label","disabled","getOptionValuesKeys","optionValues","optionValuesKeys","keyName","itemKey","valueName","selectAs","trackBy","viewValueFn","trackByFn","getTrackByValueFn","getHashOfValue","getTrackByValue","getLocals","displayFn","groupByFn","disableWhenFn","valuesFn","getWatchables","watchedArray","optionValuesLength","disableWhen","getOptions","optionItems","selectValueMap","optionItem","getOptionFromViewValue","getViewValueFromOption","optionTemplate","optGroupTemplate","updateOptionElement","addOrReuseElement","removeExcessElements","skipEmptyAndUnknownOptions","emptyOption_","emptyOption","unknownOption_","unknownOption","updateOptions","previousValue","selectCtrl","readValue","groupMap","providedEmptyOption","updateOption","optionElement","groupElement","currentOptionElement","ngModelCtrl","nextValue","ngModelCtrl.$isEmpty","writeValue","selectCtrl.writeValue","selectCtrl.readValue","selectedValues","selections","selectedOption","BRACE","IS_WHEN","updateElementText","newText","numberExp","whenExp","whens","whensExpFns","braceReplacement","watchRemover","lastCount","attributeName","tmpMatch","whenKey","ngPluralizeWatchAction","countIsNaN","whenExpFn","ngRepeatMinErr","updateScope","valueIdentifier","keyIdentifier","arrayLength","$first","$last","$middle","$odd","$even","ngRepeatCompile","ngRepeatEndComment","aliasAs","trackByExp","trackByExpGetter","trackByIdExpFn","trackByIdArrayFn","trackByIdObjFn","hashFnLocals","ngRepeatLink","lastBlockMap","ngRepeatAction","previousNode","nextNode","nextBlockMap","collectionLength","trackById","collectionKeys","nextBlockOrder","trackByIdFn","blockKey","ngRepeatTransclude","ngShowWatchAction","NG_HIDE_CLASS","NG_HIDE_IN_PROGRESS_CLASS","ngHideWatchAction","ngStyleWatchAction","newStyles","oldStyles","ngSwitchController","cases","selectedTranscludes","selectedElements","previousLeaveAnimations","selectedScopes","spliceFactory","ngSwitchWatchAction","selectedTransclude","caseElement","selectedScope","anchor","noopNgModelController","SelectController","optionsMap","renderUnknownOption","self.renderUnknownOption","unknownVal","removeUnknownOption","self.removeUnknownOption","self.readValue","self.writeValue","hasOption","addOption","self.addOption","removeOption","self.removeOption","self.hasOption","ngModelCtrl.$render","lastView","lastViewRef","selectMultipleWatch","chromeHack","selectCtrlName","interpolateWatchAction","ctrl.$validators.required","patternExp","ctrl.$validators.pattern","intVal","ctrl.$validators.maxlength","ctrl.$validators.minlength","$$csp","head"] +} diff --git a/awx/ui/static/lib/angular/bower.json b/awx/ui/client/lib/angular/bower.json similarity index 66% rename from awx/ui/static/lib/angular/bower.json rename to awx/ui/client/lib/angular/bower.json index 349f494a75..25dbde948b 100644 --- a/awx/ui/static/lib/angular/bower.json +++ b/awx/ui/client/lib/angular/bower.json @@ -1,7 +1,8 @@ { "name": "angular", - "version": "1.2.23", + "version": "1.4.3", "main": "./angular.js", + "ignore": [], "dependencies": { } } diff --git a/awx/ui/static/lib/angular/index.js b/awx/ui/client/lib/angular/index.js similarity index 100% rename from awx/ui/static/lib/angular/index.js rename to awx/ui/client/lib/angular/index.js diff --git a/awx/ui/static/lib/angular/package.json b/awx/ui/client/lib/angular/package.json similarity index 95% rename from awx/ui/static/lib/angular/package.json rename to awx/ui/client/lib/angular/package.json index abfd51463e..28ac057ca6 100644 --- a/awx/ui/static/lib/angular/package.json +++ b/awx/ui/client/lib/angular/package.json @@ -1,6 +1,6 @@ { "name": "angular", - "version": "1.3.15", + "version": "1.4.3", "description": "HTML enhanced for web apps", "main": "index.js", "scripts": { diff --git a/awx/ui/static/lib/bootstrap-datepicker/.bower.json b/awx/ui/client/lib/bootstrap-datepicker/.bower.json similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/.bower.json rename to awx/ui/client/lib/bootstrap-datepicker/.bower.json diff --git a/awx/ui/static/lib/bootstrap-datepicker/.editorconfig b/awx/ui/client/lib/bootstrap-datepicker/.editorconfig similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/.editorconfig rename to awx/ui/client/lib/bootstrap-datepicker/.editorconfig diff --git a/awx/ui/static/lib/bootstrap-datepicker/.gitignore b/awx/ui/client/lib/bootstrap-datepicker/.gitignore similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/.gitignore rename to awx/ui/client/lib/bootstrap-datepicker/.gitignore diff --git a/awx/ui/static/lib/bootstrap-datepicker/.travis.yml b/awx/ui/client/lib/bootstrap-datepicker/.travis.yml similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/.travis.yml rename to awx/ui/client/lib/bootstrap-datepicker/.travis.yml diff --git a/awx/ui/static/lib/bootstrap-datepicker/CHANGELOG.md b/awx/ui/client/lib/bootstrap-datepicker/CHANGELOG.md similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/CHANGELOG.md rename to awx/ui/client/lib/bootstrap-datepicker/CHANGELOG.md diff --git a/awx/ui/static/lib/bootstrap-datepicker/CONTRIBUTING.md b/awx/ui/client/lib/bootstrap-datepicker/CONTRIBUTING.md similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/CONTRIBUTING.md rename to awx/ui/client/lib/bootstrap-datepicker/CONTRIBUTING.md diff --git a/awx/ui/static/lib/bootstrap-datepicker/Gruntfile.js b/awx/ui/client/lib/bootstrap-datepicker/Gruntfile.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/Gruntfile.js rename to awx/ui/client/lib/bootstrap-datepicker/Gruntfile.js diff --git a/awx/ui/static/fonts/LICENSE.txt b/awx/ui/client/lib/bootstrap-datepicker/LICENSE similarity index 98% rename from awx/ui/static/fonts/LICENSE.txt rename to awx/ui/client/lib/bootstrap-datepicker/LICENSE index 75b52484ea..d645695673 100644 --- a/awx/ui/static/fonts/LICENSE.txt +++ b/awx/ui/client/lib/bootstrap-datepicker/LICENSE @@ -1,202 +1,202 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/awx/ui/static/lib/bootstrap-datepicker/README.md b/awx/ui/client/lib/bootstrap-datepicker/README.md similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/README.md rename to awx/ui/client/lib/bootstrap-datepicker/README.md diff --git a/awx/ui/static/lib/bootstrap-datepicker/bower.json b/awx/ui/client/lib/bootstrap-datepicker/bower.json similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/bower.json rename to awx/ui/client/lib/bootstrap-datepicker/bower.json diff --git a/awx/ui/static/lib/bootstrap-datepicker/composer.json b/awx/ui/client/lib/bootstrap-datepicker/composer.json similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/composer.json rename to awx/ui/client/lib/bootstrap-datepicker/composer.json diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker.css b/awx/ui/client/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker.css similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker.css rename to awx/ui/client/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker.css diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css b/awx/ui/client/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css rename to awx/ui/client/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.css b/awx/ui/client/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.css similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.css rename to awx/ui/client/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.css diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.min.css b/awx/ui/client/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.min.css similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.min.css rename to awx/ui/client/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.min.css diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker3.css b/awx/ui/client/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker3.css similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker3.css rename to awx/ui/client/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker3.css diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker3.min.css b/awx/ui/client/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker3.min.css similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker3.min.css rename to awx/ui/client/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker3.min.css diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.css b/awx/ui/client/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.css similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.css rename to awx/ui/client/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.css diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.min.css b/awx/ui/client/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.min.css similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.min.css rename to awx/ui/client/lib/bootstrap-datepicker/dist/css/bootstrap-datepicker3.standalone.min.css diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/js/bootstrap-datepicker.js b/awx/ui/client/lib/bootstrap-datepicker/dist/js/bootstrap-datepicker.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/js/bootstrap-datepicker.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/js/bootstrap-datepicker.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ar.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ar.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ar.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ar.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.az.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.az.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.az.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.az.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bg.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bg.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bg.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bg.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bs.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bs.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bs.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.bs.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ca.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ca.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ca.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ca.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.cs.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.cs.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.cs.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.cs.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.cy.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.cy.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.cy.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.cy.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.da.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.da.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.da.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.da.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.de.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.de.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.de.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.de.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.el.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.el.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.el.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.el.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-GB.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-GB.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-GB.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.en-GB.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.es.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.es.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.es.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.es.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.et.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.et.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.et.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.et.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.eu.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.eu.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.eu.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.eu.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fa.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fa.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fa.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fa.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fi.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fi.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fi.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fi.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fo.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fo.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fo.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fo.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fr-CH.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fr-CH.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fr-CH.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fr-CH.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fr.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fr.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fr.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.fr.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.gl.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.gl.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.gl.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.gl.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.he.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.he.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.he.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.he.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hr.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hr.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hr.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hr.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hu.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hu.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hu.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hu.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hy.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hy.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hy.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.hy.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.id.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.id.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.id.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.id.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.is.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.is.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.is.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.is.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.it-CH.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.it-CH.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.it-CH.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.it-CH.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.it.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.it.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.it.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.it.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ja.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ja.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ja.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ja.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ka.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ka.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ka.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ka.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kh.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kh.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kh.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kh.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kk.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kk.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kk.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kk.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kr.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kr.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kr.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.kr.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.lt.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.lt.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.lt.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.lt.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.lv.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.lv.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.lv.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.lv.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.me.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.me.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.me.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.me.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.mk.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.mk.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.mk.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.mk.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ms.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ms.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ms.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ms.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nb.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nb.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nb.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nb.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nl-BE.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nl-BE.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nl-BE.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nl-BE.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nl.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nl.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nl.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.nl.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.no.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.no.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.no.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.no.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pl.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pl.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pl.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pl.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pt-BR.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pt-BR.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pt-BR.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pt-BR.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pt.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pt.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pt.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.pt.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ro.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ro.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ro.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ro.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.rs-latin.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.rs-latin.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.rs-latin.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.rs-latin.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.rs.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.rs.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.rs.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.rs.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ru.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ru.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ru.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.ru.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sk.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sk.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sk.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sk.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sl.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sl.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sl.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sl.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sq.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sq.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sq.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sq.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sr-latin.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sr-latin.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sr-latin.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sr-latin.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sr.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sr.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sr.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sr.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sv.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sv.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sv.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sv.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sw.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sw.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sw.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.sw.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.th.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.th.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.th.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.th.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.tr.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.tr.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.tr.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.tr.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.uk.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.uk.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.uk.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.uk.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.vi.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.vi.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.vi.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.vi.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.zh-CN.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.zh-CN.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.zh-CN.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.zh-CN.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.zh-TW.min.js b/awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.zh-TW.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.zh-TW.min.js rename to awx/ui/client/lib/bootstrap-datepicker/dist/locales/bootstrap-datepicker.zh-TW.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/Makefile b/awx/ui/client/lib/bootstrap-datepicker/docs/Makefile similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/Makefile rename to awx/ui/client/lib/bootstrap-datepicker/docs/Makefile diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/README.md b/awx/ui/client/lib/bootstrap-datepicker/docs/README.md similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/README.md rename to awx/ui/client/lib/bootstrap-datepicker/docs/README.md diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/demo_head.html b/awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/demo_head.html similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/demo_head.html rename to awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/demo_head.html diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/markup_component.html b/awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/markup_component.html similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/markup_component.html rename to awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/markup_component.html diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/markup_daterange.html b/awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/markup_daterange.html similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/markup_daterange.html rename to awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/markup_daterange.html diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/markup_inline.html b/awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/markup_inline.html similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/markup_inline.html rename to awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/markup_inline.html diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/markup_input.html b/awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/markup_input.html similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/markup_input.html rename to awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/markup_input.html diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/option_calendarweeks.html b/awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/option_calendarweeks.html similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/option_calendarweeks.html rename to awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/option_calendarweeks.html diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/option_clearbtn.html b/awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/option_clearbtn.html similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/option_clearbtn.html rename to awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/option_clearbtn.html diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/option_daysofweekdisabled.html b/awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/option_daysofweekdisabled.html similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/option_daysofweekdisabled.html rename to awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/option_daysofweekdisabled.html diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/option_enddate.html b/awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/option_enddate.html similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/option_enddate.html rename to awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/option_enddate.html diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/option_language.html b/awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/option_language.html similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/option_language.html rename to awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/option_language.html diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/option_multidate.html b/awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/option_multidate.html similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/option_multidate.html rename to awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/option_multidate.html diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/option_startdate.html b/awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/option_startdate.html similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/option_startdate.html rename to awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/option_startdate.html diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/option_todaybtn.html b/awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/option_todaybtn.html similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/option_todaybtn.html rename to awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/option_todaybtn.html diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/option_todayhighlight.html b/awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/option_todayhighlight.html similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/option_todayhighlight.html rename to awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/option_todayhighlight.html diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/option_weekstart.html b/awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/option_weekstart.html similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/option_weekstart.html rename to awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/option_weekstart.html diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/script/common.css b/awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/script/common.css similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/script/common.css rename to awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/script/common.css diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/script/common.js b/awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/script/common.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/script/common.js rename to awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/script/common.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/script/debug.js b/awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/script/debug.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/script/debug.js rename to awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/script/debug.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/script/html-imports.min.js b/awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/script/html-imports.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/script/html-imports.min.js rename to awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/script/html-imports.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/script/screenshot.js b/awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/script/screenshot.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_screenshots/script/screenshot.js rename to awx/ui/client/lib/bootstrap-datepicker/docs/_screenshots/script/screenshot.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/demo_head.png b/awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/demo_head.png similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/demo_head.png rename to awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/demo_head.png diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/markup_component.png b/awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/markup_component.png similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/markup_component.png rename to awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/markup_component.png diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/markup_daterange.png b/awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/markup_daterange.png similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/markup_daterange.png rename to awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/markup_daterange.png diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/markup_inline.png b/awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/markup_inline.png similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/markup_inline.png rename to awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/markup_inline.png diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/markup_input.png b/awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/markup_input.png similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/markup_input.png rename to awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/markup_input.png diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/option_calendarweeks.png b/awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/option_calendarweeks.png similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/option_calendarweeks.png rename to awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/option_calendarweeks.png diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/option_clearbtn.png b/awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/option_clearbtn.png similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/option_clearbtn.png rename to awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/option_clearbtn.png diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/option_daysofweekdisabled.png b/awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/option_daysofweekdisabled.png similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/option_daysofweekdisabled.png rename to awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/option_daysofweekdisabled.png diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/option_enddate.png b/awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/option_enddate.png similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/option_enddate.png rename to awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/option_enddate.png diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/option_language.png b/awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/option_language.png similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/option_language.png rename to awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/option_language.png diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/option_multidate.png b/awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/option_multidate.png similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/option_multidate.png rename to awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/option_multidate.png diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/option_startdate.png b/awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/option_startdate.png similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/option_startdate.png rename to awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/option_startdate.png diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/option_todaybtn.png b/awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/option_todaybtn.png similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/option_todaybtn.png rename to awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/option_todaybtn.png diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/option_todayhighlight.png b/awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/option_todayhighlight.png similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/option_todayhighlight.png rename to awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/option_todayhighlight.png diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/option_weekstart.png b/awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/option_weekstart.png similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/_static/screenshots/option_weekstart.png rename to awx/ui/client/lib/bootstrap-datepicker/docs/_static/screenshots/option_weekstart.png diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/conf.py b/awx/ui/client/lib/bootstrap-datepicker/docs/conf.py similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/conf.py rename to awx/ui/client/lib/bootstrap-datepicker/docs/conf.py diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/events.rst b/awx/ui/client/lib/bootstrap-datepicker/docs/events.rst similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/events.rst rename to awx/ui/client/lib/bootstrap-datepicker/docs/events.rst diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/i18n.rst b/awx/ui/client/lib/bootstrap-datepicker/docs/i18n.rst similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/i18n.rst rename to awx/ui/client/lib/bootstrap-datepicker/docs/i18n.rst diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/index.rst b/awx/ui/client/lib/bootstrap-datepicker/docs/index.rst similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/index.rst rename to awx/ui/client/lib/bootstrap-datepicker/docs/index.rst diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/keyboard.rst b/awx/ui/client/lib/bootstrap-datepicker/docs/keyboard.rst similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/keyboard.rst rename to awx/ui/client/lib/bootstrap-datepicker/docs/keyboard.rst diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/make.bat b/awx/ui/client/lib/bootstrap-datepicker/docs/make.bat similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/make.bat rename to awx/ui/client/lib/bootstrap-datepicker/docs/make.bat diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/markup.rst b/awx/ui/client/lib/bootstrap-datepicker/docs/markup.rst similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/markup.rst rename to awx/ui/client/lib/bootstrap-datepicker/docs/markup.rst diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/methods.rst b/awx/ui/client/lib/bootstrap-datepicker/docs/methods.rst similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/methods.rst rename to awx/ui/client/lib/bootstrap-datepicker/docs/methods.rst diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/options.rst b/awx/ui/client/lib/bootstrap-datepicker/docs/options.rst similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/options.rst rename to awx/ui/client/lib/bootstrap-datepicker/docs/options.rst diff --git a/awx/ui/static/lib/bootstrap-datepicker/docs/requirements.txt b/awx/ui/client/lib/bootstrap-datepicker/docs/requirements.txt similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/docs/requirements.txt rename to awx/ui/client/lib/bootstrap-datepicker/docs/requirements.txt diff --git a/awx/ui/static/lib/bootstrap-datepicker/grunt/.jshintrc b/awx/ui/client/lib/bootstrap-datepicker/grunt/.jshintrc similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/grunt/.jshintrc rename to awx/ui/client/lib/bootstrap-datepicker/grunt/.jshintrc diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/.jscsrc b/awx/ui/client/lib/bootstrap-datepicker/js/.jscsrc similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/.jscsrc rename to awx/ui/client/lib/bootstrap-datepicker/js/.jscsrc diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/.jshintrc b/awx/ui/client/lib/bootstrap-datepicker/js/.jshintrc similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/.jshintrc rename to awx/ui/client/lib/bootstrap-datepicker/js/.jshintrc diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/bootstrap-datepicker.js b/awx/ui/client/lib/bootstrap-datepicker/js/bootstrap-datepicker.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/bootstrap-datepicker.js rename to awx/ui/client/lib/bootstrap-datepicker/js/bootstrap-datepicker.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ar.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ar.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ar.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ar.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.az.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.az.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.az.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.az.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.bg.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.bg.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.bg.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.bg.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.bs.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.bs.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.bs.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.bs.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ca.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ca.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ca.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ca.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.cs.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.cs.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.cs.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.cs.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.cy.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.cy.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.cy.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.cy.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.da.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.da.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.da.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.da.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.de.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.de.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.de.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.de.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.el.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.el.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.el.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.el.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-GB.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-GB.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-GB.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.en-GB.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.es.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.es.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.es.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.es.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.et.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.et.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.et.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.et.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.eu.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.eu.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.eu.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.eu.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.fa.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.fa.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.fa.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.fa.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.fi.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.fi.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.fi.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.fi.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.fo.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.fo.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.fo.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.fo.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.fr-CH.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.fr-CH.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.fr-CH.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.fr-CH.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.fr.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.fr.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.fr.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.fr.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.gl.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.gl.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.gl.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.gl.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.he.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.he.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.he.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.he.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.hr.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.hr.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.hr.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.hr.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.hu.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.hu.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.hu.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.hu.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.hy.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.hy.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.hy.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.hy.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.id.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.id.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.id.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.id.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.is.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.is.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.is.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.is.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.it-CH.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.it-CH.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.it-CH.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.it-CH.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.it.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.it.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.it.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.it.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ja.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ja.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ja.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ja.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ka.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ka.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ka.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ka.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.kh.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.kh.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.kh.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.kh.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.kk.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.kk.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.kk.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.kk.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.kr.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.kr.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.kr.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.kr.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.lt.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.lt.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.lt.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.lt.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.lv.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.lv.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.lv.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.lv.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.me.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.me.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.me.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.me.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.mk.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.mk.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.mk.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.mk.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ms.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ms.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ms.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ms.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.nb.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.nb.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.nb.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.nb.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.nl-BE.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.nl-BE.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.nl-BE.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.nl-BE.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.nl.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.nl.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.nl.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.nl.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.no.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.no.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.no.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.no.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.pl.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.pl.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.pl.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.pl.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.pt-BR.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.pt-BR.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.pt-BR.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.pt-BR.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.pt.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.pt.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.pt.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.pt.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ro.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ro.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ro.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ro.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.rs-latin.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.rs-latin.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.rs-latin.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.rs-latin.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.rs.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.rs.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.rs.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.rs.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ru.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ru.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ru.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.ru.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sk.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sk.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sk.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sk.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sl.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sl.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sl.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sl.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sq.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sq.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sq.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sq.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sr-latin.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sr-latin.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sr-latin.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sr-latin.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sr.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sr.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sr.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sr.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sv.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sv.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sv.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sv.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sw.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sw.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sw.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.sw.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.th.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.th.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.th.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.th.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.tr.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.tr.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.tr.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.tr.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.uk.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.uk.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.uk.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.uk.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.vi.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.vi.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.vi.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.vi.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.zh-CN.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.zh-CN.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.zh-CN.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.zh-CN.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.zh-TW.js b/awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.zh-TW.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.zh-TW.js rename to awx/ui/client/lib/bootstrap-datepicker/js/locales/bootstrap-datepicker.zh-TW.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/less/.csslintrc b/awx/ui/client/lib/bootstrap-datepicker/less/.csslintrc similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/less/.csslintrc rename to awx/ui/client/lib/bootstrap-datepicker/less/.csslintrc diff --git a/awx/ui/static/lib/bootstrap-datepicker/less/datepicker.less b/awx/ui/client/lib/bootstrap-datepicker/less/datepicker.less similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/less/datepicker.less rename to awx/ui/client/lib/bootstrap-datepicker/less/datepicker.less diff --git a/awx/ui/static/lib/bootstrap-datepicker/less/datepicker3.less b/awx/ui/client/lib/bootstrap-datepicker/less/datepicker3.less similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/less/datepicker3.less rename to awx/ui/client/lib/bootstrap-datepicker/less/datepicker3.less diff --git a/awx/ui/static/lib/bootstrap-datepicker/package.json b/awx/ui/client/lib/bootstrap-datepicker/package.json similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/package.json rename to awx/ui/client/lib/bootstrap-datepicker/package.json diff --git a/awx/ui/static/lib/bootstrap-datepicker/tests/README.md b/awx/ui/client/lib/bootstrap-datepicker/tests/README.md similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/tests/README.md rename to awx/ui/client/lib/bootstrap-datepicker/tests/README.md diff --git a/awx/ui/static/lib/bootstrap-datepicker/tests/assets/coverage.js b/awx/ui/client/lib/bootstrap-datepicker/tests/assets/coverage.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/tests/assets/coverage.js rename to awx/ui/client/lib/bootstrap-datepicker/tests/assets/coverage.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/tests/assets/jquery-1.7.1.min.js b/awx/ui/client/lib/bootstrap-datepicker/tests/assets/jquery-1.7.1.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/tests/assets/jquery-1.7.1.min.js rename to awx/ui/client/lib/bootstrap-datepicker/tests/assets/jquery-1.7.1.min.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/tests/assets/mock.js b/awx/ui/client/lib/bootstrap-datepicker/tests/assets/mock.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/tests/assets/mock.js rename to awx/ui/client/lib/bootstrap-datepicker/tests/assets/mock.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/tests/assets/qunit-logging.js b/awx/ui/client/lib/bootstrap-datepicker/tests/assets/qunit-logging.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/tests/assets/qunit-logging.js rename to awx/ui/client/lib/bootstrap-datepicker/tests/assets/qunit-logging.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/tests/assets/qunit.css b/awx/ui/client/lib/bootstrap-datepicker/tests/assets/qunit.css similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/tests/assets/qunit.css rename to awx/ui/client/lib/bootstrap-datepicker/tests/assets/qunit.css diff --git a/awx/ui/static/lib/bootstrap-datepicker/tests/assets/qunit.js b/awx/ui/client/lib/bootstrap-datepicker/tests/assets/qunit.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/tests/assets/qunit.js rename to awx/ui/client/lib/bootstrap-datepicker/tests/assets/qunit.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/tests/assets/utils.js b/awx/ui/client/lib/bootstrap-datepicker/tests/assets/utils.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/tests/assets/utils.js rename to awx/ui/client/lib/bootstrap-datepicker/tests/assets/utils.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/tests/suites/calendar-weeks.js b/awx/ui/client/lib/bootstrap-datepicker/tests/suites/calendar-weeks.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/tests/suites/calendar-weeks.js rename to awx/ui/client/lib/bootstrap-datepicker/tests/suites/calendar-weeks.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/tests/suites/component.js b/awx/ui/client/lib/bootstrap-datepicker/tests/suites/component.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/tests/suites/component.js rename to awx/ui/client/lib/bootstrap-datepicker/tests/suites/component.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/tests/suites/data-api.js b/awx/ui/client/lib/bootstrap-datepicker/tests/suites/data-api.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/tests/suites/data-api.js rename to awx/ui/client/lib/bootstrap-datepicker/tests/suites/data-api.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/tests/suites/events.js b/awx/ui/client/lib/bootstrap-datepicker/tests/suites/events.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/tests/suites/events.js rename to awx/ui/client/lib/bootstrap-datepicker/tests/suites/events.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/tests/suites/formats.js b/awx/ui/client/lib/bootstrap-datepicker/tests/suites/formats.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/tests/suites/formats.js rename to awx/ui/client/lib/bootstrap-datepicker/tests/suites/formats.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/tests/suites/inline.js b/awx/ui/client/lib/bootstrap-datepicker/tests/suites/inline.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/tests/suites/inline.js rename to awx/ui/client/lib/bootstrap-datepicker/tests/suites/inline.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/tests/suites/keyboard_navigation/2011.js b/awx/ui/client/lib/bootstrap-datepicker/tests/suites/keyboard_navigation/2011.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/tests/suites/keyboard_navigation/2011.js rename to awx/ui/client/lib/bootstrap-datepicker/tests/suites/keyboard_navigation/2011.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/tests/suites/keyboard_navigation/2012.js b/awx/ui/client/lib/bootstrap-datepicker/tests/suites/keyboard_navigation/2012.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/tests/suites/keyboard_navigation/2012.js rename to awx/ui/client/lib/bootstrap-datepicker/tests/suites/keyboard_navigation/2012.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/tests/suites/keyboard_navigation/all.js b/awx/ui/client/lib/bootstrap-datepicker/tests/suites/keyboard_navigation/all.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/tests/suites/keyboard_navigation/all.js rename to awx/ui/client/lib/bootstrap-datepicker/tests/suites/keyboard_navigation/all.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/tests/suites/methods.js b/awx/ui/client/lib/bootstrap-datepicker/tests/suites/methods.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/tests/suites/methods.js rename to awx/ui/client/lib/bootstrap-datepicker/tests/suites/methods.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/tests/suites/mouse_navigation/2011.js b/awx/ui/client/lib/bootstrap-datepicker/tests/suites/mouse_navigation/2011.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/tests/suites/mouse_navigation/2011.js rename to awx/ui/client/lib/bootstrap-datepicker/tests/suites/mouse_navigation/2011.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/tests/suites/mouse_navigation/2012.js b/awx/ui/client/lib/bootstrap-datepicker/tests/suites/mouse_navigation/2012.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/tests/suites/mouse_navigation/2012.js rename to awx/ui/client/lib/bootstrap-datepicker/tests/suites/mouse_navigation/2012.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/tests/suites/mouse_navigation/all.js b/awx/ui/client/lib/bootstrap-datepicker/tests/suites/mouse_navigation/all.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/tests/suites/mouse_navigation/all.js rename to awx/ui/client/lib/bootstrap-datepicker/tests/suites/mouse_navigation/all.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/tests/suites/noconflict.js b/awx/ui/client/lib/bootstrap-datepicker/tests/suites/noconflict.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/tests/suites/noconflict.js rename to awx/ui/client/lib/bootstrap-datepicker/tests/suites/noconflict.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/tests/suites/options.js b/awx/ui/client/lib/bootstrap-datepicker/tests/suites/options.js similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/tests/suites/options.js rename to awx/ui/client/lib/bootstrap-datepicker/tests/suites/options.js diff --git a/awx/ui/static/lib/bootstrap-datepicker/tests/tests.html b/awx/ui/client/lib/bootstrap-datepicker/tests/tests.html similarity index 100% rename from awx/ui/static/lib/bootstrap-datepicker/tests/tests.html rename to awx/ui/client/lib/bootstrap-datepicker/tests/tests.html diff --git a/awx/ui/static/lib/bootstrap/.bower.json b/awx/ui/client/lib/bootstrap/.bower.json similarity index 100% rename from awx/ui/static/lib/bootstrap/.bower.json rename to awx/ui/client/lib/bootstrap/.bower.json diff --git a/awx/ui/static/lib/bootstrap/Gruntfile.js b/awx/ui/client/lib/bootstrap/Gruntfile.js similarity index 100% rename from awx/ui/static/lib/bootstrap/Gruntfile.js rename to awx/ui/client/lib/bootstrap/Gruntfile.js diff --git a/awx/ui/static/lib/bootstrap/LICENSE b/awx/ui/client/lib/bootstrap/LICENSE similarity index 100% rename from awx/ui/static/lib/bootstrap/LICENSE rename to awx/ui/client/lib/bootstrap/LICENSE diff --git a/awx/ui/static/lib/bootstrap/README.md b/awx/ui/client/lib/bootstrap/README.md similarity index 100% rename from awx/ui/static/lib/bootstrap/README.md rename to awx/ui/client/lib/bootstrap/README.md diff --git a/awx/ui/static/lib/bootstrap/bower.json b/awx/ui/client/lib/bootstrap/bower.json similarity index 100% rename from awx/ui/static/lib/bootstrap/bower.json rename to awx/ui/client/lib/bootstrap/bower.json diff --git a/awx/ui/static/lib/bootstrap/dist/css/bootstrap-theme.css b/awx/ui/client/lib/bootstrap/dist/css/bootstrap-theme.css similarity index 100% rename from awx/ui/static/lib/bootstrap/dist/css/bootstrap-theme.css rename to awx/ui/client/lib/bootstrap/dist/css/bootstrap-theme.css diff --git a/awx/ui/static/lib/bootstrap/dist/css/bootstrap-theme.css.map b/awx/ui/client/lib/bootstrap/dist/css/bootstrap-theme.css.map similarity index 100% rename from awx/ui/static/lib/bootstrap/dist/css/bootstrap-theme.css.map rename to awx/ui/client/lib/bootstrap/dist/css/bootstrap-theme.css.map diff --git a/awx/ui/static/lib/bootstrap/dist/css/bootstrap-theme.min.css b/awx/ui/client/lib/bootstrap/dist/css/bootstrap-theme.min.css similarity index 100% rename from awx/ui/static/lib/bootstrap/dist/css/bootstrap-theme.min.css rename to awx/ui/client/lib/bootstrap/dist/css/bootstrap-theme.min.css diff --git a/awx/ui/static/lib/bootstrap/dist/css/bootstrap.css b/awx/ui/client/lib/bootstrap/dist/css/bootstrap.css similarity index 100% rename from awx/ui/static/lib/bootstrap/dist/css/bootstrap.css rename to awx/ui/client/lib/bootstrap/dist/css/bootstrap.css diff --git a/awx/ui/static/lib/bootstrap/dist/css/bootstrap.css.map b/awx/ui/client/lib/bootstrap/dist/css/bootstrap.css.map similarity index 100% rename from awx/ui/static/lib/bootstrap/dist/css/bootstrap.css.map rename to awx/ui/client/lib/bootstrap/dist/css/bootstrap.css.map diff --git a/awx/ui/static/lib/bootstrap/dist/css/bootstrap.min.css b/awx/ui/client/lib/bootstrap/dist/css/bootstrap.min.css similarity index 100% rename from awx/ui/static/lib/bootstrap/dist/css/bootstrap.min.css rename to awx/ui/client/lib/bootstrap/dist/css/bootstrap.min.css diff --git a/awx/ui/static/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot b/awx/ui/client/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from awx/ui/static/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot rename to awx/ui/client/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot diff --git a/awx/ui/static/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg b/awx/ui/client/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from awx/ui/static/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg rename to awx/ui/client/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.svg diff --git a/awx/ui/static/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf b/awx/ui/client/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from awx/ui/static/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf rename to awx/ui/client/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf diff --git a/awx/ui/static/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff b/awx/ui/client/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from awx/ui/static/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff rename to awx/ui/client/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff diff --git a/awx/ui/static/lib/bootstrap/dist/js/bootstrap.js b/awx/ui/client/lib/bootstrap/dist/js/bootstrap.js similarity index 100% rename from awx/ui/static/lib/bootstrap/dist/js/bootstrap.js rename to awx/ui/client/lib/bootstrap/dist/js/bootstrap.js diff --git a/awx/ui/static/lib/bootstrap/dist/js/bootstrap.min.js b/awx/ui/client/lib/bootstrap/dist/js/bootstrap.min.js similarity index 100% rename from awx/ui/static/lib/bootstrap/dist/js/bootstrap.min.js rename to awx/ui/client/lib/bootstrap/dist/js/bootstrap.min.js diff --git a/awx/ui/static/lib/bootstrap/fonts/glyphicons-halflings-regular.eot b/awx/ui/client/lib/bootstrap/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from awx/ui/static/lib/bootstrap/fonts/glyphicons-halflings-regular.eot rename to awx/ui/client/lib/bootstrap/fonts/glyphicons-halflings-regular.eot diff --git a/awx/ui/static/lib/bootstrap/fonts/glyphicons-halflings-regular.svg b/awx/ui/client/lib/bootstrap/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from awx/ui/static/lib/bootstrap/fonts/glyphicons-halflings-regular.svg rename to awx/ui/client/lib/bootstrap/fonts/glyphicons-halflings-regular.svg diff --git a/awx/ui/static/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf b/awx/ui/client/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from awx/ui/static/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf rename to awx/ui/client/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf diff --git a/awx/ui/static/lib/bootstrap/fonts/glyphicons-halflings-regular.woff b/awx/ui/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from awx/ui/static/lib/bootstrap/fonts/glyphicons-halflings-regular.woff rename to awx/ui/client/lib/bootstrap/fonts/glyphicons-halflings-regular.woff diff --git a/awx/ui/static/lib/bootstrap/grunt/bs-glyphicons-data-generator.js b/awx/ui/client/lib/bootstrap/grunt/bs-glyphicons-data-generator.js similarity index 100% rename from awx/ui/static/lib/bootstrap/grunt/bs-glyphicons-data-generator.js rename to awx/ui/client/lib/bootstrap/grunt/bs-glyphicons-data-generator.js diff --git a/awx/ui/static/lib/bootstrap/grunt/bs-lessdoc-parser.js b/awx/ui/client/lib/bootstrap/grunt/bs-lessdoc-parser.js similarity index 100% rename from awx/ui/static/lib/bootstrap/grunt/bs-lessdoc-parser.js rename to awx/ui/client/lib/bootstrap/grunt/bs-lessdoc-parser.js diff --git a/awx/ui/static/lib/bootstrap/grunt/bs-raw-files-generator.js b/awx/ui/client/lib/bootstrap/grunt/bs-raw-files-generator.js similarity index 100% rename from awx/ui/static/lib/bootstrap/grunt/bs-raw-files-generator.js rename to awx/ui/client/lib/bootstrap/grunt/bs-raw-files-generator.js diff --git a/awx/ui/static/lib/bootstrap/grunt/shrinkwrap.js b/awx/ui/client/lib/bootstrap/grunt/shrinkwrap.js similarity index 100% rename from awx/ui/static/lib/bootstrap/grunt/shrinkwrap.js rename to awx/ui/client/lib/bootstrap/grunt/shrinkwrap.js diff --git a/awx/ui/static/lib/bootstrap/js/affix.js b/awx/ui/client/lib/bootstrap/js/affix.js similarity index 100% rename from awx/ui/static/lib/bootstrap/js/affix.js rename to awx/ui/client/lib/bootstrap/js/affix.js diff --git a/awx/ui/static/lib/bootstrap/js/alert.js b/awx/ui/client/lib/bootstrap/js/alert.js similarity index 100% rename from awx/ui/static/lib/bootstrap/js/alert.js rename to awx/ui/client/lib/bootstrap/js/alert.js diff --git a/awx/ui/static/lib/bootstrap/js/button.js b/awx/ui/client/lib/bootstrap/js/button.js similarity index 100% rename from awx/ui/static/lib/bootstrap/js/button.js rename to awx/ui/client/lib/bootstrap/js/button.js diff --git a/awx/ui/static/lib/bootstrap/js/carousel.js b/awx/ui/client/lib/bootstrap/js/carousel.js similarity index 100% rename from awx/ui/static/lib/bootstrap/js/carousel.js rename to awx/ui/client/lib/bootstrap/js/carousel.js diff --git a/awx/ui/static/lib/bootstrap/js/collapse.js b/awx/ui/client/lib/bootstrap/js/collapse.js similarity index 100% rename from awx/ui/static/lib/bootstrap/js/collapse.js rename to awx/ui/client/lib/bootstrap/js/collapse.js diff --git a/awx/ui/static/lib/bootstrap/js/dropdown.js b/awx/ui/client/lib/bootstrap/js/dropdown.js similarity index 100% rename from awx/ui/static/lib/bootstrap/js/dropdown.js rename to awx/ui/client/lib/bootstrap/js/dropdown.js diff --git a/awx/ui/static/lib/bootstrap/js/modal.js b/awx/ui/client/lib/bootstrap/js/modal.js similarity index 100% rename from awx/ui/static/lib/bootstrap/js/modal.js rename to awx/ui/client/lib/bootstrap/js/modal.js diff --git a/awx/ui/static/lib/bootstrap/js/popover.js b/awx/ui/client/lib/bootstrap/js/popover.js similarity index 100% rename from awx/ui/static/lib/bootstrap/js/popover.js rename to awx/ui/client/lib/bootstrap/js/popover.js diff --git a/awx/ui/static/lib/bootstrap/js/scrollspy.js b/awx/ui/client/lib/bootstrap/js/scrollspy.js similarity index 100% rename from awx/ui/static/lib/bootstrap/js/scrollspy.js rename to awx/ui/client/lib/bootstrap/js/scrollspy.js diff --git a/awx/ui/static/lib/bootstrap/js/tab.js b/awx/ui/client/lib/bootstrap/js/tab.js similarity index 100% rename from awx/ui/static/lib/bootstrap/js/tab.js rename to awx/ui/client/lib/bootstrap/js/tab.js diff --git a/awx/ui/static/lib/bootstrap/js/tooltip.js b/awx/ui/client/lib/bootstrap/js/tooltip.js similarity index 100% rename from awx/ui/static/lib/bootstrap/js/tooltip.js rename to awx/ui/client/lib/bootstrap/js/tooltip.js diff --git a/awx/ui/static/lib/bootstrap/js/transition.js b/awx/ui/client/lib/bootstrap/js/transition.js similarity index 100% rename from awx/ui/static/lib/bootstrap/js/transition.js rename to awx/ui/client/lib/bootstrap/js/transition.js diff --git a/awx/ui/static/ansible-bootstrap/alerts.less b/awx/ui/client/lib/bootstrap/less/alerts.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/alerts.less rename to awx/ui/client/lib/bootstrap/less/alerts.less diff --git a/awx/ui/static/ansible-bootstrap/badges.less b/awx/ui/client/lib/bootstrap/less/badges.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/badges.less rename to awx/ui/client/lib/bootstrap/less/badges.less diff --git a/awx/ui/static/ansible-bootstrap/bootstrap.less b/awx/ui/client/lib/bootstrap/less/bootstrap.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/bootstrap.less rename to awx/ui/client/lib/bootstrap/less/bootstrap.less diff --git a/awx/ui/static/ansible-bootstrap/breadcrumbs.less b/awx/ui/client/lib/bootstrap/less/breadcrumbs.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/breadcrumbs.less rename to awx/ui/client/lib/bootstrap/less/breadcrumbs.less diff --git a/awx/ui/static/ansible-bootstrap/button-groups.less b/awx/ui/client/lib/bootstrap/less/button-groups.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/button-groups.less rename to awx/ui/client/lib/bootstrap/less/button-groups.less diff --git a/awx/ui/static/ansible-bootstrap/buttons.less b/awx/ui/client/lib/bootstrap/less/buttons.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/buttons.less rename to awx/ui/client/lib/bootstrap/less/buttons.less diff --git a/awx/ui/static/ansible-bootstrap/carousel.less b/awx/ui/client/lib/bootstrap/less/carousel.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/carousel.less rename to awx/ui/client/lib/bootstrap/less/carousel.less diff --git a/awx/ui/static/ansible-bootstrap/close.less b/awx/ui/client/lib/bootstrap/less/close.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/close.less rename to awx/ui/client/lib/bootstrap/less/close.less diff --git a/awx/ui/static/ansible-bootstrap/code.less b/awx/ui/client/lib/bootstrap/less/code.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/code.less rename to awx/ui/client/lib/bootstrap/less/code.less diff --git a/awx/ui/static/ansible-bootstrap/component-animations.less b/awx/ui/client/lib/bootstrap/less/component-animations.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/component-animations.less rename to awx/ui/client/lib/bootstrap/less/component-animations.less diff --git a/awx/ui/static/lib/bootstrap/less/dropdowns.less b/awx/ui/client/lib/bootstrap/less/dropdowns.less similarity index 100% rename from awx/ui/static/lib/bootstrap/less/dropdowns.less rename to awx/ui/client/lib/bootstrap/less/dropdowns.less diff --git a/awx/ui/static/lib/bootstrap/less/forms.less b/awx/ui/client/lib/bootstrap/less/forms.less similarity index 100% rename from awx/ui/static/lib/bootstrap/less/forms.less rename to awx/ui/client/lib/bootstrap/less/forms.less diff --git a/awx/ui/static/ansible-bootstrap/glyphicons.less b/awx/ui/client/lib/bootstrap/less/glyphicons.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/glyphicons.less rename to awx/ui/client/lib/bootstrap/less/glyphicons.less diff --git a/awx/ui/static/ansible-bootstrap/grid.less b/awx/ui/client/lib/bootstrap/less/grid.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/grid.less rename to awx/ui/client/lib/bootstrap/less/grid.less diff --git a/awx/ui/static/ansible-bootstrap/input-groups.less b/awx/ui/client/lib/bootstrap/less/input-groups.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/input-groups.less rename to awx/ui/client/lib/bootstrap/less/input-groups.less diff --git a/awx/ui/static/ansible-bootstrap/jumbotron.less b/awx/ui/client/lib/bootstrap/less/jumbotron.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/jumbotron.less rename to awx/ui/client/lib/bootstrap/less/jumbotron.less diff --git a/awx/ui/static/ansible-bootstrap/labels.less b/awx/ui/client/lib/bootstrap/less/labels.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/labels.less rename to awx/ui/client/lib/bootstrap/less/labels.less diff --git a/awx/ui/static/ansible-bootstrap/list-group.less b/awx/ui/client/lib/bootstrap/less/list-group.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/list-group.less rename to awx/ui/client/lib/bootstrap/less/list-group.less diff --git a/awx/ui/static/ansible-bootstrap/media.less b/awx/ui/client/lib/bootstrap/less/media.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/media.less rename to awx/ui/client/lib/bootstrap/less/media.less diff --git a/awx/ui/static/lib/bootstrap/less/mixins.less b/awx/ui/client/lib/bootstrap/less/mixins.less similarity index 100% rename from awx/ui/static/lib/bootstrap/less/mixins.less rename to awx/ui/client/lib/bootstrap/less/mixins.less diff --git a/awx/ui/static/ansible-bootstrap/modals.less b/awx/ui/client/lib/bootstrap/less/modals.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/modals.less rename to awx/ui/client/lib/bootstrap/less/modals.less diff --git a/awx/ui/static/lib/bootstrap/less/navbar.less b/awx/ui/client/lib/bootstrap/less/navbar.less similarity index 100% rename from awx/ui/static/lib/bootstrap/less/navbar.less rename to awx/ui/client/lib/bootstrap/less/navbar.less diff --git a/awx/ui/static/ansible-bootstrap/navs.less b/awx/ui/client/lib/bootstrap/less/navs.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/navs.less rename to awx/ui/client/lib/bootstrap/less/navs.less diff --git a/awx/ui/static/ansible-bootstrap/normalize.less b/awx/ui/client/lib/bootstrap/less/normalize.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/normalize.less rename to awx/ui/client/lib/bootstrap/less/normalize.less diff --git a/awx/ui/static/ansible-bootstrap/pager.less b/awx/ui/client/lib/bootstrap/less/pager.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/pager.less rename to awx/ui/client/lib/bootstrap/less/pager.less diff --git a/awx/ui/static/ansible-bootstrap/pagination.less b/awx/ui/client/lib/bootstrap/less/pagination.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/pagination.less rename to awx/ui/client/lib/bootstrap/less/pagination.less diff --git a/awx/ui/static/ansible-bootstrap/panels.less b/awx/ui/client/lib/bootstrap/less/panels.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/panels.less rename to awx/ui/client/lib/bootstrap/less/panels.less diff --git a/awx/ui/static/ansible-bootstrap/popovers.less b/awx/ui/client/lib/bootstrap/less/popovers.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/popovers.less rename to awx/ui/client/lib/bootstrap/less/popovers.less diff --git a/awx/ui/static/ansible-bootstrap/print.less b/awx/ui/client/lib/bootstrap/less/print.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/print.less rename to awx/ui/client/lib/bootstrap/less/print.less diff --git a/awx/ui/static/ansible-bootstrap/progress-bars.less b/awx/ui/client/lib/bootstrap/less/progress-bars.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/progress-bars.less rename to awx/ui/client/lib/bootstrap/less/progress-bars.less diff --git a/awx/ui/static/ansible-bootstrap/responsive-utilities.less b/awx/ui/client/lib/bootstrap/less/responsive-utilities.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/responsive-utilities.less rename to awx/ui/client/lib/bootstrap/less/responsive-utilities.less diff --git a/awx/ui/static/lib/bootstrap/less/scaffolding.less b/awx/ui/client/lib/bootstrap/less/scaffolding.less similarity index 100% rename from awx/ui/static/lib/bootstrap/less/scaffolding.less rename to awx/ui/client/lib/bootstrap/less/scaffolding.less diff --git a/awx/ui/static/ansible-bootstrap/tables.less b/awx/ui/client/lib/bootstrap/less/tables.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/tables.less rename to awx/ui/client/lib/bootstrap/less/tables.less diff --git a/awx/ui/static/ansible-bootstrap/theme.less b/awx/ui/client/lib/bootstrap/less/theme.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/theme.less rename to awx/ui/client/lib/bootstrap/less/theme.less diff --git a/awx/ui/static/ansible-bootstrap/thumbnails.less b/awx/ui/client/lib/bootstrap/less/thumbnails.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/thumbnails.less rename to awx/ui/client/lib/bootstrap/less/thumbnails.less diff --git a/awx/ui/static/ansible-bootstrap/tooltip.less b/awx/ui/client/lib/bootstrap/less/tooltip.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/tooltip.less rename to awx/ui/client/lib/bootstrap/less/tooltip.less diff --git a/awx/ui/static/ansible-bootstrap/type.less b/awx/ui/client/lib/bootstrap/less/type.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/type.less rename to awx/ui/client/lib/bootstrap/less/type.less diff --git a/awx/ui/static/ansible-bootstrap/utilities.less b/awx/ui/client/lib/bootstrap/less/utilities.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/utilities.less rename to awx/ui/client/lib/bootstrap/less/utilities.less diff --git a/awx/ui/static/lib/bootstrap/less/variables.less b/awx/ui/client/lib/bootstrap/less/variables.less similarity index 100% rename from awx/ui/static/lib/bootstrap/less/variables.less rename to awx/ui/client/lib/bootstrap/less/variables.less diff --git a/awx/ui/static/ansible-bootstrap/wells.less b/awx/ui/client/lib/bootstrap/less/wells.less similarity index 100% rename from awx/ui/static/ansible-bootstrap/wells.less rename to awx/ui/client/lib/bootstrap/less/wells.less diff --git a/awx/ui/static/lib/bootstrap/test-infra/README.md b/awx/ui/client/lib/bootstrap/test-infra/README.md similarity index 100% rename from awx/ui/static/lib/bootstrap/test-infra/README.md rename to awx/ui/client/lib/bootstrap/test-infra/README.md diff --git a/awx/ui/static/lib/bootstrap/test-infra/npm-shrinkwrap.canonical.json b/awx/ui/client/lib/bootstrap/test-infra/npm-shrinkwrap.canonical.json similarity index 100% rename from awx/ui/static/lib/bootstrap/test-infra/npm-shrinkwrap.canonical.json rename to awx/ui/client/lib/bootstrap/test-infra/npm-shrinkwrap.canonical.json diff --git a/awx/ui/static/lib/bootstrap/test-infra/requirements.txt b/awx/ui/client/lib/bootstrap/test-infra/requirements.txt similarity index 100% rename from awx/ui/static/lib/bootstrap/test-infra/requirements.txt rename to awx/ui/client/lib/bootstrap/test-infra/requirements.txt diff --git a/awx/ui/static/lib/bootstrap/test-infra/s3_cache.py b/awx/ui/client/lib/bootstrap/test-infra/s3_cache.py similarity index 100% rename from awx/ui/static/lib/bootstrap/test-infra/s3_cache.py rename to awx/ui/client/lib/bootstrap/test-infra/s3_cache.py diff --git a/awx/ui/static/lib/bootstrap/test-infra/sauce_browsers.yml b/awx/ui/client/lib/bootstrap/test-infra/sauce_browsers.yml similarity index 100% rename from awx/ui/static/lib/bootstrap/test-infra/sauce_browsers.yml rename to awx/ui/client/lib/bootstrap/test-infra/sauce_browsers.yml diff --git a/awx/ui/static/lib/bootstrap/test-infra/uncached-npm-install.sh b/awx/ui/client/lib/bootstrap/test-infra/uncached-npm-install.sh similarity index 100% rename from awx/ui/static/lib/bootstrap/test-infra/uncached-npm-install.sh rename to awx/ui/client/lib/bootstrap/test-infra/uncached-npm-install.sh diff --git a/awx/ui/static/lib/codemirror/.bower.json b/awx/ui/client/lib/codemirror/.bower.json similarity index 100% rename from awx/ui/static/lib/codemirror/.bower.json rename to awx/ui/client/lib/codemirror/.bower.json diff --git a/awx/ui/static/lib/codemirror/AUTHORS b/awx/ui/client/lib/codemirror/AUTHORS similarity index 100% rename from awx/ui/static/lib/codemirror/AUTHORS rename to awx/ui/client/lib/codemirror/AUTHORS diff --git a/awx/ui/static/lib/codemirror/CONTRIBUTING.md b/awx/ui/client/lib/codemirror/CONTRIBUTING.md similarity index 100% rename from awx/ui/static/lib/codemirror/CONTRIBUTING.md rename to awx/ui/client/lib/codemirror/CONTRIBUTING.md diff --git a/awx/ui/static/lib/codemirror/LICENSE b/awx/ui/client/lib/codemirror/LICENSE similarity index 100% rename from awx/ui/static/lib/codemirror/LICENSE rename to awx/ui/client/lib/codemirror/LICENSE diff --git a/awx/ui/static/lib/codemirror/README.md b/awx/ui/client/lib/codemirror/README.md similarity index 100% rename from awx/ui/static/lib/codemirror/README.md rename to awx/ui/client/lib/codemirror/README.md diff --git a/awx/ui/static/lib/codemirror/addon/comment/comment.js b/awx/ui/client/lib/codemirror/addon/comment/comment.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/comment/comment.js rename to awx/ui/client/lib/codemirror/addon/comment/comment.js diff --git a/awx/ui/static/lib/codemirror/addon/comment/continuecomment.js b/awx/ui/client/lib/codemirror/addon/comment/continuecomment.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/comment/continuecomment.js rename to awx/ui/client/lib/codemirror/addon/comment/continuecomment.js diff --git a/awx/ui/static/lib/codemirror/addon/dialog/dialog.css b/awx/ui/client/lib/codemirror/addon/dialog/dialog.css similarity index 100% rename from awx/ui/static/lib/codemirror/addon/dialog/dialog.css rename to awx/ui/client/lib/codemirror/addon/dialog/dialog.css diff --git a/awx/ui/static/lib/codemirror/addon/dialog/dialog.js b/awx/ui/client/lib/codemirror/addon/dialog/dialog.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/dialog/dialog.js rename to awx/ui/client/lib/codemirror/addon/dialog/dialog.js diff --git a/awx/ui/static/lib/codemirror/addon/display/fullscreen.css b/awx/ui/client/lib/codemirror/addon/display/fullscreen.css similarity index 100% rename from awx/ui/static/lib/codemirror/addon/display/fullscreen.css rename to awx/ui/client/lib/codemirror/addon/display/fullscreen.css diff --git a/awx/ui/static/lib/codemirror/addon/display/fullscreen.js b/awx/ui/client/lib/codemirror/addon/display/fullscreen.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/display/fullscreen.js rename to awx/ui/client/lib/codemirror/addon/display/fullscreen.js diff --git a/awx/ui/static/lib/codemirror/addon/display/placeholder.js b/awx/ui/client/lib/codemirror/addon/display/placeholder.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/display/placeholder.js rename to awx/ui/client/lib/codemirror/addon/display/placeholder.js diff --git a/awx/ui/static/lib/codemirror/addon/display/rulers.js b/awx/ui/client/lib/codemirror/addon/display/rulers.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/display/rulers.js rename to awx/ui/client/lib/codemirror/addon/display/rulers.js diff --git a/awx/ui/static/lib/codemirror/addon/edit/closebrackets.js b/awx/ui/client/lib/codemirror/addon/edit/closebrackets.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/edit/closebrackets.js rename to awx/ui/client/lib/codemirror/addon/edit/closebrackets.js diff --git a/awx/ui/static/lib/codemirror/addon/edit/closetag.js b/awx/ui/client/lib/codemirror/addon/edit/closetag.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/edit/closetag.js rename to awx/ui/client/lib/codemirror/addon/edit/closetag.js diff --git a/awx/ui/static/lib/codemirror/addon/edit/continuelist.js b/awx/ui/client/lib/codemirror/addon/edit/continuelist.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/edit/continuelist.js rename to awx/ui/client/lib/codemirror/addon/edit/continuelist.js diff --git a/awx/ui/static/lib/codemirror/addon/edit/matchbrackets.js b/awx/ui/client/lib/codemirror/addon/edit/matchbrackets.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/edit/matchbrackets.js rename to awx/ui/client/lib/codemirror/addon/edit/matchbrackets.js diff --git a/awx/ui/static/lib/codemirror/addon/edit/matchtags.js b/awx/ui/client/lib/codemirror/addon/edit/matchtags.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/edit/matchtags.js rename to awx/ui/client/lib/codemirror/addon/edit/matchtags.js diff --git a/awx/ui/static/lib/codemirror/addon/edit/trailingspace.js b/awx/ui/client/lib/codemirror/addon/edit/trailingspace.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/edit/trailingspace.js rename to awx/ui/client/lib/codemirror/addon/edit/trailingspace.js diff --git a/awx/ui/static/lib/codemirror/addon/fold/brace-fold.js b/awx/ui/client/lib/codemirror/addon/fold/brace-fold.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/fold/brace-fold.js rename to awx/ui/client/lib/codemirror/addon/fold/brace-fold.js diff --git a/awx/ui/static/lib/codemirror/addon/fold/comment-fold.js b/awx/ui/client/lib/codemirror/addon/fold/comment-fold.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/fold/comment-fold.js rename to awx/ui/client/lib/codemirror/addon/fold/comment-fold.js diff --git a/awx/ui/static/lib/codemirror/addon/fold/foldcode.js b/awx/ui/client/lib/codemirror/addon/fold/foldcode.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/fold/foldcode.js rename to awx/ui/client/lib/codemirror/addon/fold/foldcode.js diff --git a/awx/ui/static/lib/codemirror/addon/fold/foldgutter.css b/awx/ui/client/lib/codemirror/addon/fold/foldgutter.css similarity index 100% rename from awx/ui/static/lib/codemirror/addon/fold/foldgutter.css rename to awx/ui/client/lib/codemirror/addon/fold/foldgutter.css diff --git a/awx/ui/static/lib/codemirror/addon/fold/foldgutter.js b/awx/ui/client/lib/codemirror/addon/fold/foldgutter.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/fold/foldgutter.js rename to awx/ui/client/lib/codemirror/addon/fold/foldgutter.js diff --git a/awx/ui/static/lib/codemirror/addon/fold/indent-fold.js b/awx/ui/client/lib/codemirror/addon/fold/indent-fold.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/fold/indent-fold.js rename to awx/ui/client/lib/codemirror/addon/fold/indent-fold.js diff --git a/awx/ui/static/lib/codemirror/addon/fold/markdown-fold.js b/awx/ui/client/lib/codemirror/addon/fold/markdown-fold.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/fold/markdown-fold.js rename to awx/ui/client/lib/codemirror/addon/fold/markdown-fold.js diff --git a/awx/ui/static/lib/codemirror/addon/fold/xml-fold.js b/awx/ui/client/lib/codemirror/addon/fold/xml-fold.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/fold/xml-fold.js rename to awx/ui/client/lib/codemirror/addon/fold/xml-fold.js diff --git a/awx/ui/static/lib/codemirror/addon/hint/anyword-hint.js b/awx/ui/client/lib/codemirror/addon/hint/anyword-hint.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/hint/anyword-hint.js rename to awx/ui/client/lib/codemirror/addon/hint/anyword-hint.js diff --git a/awx/ui/static/lib/codemirror/addon/hint/css-hint.js b/awx/ui/client/lib/codemirror/addon/hint/css-hint.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/hint/css-hint.js rename to awx/ui/client/lib/codemirror/addon/hint/css-hint.js diff --git a/awx/ui/static/lib/codemirror/addon/hint/html-hint.js b/awx/ui/client/lib/codemirror/addon/hint/html-hint.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/hint/html-hint.js rename to awx/ui/client/lib/codemirror/addon/hint/html-hint.js diff --git a/awx/ui/static/lib/codemirror/addon/hint/javascript-hint.js b/awx/ui/client/lib/codemirror/addon/hint/javascript-hint.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/hint/javascript-hint.js rename to awx/ui/client/lib/codemirror/addon/hint/javascript-hint.js diff --git a/awx/ui/static/lib/codemirror/addon/hint/pig-hint.js b/awx/ui/client/lib/codemirror/addon/hint/pig-hint.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/hint/pig-hint.js rename to awx/ui/client/lib/codemirror/addon/hint/pig-hint.js diff --git a/awx/ui/static/lib/codemirror/addon/hint/python-hint.js b/awx/ui/client/lib/codemirror/addon/hint/python-hint.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/hint/python-hint.js rename to awx/ui/client/lib/codemirror/addon/hint/python-hint.js diff --git a/awx/ui/static/lib/codemirror/addon/hint/show-hint.css b/awx/ui/client/lib/codemirror/addon/hint/show-hint.css similarity index 100% rename from awx/ui/static/lib/codemirror/addon/hint/show-hint.css rename to awx/ui/client/lib/codemirror/addon/hint/show-hint.css diff --git a/awx/ui/static/lib/codemirror/addon/hint/show-hint.js b/awx/ui/client/lib/codemirror/addon/hint/show-hint.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/hint/show-hint.js rename to awx/ui/client/lib/codemirror/addon/hint/show-hint.js diff --git a/awx/ui/static/lib/codemirror/addon/hint/sql-hint.js b/awx/ui/client/lib/codemirror/addon/hint/sql-hint.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/hint/sql-hint.js rename to awx/ui/client/lib/codemirror/addon/hint/sql-hint.js diff --git a/awx/ui/static/lib/codemirror/addon/hint/xml-hint.js b/awx/ui/client/lib/codemirror/addon/hint/xml-hint.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/hint/xml-hint.js rename to awx/ui/client/lib/codemirror/addon/hint/xml-hint.js diff --git a/awx/ui/static/lib/codemirror/addon/lint/coffeescript-lint.js b/awx/ui/client/lib/codemirror/addon/lint/coffeescript-lint.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/lint/coffeescript-lint.js rename to awx/ui/client/lib/codemirror/addon/lint/coffeescript-lint.js diff --git a/awx/ui/static/lib/codemirror/addon/lint/css-lint.js b/awx/ui/client/lib/codemirror/addon/lint/css-lint.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/lint/css-lint.js rename to awx/ui/client/lib/codemirror/addon/lint/css-lint.js diff --git a/awx/ui/static/lib/codemirror/addon/lint/javascript-lint.js b/awx/ui/client/lib/codemirror/addon/lint/javascript-lint.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/lint/javascript-lint.js rename to awx/ui/client/lib/codemirror/addon/lint/javascript-lint.js diff --git a/awx/ui/static/lib/codemirror/addon/lint/json-lint.js b/awx/ui/client/lib/codemirror/addon/lint/json-lint.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/lint/json-lint.js rename to awx/ui/client/lib/codemirror/addon/lint/json-lint.js diff --git a/awx/ui/static/lib/codemirror/addon/lint/lint.css b/awx/ui/client/lib/codemirror/addon/lint/lint.css similarity index 100% rename from awx/ui/static/lib/codemirror/addon/lint/lint.css rename to awx/ui/client/lib/codemirror/addon/lint/lint.css diff --git a/awx/ui/static/lib/codemirror/addon/lint/lint.js b/awx/ui/client/lib/codemirror/addon/lint/lint.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/lint/lint.js rename to awx/ui/client/lib/codemirror/addon/lint/lint.js diff --git a/awx/ui/static/lib/codemirror/addon/lint/yaml-lint.js b/awx/ui/client/lib/codemirror/addon/lint/yaml-lint.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/lint/yaml-lint.js rename to awx/ui/client/lib/codemirror/addon/lint/yaml-lint.js diff --git a/awx/ui/static/lib/codemirror/addon/merge/dep/diff_match_patch.js b/awx/ui/client/lib/codemirror/addon/merge/dep/diff_match_patch.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/merge/dep/diff_match_patch.js rename to awx/ui/client/lib/codemirror/addon/merge/dep/diff_match_patch.js diff --git a/awx/ui/static/lib/codemirror/addon/merge/merge.css b/awx/ui/client/lib/codemirror/addon/merge/merge.css similarity index 100% rename from awx/ui/static/lib/codemirror/addon/merge/merge.css rename to awx/ui/client/lib/codemirror/addon/merge/merge.css diff --git a/awx/ui/static/lib/codemirror/addon/merge/merge.js b/awx/ui/client/lib/codemirror/addon/merge/merge.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/merge/merge.js rename to awx/ui/client/lib/codemirror/addon/merge/merge.js diff --git a/awx/ui/static/lib/codemirror/addon/mode/loadmode.js b/awx/ui/client/lib/codemirror/addon/mode/loadmode.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/mode/loadmode.js rename to awx/ui/client/lib/codemirror/addon/mode/loadmode.js diff --git a/awx/ui/static/lib/codemirror/addon/mode/multiplex.js b/awx/ui/client/lib/codemirror/addon/mode/multiplex.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/mode/multiplex.js rename to awx/ui/client/lib/codemirror/addon/mode/multiplex.js diff --git a/awx/ui/static/lib/codemirror/addon/mode/multiplex_test.js b/awx/ui/client/lib/codemirror/addon/mode/multiplex_test.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/mode/multiplex_test.js rename to awx/ui/client/lib/codemirror/addon/mode/multiplex_test.js diff --git a/awx/ui/static/lib/codemirror/addon/mode/overlay.js b/awx/ui/client/lib/codemirror/addon/mode/overlay.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/mode/overlay.js rename to awx/ui/client/lib/codemirror/addon/mode/overlay.js diff --git a/awx/ui/static/lib/codemirror/addon/runmode/colorize.js b/awx/ui/client/lib/codemirror/addon/runmode/colorize.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/runmode/colorize.js rename to awx/ui/client/lib/codemirror/addon/runmode/colorize.js diff --git a/awx/ui/static/lib/codemirror/addon/runmode/runmode-standalone.js b/awx/ui/client/lib/codemirror/addon/runmode/runmode-standalone.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/runmode/runmode-standalone.js rename to awx/ui/client/lib/codemirror/addon/runmode/runmode-standalone.js diff --git a/awx/ui/static/lib/codemirror/addon/runmode/runmode.js b/awx/ui/client/lib/codemirror/addon/runmode/runmode.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/runmode/runmode.js rename to awx/ui/client/lib/codemirror/addon/runmode/runmode.js diff --git a/awx/ui/static/lib/codemirror/addon/runmode/runmode.node.js b/awx/ui/client/lib/codemirror/addon/runmode/runmode.node.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/runmode/runmode.node.js rename to awx/ui/client/lib/codemirror/addon/runmode/runmode.node.js diff --git a/awx/ui/static/lib/codemirror/addon/scroll/scrollpastend.js b/awx/ui/client/lib/codemirror/addon/scroll/scrollpastend.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/scroll/scrollpastend.js rename to awx/ui/client/lib/codemirror/addon/scroll/scrollpastend.js diff --git a/awx/ui/static/lib/codemirror/addon/search/match-highlighter.js b/awx/ui/client/lib/codemirror/addon/search/match-highlighter.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/search/match-highlighter.js rename to awx/ui/client/lib/codemirror/addon/search/match-highlighter.js diff --git a/awx/ui/static/lib/codemirror/addon/search/search.js b/awx/ui/client/lib/codemirror/addon/search/search.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/search/search.js rename to awx/ui/client/lib/codemirror/addon/search/search.js diff --git a/awx/ui/static/lib/codemirror/addon/search/searchcursor.js b/awx/ui/client/lib/codemirror/addon/search/searchcursor.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/search/searchcursor.js rename to awx/ui/client/lib/codemirror/addon/search/searchcursor.js diff --git a/awx/ui/static/lib/codemirror/addon/selection/active-line.js b/awx/ui/client/lib/codemirror/addon/selection/active-line.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/selection/active-line.js rename to awx/ui/client/lib/codemirror/addon/selection/active-line.js diff --git a/awx/ui/static/lib/codemirror/addon/selection/mark-selection.js b/awx/ui/client/lib/codemirror/addon/selection/mark-selection.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/selection/mark-selection.js rename to awx/ui/client/lib/codemirror/addon/selection/mark-selection.js diff --git a/awx/ui/static/lib/codemirror/addon/tern/tern.css b/awx/ui/client/lib/codemirror/addon/tern/tern.css similarity index 100% rename from awx/ui/static/lib/codemirror/addon/tern/tern.css rename to awx/ui/client/lib/codemirror/addon/tern/tern.css diff --git a/awx/ui/static/lib/codemirror/addon/tern/tern.js b/awx/ui/client/lib/codemirror/addon/tern/tern.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/tern/tern.js rename to awx/ui/client/lib/codemirror/addon/tern/tern.js diff --git a/awx/ui/static/lib/codemirror/addon/tern/worker.js b/awx/ui/client/lib/codemirror/addon/tern/worker.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/tern/worker.js rename to awx/ui/client/lib/codemirror/addon/tern/worker.js diff --git a/awx/ui/static/lib/codemirror/addon/wrap/hardwrap.js b/awx/ui/client/lib/codemirror/addon/wrap/hardwrap.js similarity index 100% rename from awx/ui/static/lib/codemirror/addon/wrap/hardwrap.js rename to awx/ui/client/lib/codemirror/addon/wrap/hardwrap.js diff --git a/awx/ui/static/lib/codemirror/bower.json b/awx/ui/client/lib/codemirror/bower.json similarity index 100% rename from awx/ui/static/lib/codemirror/bower.json rename to awx/ui/client/lib/codemirror/bower.json diff --git a/awx/ui/static/lib/codemirror/keymap/emacs.js b/awx/ui/client/lib/codemirror/keymap/emacs.js similarity index 100% rename from awx/ui/static/lib/codemirror/keymap/emacs.js rename to awx/ui/client/lib/codemirror/keymap/emacs.js diff --git a/awx/ui/static/lib/codemirror/keymap/extra.js b/awx/ui/client/lib/codemirror/keymap/extra.js similarity index 100% rename from awx/ui/static/lib/codemirror/keymap/extra.js rename to awx/ui/client/lib/codemirror/keymap/extra.js diff --git a/awx/ui/static/lib/codemirror/keymap/vim.js b/awx/ui/client/lib/codemirror/keymap/vim.js similarity index 100% rename from awx/ui/static/lib/codemirror/keymap/vim.js rename to awx/ui/client/lib/codemirror/keymap/vim.js diff --git a/awx/ui/static/lib/codemirror/lib/codemirror.css b/awx/ui/client/lib/codemirror/lib/codemirror.css similarity index 100% rename from awx/ui/static/lib/codemirror/lib/codemirror.css rename to awx/ui/client/lib/codemirror/lib/codemirror.css diff --git a/awx/ui/static/lib/codemirror/lib/codemirror.js b/awx/ui/client/lib/codemirror/lib/codemirror.js similarity index 100% rename from awx/ui/static/lib/codemirror/lib/codemirror.js rename to awx/ui/client/lib/codemirror/lib/codemirror.js diff --git a/awx/ui/static/lib/codemirror/mode/apl/apl.js b/awx/ui/client/lib/codemirror/mode/apl/apl.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/apl/apl.js rename to awx/ui/client/lib/codemirror/mode/apl/apl.js diff --git a/awx/ui/static/lib/codemirror/mode/asterisk/asterisk.js b/awx/ui/client/lib/codemirror/mode/asterisk/asterisk.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/asterisk/asterisk.js rename to awx/ui/client/lib/codemirror/mode/asterisk/asterisk.js diff --git a/awx/ui/static/lib/codemirror/mode/clike/clike.js b/awx/ui/client/lib/codemirror/mode/clike/clike.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/clike/clike.js rename to awx/ui/client/lib/codemirror/mode/clike/clike.js diff --git a/awx/ui/static/lib/codemirror/mode/clike/scala.html b/awx/ui/client/lib/codemirror/mode/clike/scala.html similarity index 100% rename from awx/ui/static/lib/codemirror/mode/clike/scala.html rename to awx/ui/client/lib/codemirror/mode/clike/scala.html diff --git a/awx/ui/static/lib/codemirror/mode/clojure/clojure.js b/awx/ui/client/lib/codemirror/mode/clojure/clojure.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/clojure/clojure.js rename to awx/ui/client/lib/codemirror/mode/clojure/clojure.js diff --git a/awx/ui/static/lib/codemirror/mode/cobol/cobol.js b/awx/ui/client/lib/codemirror/mode/cobol/cobol.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/cobol/cobol.js rename to awx/ui/client/lib/codemirror/mode/cobol/cobol.js diff --git a/awx/ui/static/lib/codemirror/mode/coffeescript/coffeescript.js b/awx/ui/client/lib/codemirror/mode/coffeescript/coffeescript.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/coffeescript/coffeescript.js rename to awx/ui/client/lib/codemirror/mode/coffeescript/coffeescript.js diff --git a/awx/ui/static/lib/codemirror/mode/commonlisp/commonlisp.js b/awx/ui/client/lib/codemirror/mode/commonlisp/commonlisp.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/commonlisp/commonlisp.js rename to awx/ui/client/lib/codemirror/mode/commonlisp/commonlisp.js diff --git a/awx/ui/static/lib/codemirror/mode/css/css.js b/awx/ui/client/lib/codemirror/mode/css/css.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/css/css.js rename to awx/ui/client/lib/codemirror/mode/css/css.js diff --git a/awx/ui/static/lib/codemirror/mode/css/less.html b/awx/ui/client/lib/codemirror/mode/css/less.html similarity index 100% rename from awx/ui/static/lib/codemirror/mode/css/less.html rename to awx/ui/client/lib/codemirror/mode/css/less.html diff --git a/awx/ui/static/lib/codemirror/mode/css/less_test.js b/awx/ui/client/lib/codemirror/mode/css/less_test.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/css/less_test.js rename to awx/ui/client/lib/codemirror/mode/css/less_test.js diff --git a/awx/ui/static/lib/codemirror/mode/css/scss.html b/awx/ui/client/lib/codemirror/mode/css/scss.html similarity index 100% rename from awx/ui/static/lib/codemirror/mode/css/scss.html rename to awx/ui/client/lib/codemirror/mode/css/scss.html diff --git a/awx/ui/static/lib/codemirror/mode/css/scss_test.js b/awx/ui/client/lib/codemirror/mode/css/scss_test.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/css/scss_test.js rename to awx/ui/client/lib/codemirror/mode/css/scss_test.js diff --git a/awx/ui/static/lib/codemirror/mode/css/test.js b/awx/ui/client/lib/codemirror/mode/css/test.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/css/test.js rename to awx/ui/client/lib/codemirror/mode/css/test.js diff --git a/awx/ui/static/lib/codemirror/mode/d/d.js b/awx/ui/client/lib/codemirror/mode/d/d.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/d/d.js rename to awx/ui/client/lib/codemirror/mode/d/d.js diff --git a/awx/ui/static/lib/codemirror/mode/diff/diff.js b/awx/ui/client/lib/codemirror/mode/diff/diff.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/diff/diff.js rename to awx/ui/client/lib/codemirror/mode/diff/diff.js diff --git a/awx/ui/static/lib/codemirror/mode/dtd/dtd.js b/awx/ui/client/lib/codemirror/mode/dtd/dtd.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/dtd/dtd.js rename to awx/ui/client/lib/codemirror/mode/dtd/dtd.js diff --git a/awx/ui/static/lib/codemirror/mode/ecl/ecl.js b/awx/ui/client/lib/codemirror/mode/ecl/ecl.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/ecl/ecl.js rename to awx/ui/client/lib/codemirror/mode/ecl/ecl.js diff --git a/awx/ui/static/lib/codemirror/mode/eiffel/eiffel.js b/awx/ui/client/lib/codemirror/mode/eiffel/eiffel.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/eiffel/eiffel.js rename to awx/ui/client/lib/codemirror/mode/eiffel/eiffel.js diff --git a/awx/ui/static/lib/codemirror/mode/erlang/erlang.js b/awx/ui/client/lib/codemirror/mode/erlang/erlang.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/erlang/erlang.js rename to awx/ui/client/lib/codemirror/mode/erlang/erlang.js diff --git a/awx/ui/static/lib/codemirror/mode/fortran/fortran.js b/awx/ui/client/lib/codemirror/mode/fortran/fortran.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/fortran/fortran.js rename to awx/ui/client/lib/codemirror/mode/fortran/fortran.js diff --git a/awx/ui/static/lib/codemirror/mode/gas/gas.js b/awx/ui/client/lib/codemirror/mode/gas/gas.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/gas/gas.js rename to awx/ui/client/lib/codemirror/mode/gas/gas.js diff --git a/awx/ui/static/lib/codemirror/mode/gfm/gfm.js b/awx/ui/client/lib/codemirror/mode/gfm/gfm.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/gfm/gfm.js rename to awx/ui/client/lib/codemirror/mode/gfm/gfm.js diff --git a/awx/ui/static/lib/codemirror/mode/gfm/test.js b/awx/ui/client/lib/codemirror/mode/gfm/test.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/gfm/test.js rename to awx/ui/client/lib/codemirror/mode/gfm/test.js diff --git a/awx/ui/static/lib/codemirror/mode/gherkin/gherkin.js b/awx/ui/client/lib/codemirror/mode/gherkin/gherkin.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/gherkin/gherkin.js rename to awx/ui/client/lib/codemirror/mode/gherkin/gherkin.js diff --git a/awx/ui/static/lib/codemirror/mode/go/go.js b/awx/ui/client/lib/codemirror/mode/go/go.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/go/go.js rename to awx/ui/client/lib/codemirror/mode/go/go.js diff --git a/awx/ui/static/lib/codemirror/mode/groovy/groovy.js b/awx/ui/client/lib/codemirror/mode/groovy/groovy.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/groovy/groovy.js rename to awx/ui/client/lib/codemirror/mode/groovy/groovy.js diff --git a/awx/ui/static/lib/codemirror/mode/haml/haml.js b/awx/ui/client/lib/codemirror/mode/haml/haml.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/haml/haml.js rename to awx/ui/client/lib/codemirror/mode/haml/haml.js diff --git a/awx/ui/static/lib/codemirror/mode/haml/test.js b/awx/ui/client/lib/codemirror/mode/haml/test.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/haml/test.js rename to awx/ui/client/lib/codemirror/mode/haml/test.js diff --git a/awx/ui/static/lib/codemirror/mode/haskell/haskell.js b/awx/ui/client/lib/codemirror/mode/haskell/haskell.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/haskell/haskell.js rename to awx/ui/client/lib/codemirror/mode/haskell/haskell.js diff --git a/awx/ui/static/lib/codemirror/mode/haxe/haxe.js b/awx/ui/client/lib/codemirror/mode/haxe/haxe.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/haxe/haxe.js rename to awx/ui/client/lib/codemirror/mode/haxe/haxe.js diff --git a/awx/ui/static/lib/codemirror/mode/htmlembedded/htmlembedded.js b/awx/ui/client/lib/codemirror/mode/htmlembedded/htmlembedded.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/htmlembedded/htmlembedded.js rename to awx/ui/client/lib/codemirror/mode/htmlembedded/htmlembedded.js diff --git a/awx/ui/static/lib/codemirror/mode/htmlmixed/htmlmixed.js b/awx/ui/client/lib/codemirror/mode/htmlmixed/htmlmixed.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/htmlmixed/htmlmixed.js rename to awx/ui/client/lib/codemirror/mode/htmlmixed/htmlmixed.js diff --git a/awx/ui/static/lib/codemirror/mode/http/http.js b/awx/ui/client/lib/codemirror/mode/http/http.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/http/http.js rename to awx/ui/client/lib/codemirror/mode/http/http.js diff --git a/awx/ui/static/lib/codemirror/mode/jade/jade.js b/awx/ui/client/lib/codemirror/mode/jade/jade.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/jade/jade.js rename to awx/ui/client/lib/codemirror/mode/jade/jade.js diff --git a/awx/ui/static/lib/codemirror/mode/javascript/javascript.js b/awx/ui/client/lib/codemirror/mode/javascript/javascript.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/javascript/javascript.js rename to awx/ui/client/lib/codemirror/mode/javascript/javascript.js diff --git a/awx/ui/static/lib/codemirror/mode/javascript/json-ld.html b/awx/ui/client/lib/codemirror/mode/javascript/json-ld.html similarity index 100% rename from awx/ui/static/lib/codemirror/mode/javascript/json-ld.html rename to awx/ui/client/lib/codemirror/mode/javascript/json-ld.html diff --git a/awx/ui/static/lib/codemirror/mode/javascript/test.js b/awx/ui/client/lib/codemirror/mode/javascript/test.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/javascript/test.js rename to awx/ui/client/lib/codemirror/mode/javascript/test.js diff --git a/awx/ui/static/lib/codemirror/mode/javascript/typescript.html b/awx/ui/client/lib/codemirror/mode/javascript/typescript.html similarity index 100% rename from awx/ui/static/lib/codemirror/mode/javascript/typescript.html rename to awx/ui/client/lib/codemirror/mode/javascript/typescript.html diff --git a/awx/ui/static/lib/codemirror/mode/jinja2/jinja2.js b/awx/ui/client/lib/codemirror/mode/jinja2/jinja2.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/jinja2/jinja2.js rename to awx/ui/client/lib/codemirror/mode/jinja2/jinja2.js diff --git a/awx/ui/static/lib/codemirror/mode/julia/julia.js b/awx/ui/client/lib/codemirror/mode/julia/julia.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/julia/julia.js rename to awx/ui/client/lib/codemirror/mode/julia/julia.js diff --git a/awx/ui/static/lib/codemirror/mode/less/less.js b/awx/ui/client/lib/codemirror/mode/less/less.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/less/less.js rename to awx/ui/client/lib/codemirror/mode/less/less.js diff --git a/awx/ui/static/lib/codemirror/mode/livescript/livescript.js b/awx/ui/client/lib/codemirror/mode/livescript/livescript.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/livescript/livescript.js rename to awx/ui/client/lib/codemirror/mode/livescript/livescript.js diff --git a/awx/ui/static/lib/codemirror/mode/livescript/livescript.ls b/awx/ui/client/lib/codemirror/mode/livescript/livescript.ls similarity index 100% rename from awx/ui/static/lib/codemirror/mode/livescript/livescript.ls rename to awx/ui/client/lib/codemirror/mode/livescript/livescript.ls diff --git a/awx/ui/static/lib/codemirror/mode/lua/lua.js b/awx/ui/client/lib/codemirror/mode/lua/lua.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/lua/lua.js rename to awx/ui/client/lib/codemirror/mode/lua/lua.js diff --git a/awx/ui/static/lib/codemirror/mode/markdown/markdown.js b/awx/ui/client/lib/codemirror/mode/markdown/markdown.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/markdown/markdown.js rename to awx/ui/client/lib/codemirror/mode/markdown/markdown.js diff --git a/awx/ui/static/lib/codemirror/mode/markdown/test.js b/awx/ui/client/lib/codemirror/mode/markdown/test.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/markdown/test.js rename to awx/ui/client/lib/codemirror/mode/markdown/test.js diff --git a/awx/ui/static/lib/codemirror/mode/meta.js b/awx/ui/client/lib/codemirror/mode/meta.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/meta.js rename to awx/ui/client/lib/codemirror/mode/meta.js diff --git a/awx/ui/static/lib/codemirror/mode/mirc/mirc.js b/awx/ui/client/lib/codemirror/mode/mirc/mirc.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/mirc/mirc.js rename to awx/ui/client/lib/codemirror/mode/mirc/mirc.js diff --git a/awx/ui/static/lib/codemirror/mode/mllike/mllike.js b/awx/ui/client/lib/codemirror/mode/mllike/mllike.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/mllike/mllike.js rename to awx/ui/client/lib/codemirror/mode/mllike/mllike.js diff --git a/awx/ui/static/lib/codemirror/mode/nginx/nginx.js b/awx/ui/client/lib/codemirror/mode/nginx/nginx.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/nginx/nginx.js rename to awx/ui/client/lib/codemirror/mode/nginx/nginx.js diff --git a/awx/ui/static/lib/codemirror/mode/ntriples/ntriples.js b/awx/ui/client/lib/codemirror/mode/ntriples/ntriples.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/ntriples/ntriples.js rename to awx/ui/client/lib/codemirror/mode/ntriples/ntriples.js diff --git a/awx/ui/static/lib/codemirror/mode/octave/octave.js b/awx/ui/client/lib/codemirror/mode/octave/octave.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/octave/octave.js rename to awx/ui/client/lib/codemirror/mode/octave/octave.js diff --git a/awx/ui/static/lib/codemirror/mode/pascal/pascal.js b/awx/ui/client/lib/codemirror/mode/pascal/pascal.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/pascal/pascal.js rename to awx/ui/client/lib/codemirror/mode/pascal/pascal.js diff --git a/awx/ui/static/lib/codemirror/mode/pegjs/pegjs.js b/awx/ui/client/lib/codemirror/mode/pegjs/pegjs.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/pegjs/pegjs.js rename to awx/ui/client/lib/codemirror/mode/pegjs/pegjs.js diff --git a/awx/ui/static/lib/codemirror/mode/perl/perl.js b/awx/ui/client/lib/codemirror/mode/perl/perl.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/perl/perl.js rename to awx/ui/client/lib/codemirror/mode/perl/perl.js diff --git a/awx/ui/static/lib/codemirror/mode/php/php.js b/awx/ui/client/lib/codemirror/mode/php/php.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/php/php.js rename to awx/ui/client/lib/codemirror/mode/php/php.js diff --git a/awx/ui/static/lib/codemirror/mode/pig/pig.js b/awx/ui/client/lib/codemirror/mode/pig/pig.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/pig/pig.js rename to awx/ui/client/lib/codemirror/mode/pig/pig.js diff --git a/awx/ui/static/lib/codemirror/mode/properties/properties.js b/awx/ui/client/lib/codemirror/mode/properties/properties.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/properties/properties.js rename to awx/ui/client/lib/codemirror/mode/properties/properties.js diff --git a/awx/ui/static/lib/codemirror/mode/puppet/puppet.js b/awx/ui/client/lib/codemirror/mode/puppet/puppet.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/puppet/puppet.js rename to awx/ui/client/lib/codemirror/mode/puppet/puppet.js diff --git a/awx/ui/static/lib/codemirror/mode/python/python.js b/awx/ui/client/lib/codemirror/mode/python/python.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/python/python.js rename to awx/ui/client/lib/codemirror/mode/python/python.js diff --git a/awx/ui/static/lib/codemirror/mode/q/q.js b/awx/ui/client/lib/codemirror/mode/q/q.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/q/q.js rename to awx/ui/client/lib/codemirror/mode/q/q.js diff --git a/awx/ui/static/lib/codemirror/mode/r/r.js b/awx/ui/client/lib/codemirror/mode/r/r.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/r/r.js rename to awx/ui/client/lib/codemirror/mode/r/r.js diff --git a/awx/ui/static/lib/codemirror/mode/rpm/changes/changes.js b/awx/ui/client/lib/codemirror/mode/rpm/changes/changes.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/rpm/changes/changes.js rename to awx/ui/client/lib/codemirror/mode/rpm/changes/changes.js diff --git a/awx/ui/static/lib/codemirror/mode/rpm/spec/spec.css b/awx/ui/client/lib/codemirror/mode/rpm/spec/spec.css similarity index 100% rename from awx/ui/static/lib/codemirror/mode/rpm/spec/spec.css rename to awx/ui/client/lib/codemirror/mode/rpm/spec/spec.css diff --git a/awx/ui/static/lib/codemirror/mode/rpm/spec/spec.js b/awx/ui/client/lib/codemirror/mode/rpm/spec/spec.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/rpm/spec/spec.js rename to awx/ui/client/lib/codemirror/mode/rpm/spec/spec.js diff --git a/awx/ui/static/lib/codemirror/mode/rst/rst.js b/awx/ui/client/lib/codemirror/mode/rst/rst.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/rst/rst.js rename to awx/ui/client/lib/codemirror/mode/rst/rst.js diff --git a/awx/ui/static/lib/codemirror/mode/ruby/ruby.js b/awx/ui/client/lib/codemirror/mode/ruby/ruby.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/ruby/ruby.js rename to awx/ui/client/lib/codemirror/mode/ruby/ruby.js diff --git a/awx/ui/static/lib/codemirror/mode/ruby/test.js b/awx/ui/client/lib/codemirror/mode/ruby/test.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/ruby/test.js rename to awx/ui/client/lib/codemirror/mode/ruby/test.js diff --git a/awx/ui/static/lib/codemirror/mode/rust/rust.js b/awx/ui/client/lib/codemirror/mode/rust/rust.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/rust/rust.js rename to awx/ui/client/lib/codemirror/mode/rust/rust.js diff --git a/awx/ui/static/lib/codemirror/mode/sass/sass.js b/awx/ui/client/lib/codemirror/mode/sass/sass.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/sass/sass.js rename to awx/ui/client/lib/codemirror/mode/sass/sass.js diff --git a/awx/ui/static/lib/codemirror/mode/scheme/scheme.js b/awx/ui/client/lib/codemirror/mode/scheme/scheme.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/scheme/scheme.js rename to awx/ui/client/lib/codemirror/mode/scheme/scheme.js diff --git a/awx/ui/static/lib/codemirror/mode/shell/shell.js b/awx/ui/client/lib/codemirror/mode/shell/shell.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/shell/shell.js rename to awx/ui/client/lib/codemirror/mode/shell/shell.js diff --git a/awx/ui/static/lib/codemirror/mode/sieve/sieve.js b/awx/ui/client/lib/codemirror/mode/sieve/sieve.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/sieve/sieve.js rename to awx/ui/client/lib/codemirror/mode/sieve/sieve.js diff --git a/awx/ui/static/lib/codemirror/mode/smalltalk/smalltalk.js b/awx/ui/client/lib/codemirror/mode/smalltalk/smalltalk.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/smalltalk/smalltalk.js rename to awx/ui/client/lib/codemirror/mode/smalltalk/smalltalk.js diff --git a/awx/ui/static/lib/codemirror/mode/smarty/smarty.js b/awx/ui/client/lib/codemirror/mode/smarty/smarty.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/smarty/smarty.js rename to awx/ui/client/lib/codemirror/mode/smarty/smarty.js diff --git a/awx/ui/static/lib/codemirror/mode/smartymixed/smartymixed.js b/awx/ui/client/lib/codemirror/mode/smartymixed/smartymixed.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/smartymixed/smartymixed.js rename to awx/ui/client/lib/codemirror/mode/smartymixed/smartymixed.js diff --git a/awx/ui/static/lib/codemirror/mode/solr/solr.js b/awx/ui/client/lib/codemirror/mode/solr/solr.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/solr/solr.js rename to awx/ui/client/lib/codemirror/mode/solr/solr.js diff --git a/awx/ui/static/lib/codemirror/mode/sparql/sparql.js b/awx/ui/client/lib/codemirror/mode/sparql/sparql.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/sparql/sparql.js rename to awx/ui/client/lib/codemirror/mode/sparql/sparql.js diff --git a/awx/ui/static/lib/codemirror/mode/sql/sql.js b/awx/ui/client/lib/codemirror/mode/sql/sql.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/sql/sql.js rename to awx/ui/client/lib/codemirror/mode/sql/sql.js diff --git a/awx/ui/static/lib/codemirror/mode/stex/stex.js b/awx/ui/client/lib/codemirror/mode/stex/stex.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/stex/stex.js rename to awx/ui/client/lib/codemirror/mode/stex/stex.js diff --git a/awx/ui/static/lib/codemirror/mode/stex/test.js b/awx/ui/client/lib/codemirror/mode/stex/test.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/stex/test.js rename to awx/ui/client/lib/codemirror/mode/stex/test.js diff --git a/awx/ui/static/lib/codemirror/mode/tcl/tcl.js b/awx/ui/client/lib/codemirror/mode/tcl/tcl.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/tcl/tcl.js rename to awx/ui/client/lib/codemirror/mode/tcl/tcl.js diff --git a/awx/ui/static/lib/codemirror/mode/tiddlywiki/tiddlywiki.css b/awx/ui/client/lib/codemirror/mode/tiddlywiki/tiddlywiki.css similarity index 100% rename from awx/ui/static/lib/codemirror/mode/tiddlywiki/tiddlywiki.css rename to awx/ui/client/lib/codemirror/mode/tiddlywiki/tiddlywiki.css diff --git a/awx/ui/static/lib/codemirror/mode/tiddlywiki/tiddlywiki.js b/awx/ui/client/lib/codemirror/mode/tiddlywiki/tiddlywiki.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/tiddlywiki/tiddlywiki.js rename to awx/ui/client/lib/codemirror/mode/tiddlywiki/tiddlywiki.js diff --git a/awx/ui/static/lib/codemirror/mode/tiki/tiki.css b/awx/ui/client/lib/codemirror/mode/tiki/tiki.css similarity index 100% rename from awx/ui/static/lib/codemirror/mode/tiki/tiki.css rename to awx/ui/client/lib/codemirror/mode/tiki/tiki.css diff --git a/awx/ui/static/lib/codemirror/mode/tiki/tiki.js b/awx/ui/client/lib/codemirror/mode/tiki/tiki.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/tiki/tiki.js rename to awx/ui/client/lib/codemirror/mode/tiki/tiki.js diff --git a/awx/ui/static/lib/codemirror/mode/toml/toml.js b/awx/ui/client/lib/codemirror/mode/toml/toml.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/toml/toml.js rename to awx/ui/client/lib/codemirror/mode/toml/toml.js diff --git a/awx/ui/static/lib/codemirror/mode/turtle/turtle.js b/awx/ui/client/lib/codemirror/mode/turtle/turtle.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/turtle/turtle.js rename to awx/ui/client/lib/codemirror/mode/turtle/turtle.js diff --git a/awx/ui/static/lib/codemirror/mode/vb/vb.js b/awx/ui/client/lib/codemirror/mode/vb/vb.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/vb/vb.js rename to awx/ui/client/lib/codemirror/mode/vb/vb.js diff --git a/awx/ui/static/lib/codemirror/mode/vbscript/vbscript.js b/awx/ui/client/lib/codemirror/mode/vbscript/vbscript.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/vbscript/vbscript.js rename to awx/ui/client/lib/codemirror/mode/vbscript/vbscript.js diff --git a/awx/ui/static/lib/codemirror/mode/velocity/velocity.js b/awx/ui/client/lib/codemirror/mode/velocity/velocity.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/velocity/velocity.js rename to awx/ui/client/lib/codemirror/mode/velocity/velocity.js diff --git a/awx/ui/static/lib/codemirror/mode/verilog/verilog.js b/awx/ui/client/lib/codemirror/mode/verilog/verilog.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/verilog/verilog.js rename to awx/ui/client/lib/codemirror/mode/verilog/verilog.js diff --git a/awx/ui/static/lib/codemirror/mode/xml/xml.js b/awx/ui/client/lib/codemirror/mode/xml/xml.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/xml/xml.js rename to awx/ui/client/lib/codemirror/mode/xml/xml.js diff --git a/awx/ui/static/lib/codemirror/mode/xquery/test.js b/awx/ui/client/lib/codemirror/mode/xquery/test.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/xquery/test.js rename to awx/ui/client/lib/codemirror/mode/xquery/test.js diff --git a/awx/ui/static/lib/codemirror/mode/xquery/xquery.js b/awx/ui/client/lib/codemirror/mode/xquery/xquery.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/xquery/xquery.js rename to awx/ui/client/lib/codemirror/mode/xquery/xquery.js diff --git a/awx/ui/static/lib/codemirror/mode/yaml/yaml.js b/awx/ui/client/lib/codemirror/mode/yaml/yaml.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/yaml/yaml.js rename to awx/ui/client/lib/codemirror/mode/yaml/yaml.js diff --git a/awx/ui/static/lib/codemirror/mode/z80/z80.js b/awx/ui/client/lib/codemirror/mode/z80/z80.js similarity index 100% rename from awx/ui/static/lib/codemirror/mode/z80/z80.js rename to awx/ui/client/lib/codemirror/mode/z80/z80.js diff --git a/awx/ui/static/lib/codemirror/theme/3024-day.css b/awx/ui/client/lib/codemirror/theme/3024-day.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/3024-day.css rename to awx/ui/client/lib/codemirror/theme/3024-day.css diff --git a/awx/ui/static/lib/codemirror/theme/3024-night.css b/awx/ui/client/lib/codemirror/theme/3024-night.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/3024-night.css rename to awx/ui/client/lib/codemirror/theme/3024-night.css diff --git a/awx/ui/static/lib/codemirror/theme/ambiance-mobile.css b/awx/ui/client/lib/codemirror/theme/ambiance-mobile.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/ambiance-mobile.css rename to awx/ui/client/lib/codemirror/theme/ambiance-mobile.css diff --git a/awx/ui/static/lib/codemirror/theme/ambiance.css b/awx/ui/client/lib/codemirror/theme/ambiance.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/ambiance.css rename to awx/ui/client/lib/codemirror/theme/ambiance.css diff --git a/awx/ui/static/lib/codemirror/theme/base16-dark.css b/awx/ui/client/lib/codemirror/theme/base16-dark.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/base16-dark.css rename to awx/ui/client/lib/codemirror/theme/base16-dark.css diff --git a/awx/ui/static/lib/codemirror/theme/base16-light.css b/awx/ui/client/lib/codemirror/theme/base16-light.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/base16-light.css rename to awx/ui/client/lib/codemirror/theme/base16-light.css diff --git a/awx/ui/static/lib/codemirror/theme/blackboard.css b/awx/ui/client/lib/codemirror/theme/blackboard.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/blackboard.css rename to awx/ui/client/lib/codemirror/theme/blackboard.css diff --git a/awx/ui/static/lib/codemirror/theme/cobalt.css b/awx/ui/client/lib/codemirror/theme/cobalt.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/cobalt.css rename to awx/ui/client/lib/codemirror/theme/cobalt.css diff --git a/awx/ui/static/lib/codemirror/theme/eclipse.css b/awx/ui/client/lib/codemirror/theme/eclipse.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/eclipse.css rename to awx/ui/client/lib/codemirror/theme/eclipse.css diff --git a/awx/ui/static/lib/codemirror/theme/elegant.css b/awx/ui/client/lib/codemirror/theme/elegant.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/elegant.css rename to awx/ui/client/lib/codemirror/theme/elegant.css diff --git a/awx/ui/static/lib/codemirror/theme/erlang-dark.css b/awx/ui/client/lib/codemirror/theme/erlang-dark.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/erlang-dark.css rename to awx/ui/client/lib/codemirror/theme/erlang-dark.css diff --git a/awx/ui/static/lib/codemirror/theme/lesser-dark.css b/awx/ui/client/lib/codemirror/theme/lesser-dark.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/lesser-dark.css rename to awx/ui/client/lib/codemirror/theme/lesser-dark.css diff --git a/awx/ui/static/lib/codemirror/theme/mbo.css b/awx/ui/client/lib/codemirror/theme/mbo.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/mbo.css rename to awx/ui/client/lib/codemirror/theme/mbo.css diff --git a/awx/ui/static/lib/codemirror/theme/mdn-like.css b/awx/ui/client/lib/codemirror/theme/mdn-like.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/mdn-like.css rename to awx/ui/client/lib/codemirror/theme/mdn-like.css diff --git a/awx/ui/static/lib/codemirror/theme/midnight.css b/awx/ui/client/lib/codemirror/theme/midnight.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/midnight.css rename to awx/ui/client/lib/codemirror/theme/midnight.css diff --git a/awx/ui/static/lib/codemirror/theme/monokai.css b/awx/ui/client/lib/codemirror/theme/monokai.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/monokai.css rename to awx/ui/client/lib/codemirror/theme/monokai.css diff --git a/awx/ui/static/lib/codemirror/theme/neat.css b/awx/ui/client/lib/codemirror/theme/neat.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/neat.css rename to awx/ui/client/lib/codemirror/theme/neat.css diff --git a/awx/ui/static/lib/codemirror/theme/night.css b/awx/ui/client/lib/codemirror/theme/night.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/night.css rename to awx/ui/client/lib/codemirror/theme/night.css diff --git a/awx/ui/static/lib/codemirror/theme/paraiso-dark.css b/awx/ui/client/lib/codemirror/theme/paraiso-dark.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/paraiso-dark.css rename to awx/ui/client/lib/codemirror/theme/paraiso-dark.css diff --git a/awx/ui/static/lib/codemirror/theme/paraiso-light.css b/awx/ui/client/lib/codemirror/theme/paraiso-light.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/paraiso-light.css rename to awx/ui/client/lib/codemirror/theme/paraiso-light.css diff --git a/awx/ui/static/lib/codemirror/theme/pastel-on-dark.css b/awx/ui/client/lib/codemirror/theme/pastel-on-dark.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/pastel-on-dark.css rename to awx/ui/client/lib/codemirror/theme/pastel-on-dark.css diff --git a/awx/ui/static/lib/codemirror/theme/rubyblue.css b/awx/ui/client/lib/codemirror/theme/rubyblue.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/rubyblue.css rename to awx/ui/client/lib/codemirror/theme/rubyblue.css diff --git a/awx/ui/static/lib/codemirror/theme/solarized.css b/awx/ui/client/lib/codemirror/theme/solarized.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/solarized.css rename to awx/ui/client/lib/codemirror/theme/solarized.css diff --git a/awx/ui/static/lib/codemirror/theme/the-matrix.css b/awx/ui/client/lib/codemirror/theme/the-matrix.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/the-matrix.css rename to awx/ui/client/lib/codemirror/theme/the-matrix.css diff --git a/awx/ui/static/lib/codemirror/theme/tomorrow-night-eighties.css b/awx/ui/client/lib/codemirror/theme/tomorrow-night-eighties.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/tomorrow-night-eighties.css rename to awx/ui/client/lib/codemirror/theme/tomorrow-night-eighties.css diff --git a/awx/ui/static/lib/codemirror/theme/twilight.css b/awx/ui/client/lib/codemirror/theme/twilight.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/twilight.css rename to awx/ui/client/lib/codemirror/theme/twilight.css diff --git a/awx/ui/static/lib/codemirror/theme/vibrant-ink.css b/awx/ui/client/lib/codemirror/theme/vibrant-ink.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/vibrant-ink.css rename to awx/ui/client/lib/codemirror/theme/vibrant-ink.css diff --git a/awx/ui/static/lib/codemirror/theme/xq-dark.css b/awx/ui/client/lib/codemirror/theme/xq-dark.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/xq-dark.css rename to awx/ui/client/lib/codemirror/theme/xq-dark.css diff --git a/awx/ui/static/lib/codemirror/theme/xq-light.css b/awx/ui/client/lib/codemirror/theme/xq-light.css similarity index 100% rename from awx/ui/static/lib/codemirror/theme/xq-light.css rename to awx/ui/client/lib/codemirror/theme/xq-light.css diff --git a/awx/ui/static/lib/components-font-awesome/.bower.json b/awx/ui/client/lib/components-font-awesome/.bower.json similarity index 100% rename from awx/ui/static/lib/components-font-awesome/.bower.json rename to awx/ui/client/lib/components-font-awesome/.bower.json diff --git a/awx/ui/static/lib/components-font-awesome/.gitignore b/awx/ui/client/lib/components-font-awesome/.gitignore similarity index 100% rename from awx/ui/static/lib/components-font-awesome/.gitignore rename to awx/ui/client/lib/components-font-awesome/.gitignore diff --git a/awx/ui/static/lib/components-font-awesome/Makefile b/awx/ui/client/lib/components-font-awesome/Makefile similarity index 100% rename from awx/ui/static/lib/components-font-awesome/Makefile rename to awx/ui/client/lib/components-font-awesome/Makefile diff --git a/awx/ui/static/lib/components-font-awesome/README.md b/awx/ui/client/lib/components-font-awesome/README.md similarity index 100% rename from awx/ui/static/lib/components-font-awesome/README.md rename to awx/ui/client/lib/components-font-awesome/README.md diff --git a/awx/ui/static/lib/components-font-awesome/bower.json b/awx/ui/client/lib/components-font-awesome/bower.json similarity index 100% rename from awx/ui/static/lib/components-font-awesome/bower.json rename to awx/ui/client/lib/components-font-awesome/bower.json diff --git a/awx/ui/static/lib/components-font-awesome/component.json b/awx/ui/client/lib/components-font-awesome/component.json similarity index 100% rename from awx/ui/static/lib/components-font-awesome/component.json rename to awx/ui/client/lib/components-font-awesome/component.json diff --git a/awx/ui/static/lib/components-font-awesome/composer.json b/awx/ui/client/lib/components-font-awesome/composer.json similarity index 100% rename from awx/ui/static/lib/components-font-awesome/composer.json rename to awx/ui/client/lib/components-font-awesome/composer.json diff --git a/awx/ui/static/lib/components-font-awesome/css/font-awesome.css b/awx/ui/client/lib/components-font-awesome/css/font-awesome.css similarity index 100% rename from awx/ui/static/lib/components-font-awesome/css/font-awesome.css rename to awx/ui/client/lib/components-font-awesome/css/font-awesome.css diff --git a/awx/ui/static/lib/components-font-awesome/css/font-awesome.min.css b/awx/ui/client/lib/components-font-awesome/css/font-awesome.min.css similarity index 100% rename from awx/ui/static/lib/components-font-awesome/css/font-awesome.min.css rename to awx/ui/client/lib/components-font-awesome/css/font-awesome.min.css diff --git a/awx/ui/static/lib/components-font-awesome/fonts/FontAwesome.otf b/awx/ui/client/lib/components-font-awesome/fonts/FontAwesome.otf similarity index 100% rename from awx/ui/static/lib/components-font-awesome/fonts/FontAwesome.otf rename to awx/ui/client/lib/components-font-awesome/fonts/FontAwesome.otf diff --git a/awx/ui/static/lib/components-font-awesome/fonts/fontawesome-webfont.eot b/awx/ui/client/lib/components-font-awesome/fonts/fontawesome-webfont.eot similarity index 100% rename from awx/ui/static/lib/components-font-awesome/fonts/fontawesome-webfont.eot rename to awx/ui/client/lib/components-font-awesome/fonts/fontawesome-webfont.eot diff --git a/awx/ui/static/lib/components-font-awesome/fonts/fontawesome-webfont.svg b/awx/ui/client/lib/components-font-awesome/fonts/fontawesome-webfont.svg similarity index 100% rename from awx/ui/static/lib/components-font-awesome/fonts/fontawesome-webfont.svg rename to awx/ui/client/lib/components-font-awesome/fonts/fontawesome-webfont.svg diff --git a/awx/ui/static/lib/components-font-awesome/fonts/fontawesome-webfont.ttf b/awx/ui/client/lib/components-font-awesome/fonts/fontawesome-webfont.ttf similarity index 100% rename from awx/ui/static/lib/components-font-awesome/fonts/fontawesome-webfont.ttf rename to awx/ui/client/lib/components-font-awesome/fonts/fontawesome-webfont.ttf diff --git a/awx/ui/static/lib/components-font-awesome/fonts/fontawesome-webfont.woff b/awx/ui/client/lib/components-font-awesome/fonts/fontawesome-webfont.woff similarity index 100% rename from awx/ui/static/lib/components-font-awesome/fonts/fontawesome-webfont.woff rename to awx/ui/client/lib/components-font-awesome/fonts/fontawesome-webfont.woff diff --git a/awx/ui/static/lib/components-font-awesome/less/bootstrap.less b/awx/ui/client/lib/components-font-awesome/less/bootstrap.less similarity index 100% rename from awx/ui/static/lib/components-font-awesome/less/bootstrap.less rename to awx/ui/client/lib/components-font-awesome/less/bootstrap.less diff --git a/awx/ui/static/lib/components-font-awesome/less/bordered-pulled.less b/awx/ui/client/lib/components-font-awesome/less/bordered-pulled.less similarity index 100% rename from awx/ui/static/lib/components-font-awesome/less/bordered-pulled.less rename to awx/ui/client/lib/components-font-awesome/less/bordered-pulled.less diff --git a/awx/ui/static/lib/components-font-awesome/less/core.less b/awx/ui/client/lib/components-font-awesome/less/core.less similarity index 100% rename from awx/ui/static/lib/components-font-awesome/less/core.less rename to awx/ui/client/lib/components-font-awesome/less/core.less diff --git a/awx/ui/static/lib/components-font-awesome/less/extras.less b/awx/ui/client/lib/components-font-awesome/less/extras.less similarity index 100% rename from awx/ui/static/lib/components-font-awesome/less/extras.less rename to awx/ui/client/lib/components-font-awesome/less/extras.less diff --git a/awx/ui/static/lib/components-font-awesome/less/fixed-width.less b/awx/ui/client/lib/components-font-awesome/less/fixed-width.less similarity index 100% rename from awx/ui/static/lib/components-font-awesome/less/fixed-width.less rename to awx/ui/client/lib/components-font-awesome/less/fixed-width.less diff --git a/awx/ui/static/lib/components-font-awesome/less/font-awesome.less b/awx/ui/client/lib/components-font-awesome/less/font-awesome.less similarity index 100% rename from awx/ui/static/lib/components-font-awesome/less/font-awesome.less rename to awx/ui/client/lib/components-font-awesome/less/font-awesome.less diff --git a/awx/ui/static/lib/components-font-awesome/less/icons.less b/awx/ui/client/lib/components-font-awesome/less/icons.less similarity index 100% rename from awx/ui/static/lib/components-font-awesome/less/icons.less rename to awx/ui/client/lib/components-font-awesome/less/icons.less diff --git a/awx/ui/static/lib/components-font-awesome/less/larger.less b/awx/ui/client/lib/components-font-awesome/less/larger.less similarity index 100% rename from awx/ui/static/lib/components-font-awesome/less/larger.less rename to awx/ui/client/lib/components-font-awesome/less/larger.less diff --git a/awx/ui/static/lib/components-font-awesome/less/list.less b/awx/ui/client/lib/components-font-awesome/less/list.less similarity index 100% rename from awx/ui/static/lib/components-font-awesome/less/list.less rename to awx/ui/client/lib/components-font-awesome/less/list.less diff --git a/awx/ui/static/lib/components-font-awesome/less/mixins.less b/awx/ui/client/lib/components-font-awesome/less/mixins.less similarity index 100% rename from awx/ui/static/lib/components-font-awesome/less/mixins.less rename to awx/ui/client/lib/components-font-awesome/less/mixins.less diff --git a/awx/ui/static/lib/components-font-awesome/less/path.less b/awx/ui/client/lib/components-font-awesome/less/path.less similarity index 100% rename from awx/ui/static/lib/components-font-awesome/less/path.less rename to awx/ui/client/lib/components-font-awesome/less/path.less diff --git a/awx/ui/static/lib/components-font-awesome/less/rotated-flipped.less b/awx/ui/client/lib/components-font-awesome/less/rotated-flipped.less similarity index 100% rename from awx/ui/static/lib/components-font-awesome/less/rotated-flipped.less rename to awx/ui/client/lib/components-font-awesome/less/rotated-flipped.less diff --git a/awx/ui/static/lib/components-font-awesome/less/spinning.less b/awx/ui/client/lib/components-font-awesome/less/spinning.less similarity index 100% rename from awx/ui/static/lib/components-font-awesome/less/spinning.less rename to awx/ui/client/lib/components-font-awesome/less/spinning.less diff --git a/awx/ui/static/lib/components-font-awesome/less/stacked.less b/awx/ui/client/lib/components-font-awesome/less/stacked.less similarity index 100% rename from awx/ui/static/lib/components-font-awesome/less/stacked.less rename to awx/ui/client/lib/components-font-awesome/less/stacked.less diff --git a/awx/ui/static/lib/components-font-awesome/less/variables.less b/awx/ui/client/lib/components-font-awesome/less/variables.less similarity index 100% rename from awx/ui/static/lib/components-font-awesome/less/variables.less rename to awx/ui/client/lib/components-font-awesome/less/variables.less diff --git a/awx/ui/static/lib/components-font-awesome/scss/_bootstrap.scss b/awx/ui/client/lib/components-font-awesome/scss/_bootstrap.scss similarity index 100% rename from awx/ui/static/lib/components-font-awesome/scss/_bootstrap.scss rename to awx/ui/client/lib/components-font-awesome/scss/_bootstrap.scss diff --git a/awx/ui/static/lib/components-font-awesome/scss/_bordered-pulled.scss b/awx/ui/client/lib/components-font-awesome/scss/_bordered-pulled.scss similarity index 100% rename from awx/ui/static/lib/components-font-awesome/scss/_bordered-pulled.scss rename to awx/ui/client/lib/components-font-awesome/scss/_bordered-pulled.scss diff --git a/awx/ui/static/lib/components-font-awesome/scss/_core.scss b/awx/ui/client/lib/components-font-awesome/scss/_core.scss similarity index 100% rename from awx/ui/static/lib/components-font-awesome/scss/_core.scss rename to awx/ui/client/lib/components-font-awesome/scss/_core.scss diff --git a/awx/ui/static/lib/components-font-awesome/scss/_extras.scss b/awx/ui/client/lib/components-font-awesome/scss/_extras.scss similarity index 100% rename from awx/ui/static/lib/components-font-awesome/scss/_extras.scss rename to awx/ui/client/lib/components-font-awesome/scss/_extras.scss diff --git a/awx/ui/static/lib/components-font-awesome/scss/_fixed-width.scss b/awx/ui/client/lib/components-font-awesome/scss/_fixed-width.scss similarity index 100% rename from awx/ui/static/lib/components-font-awesome/scss/_fixed-width.scss rename to awx/ui/client/lib/components-font-awesome/scss/_fixed-width.scss diff --git a/awx/ui/static/lib/components-font-awesome/scss/_icons.scss b/awx/ui/client/lib/components-font-awesome/scss/_icons.scss similarity index 100% rename from awx/ui/static/lib/components-font-awesome/scss/_icons.scss rename to awx/ui/client/lib/components-font-awesome/scss/_icons.scss diff --git a/awx/ui/static/lib/components-font-awesome/scss/_larger.scss b/awx/ui/client/lib/components-font-awesome/scss/_larger.scss similarity index 100% rename from awx/ui/static/lib/components-font-awesome/scss/_larger.scss rename to awx/ui/client/lib/components-font-awesome/scss/_larger.scss diff --git a/awx/ui/static/lib/components-font-awesome/scss/_list.scss b/awx/ui/client/lib/components-font-awesome/scss/_list.scss similarity index 100% rename from awx/ui/static/lib/components-font-awesome/scss/_list.scss rename to awx/ui/client/lib/components-font-awesome/scss/_list.scss diff --git a/awx/ui/static/lib/components-font-awesome/scss/_mixins.scss b/awx/ui/client/lib/components-font-awesome/scss/_mixins.scss similarity index 100% rename from awx/ui/static/lib/components-font-awesome/scss/_mixins.scss rename to awx/ui/client/lib/components-font-awesome/scss/_mixins.scss diff --git a/awx/ui/static/lib/components-font-awesome/scss/_path.scss b/awx/ui/client/lib/components-font-awesome/scss/_path.scss similarity index 100% rename from awx/ui/static/lib/components-font-awesome/scss/_path.scss rename to awx/ui/client/lib/components-font-awesome/scss/_path.scss diff --git a/awx/ui/static/lib/components-font-awesome/scss/_rotated-flipped.scss b/awx/ui/client/lib/components-font-awesome/scss/_rotated-flipped.scss similarity index 100% rename from awx/ui/static/lib/components-font-awesome/scss/_rotated-flipped.scss rename to awx/ui/client/lib/components-font-awesome/scss/_rotated-flipped.scss diff --git a/awx/ui/static/lib/components-font-awesome/scss/_spinning.scss b/awx/ui/client/lib/components-font-awesome/scss/_spinning.scss similarity index 100% rename from awx/ui/static/lib/components-font-awesome/scss/_spinning.scss rename to awx/ui/client/lib/components-font-awesome/scss/_spinning.scss diff --git a/awx/ui/static/lib/components-font-awesome/scss/_stacked.scss b/awx/ui/client/lib/components-font-awesome/scss/_stacked.scss similarity index 100% rename from awx/ui/static/lib/components-font-awesome/scss/_stacked.scss rename to awx/ui/client/lib/components-font-awesome/scss/_stacked.scss diff --git a/awx/ui/static/lib/components-font-awesome/scss/_variables.scss b/awx/ui/client/lib/components-font-awesome/scss/_variables.scss similarity index 100% rename from awx/ui/static/lib/components-font-awesome/scss/_variables.scss rename to awx/ui/client/lib/components-font-awesome/scss/_variables.scss diff --git a/awx/ui/static/lib/components-font-awesome/scss/font-awesome.scss b/awx/ui/client/lib/components-font-awesome/scss/font-awesome.scss similarity index 100% rename from awx/ui/static/lib/components-font-awesome/scss/font-awesome.scss rename to awx/ui/client/lib/components-font-awesome/scss/font-awesome.scss diff --git a/awx/ui/static/lib/d3/.bower.json b/awx/ui/client/lib/d3/.bower.json similarity index 100% rename from awx/ui/static/lib/d3/.bower.json rename to awx/ui/client/lib/d3/.bower.json diff --git a/awx/ui/static/lib/d3/CONTRIBUTING.md b/awx/ui/client/lib/d3/CONTRIBUTING.md similarity index 100% rename from awx/ui/static/lib/d3/CONTRIBUTING.md rename to awx/ui/client/lib/d3/CONTRIBUTING.md diff --git a/awx/ui/static/lib/d3/LICENSE b/awx/ui/client/lib/d3/LICENSE similarity index 100% rename from awx/ui/static/lib/d3/LICENSE rename to awx/ui/client/lib/d3/LICENSE diff --git a/awx/ui/static/lib/d3/README.md b/awx/ui/client/lib/d3/README.md similarity index 100% rename from awx/ui/static/lib/d3/README.md rename to awx/ui/client/lib/d3/README.md diff --git a/awx/ui/static/lib/d3/bower.json b/awx/ui/client/lib/d3/bower.json similarity index 100% rename from awx/ui/static/lib/d3/bower.json rename to awx/ui/client/lib/d3/bower.json diff --git a/awx/ui/static/lib/d3/d3.js b/awx/ui/client/lib/d3/d3.js similarity index 100% rename from awx/ui/static/lib/d3/d3.js rename to awx/ui/client/lib/d3/d3.js diff --git a/awx/ui/static/lib/d3/d3.min.js b/awx/ui/client/lib/d3/d3.min.js similarity index 100% rename from awx/ui/static/lib/d3/d3.min.js rename to awx/ui/client/lib/d3/d3.min.js diff --git a/awx/ui/static/lib/ember-cli-test-loader/.bower.json b/awx/ui/client/lib/ember-cli-test-loader/.bower.json similarity index 100% rename from awx/ui/static/lib/ember-cli-test-loader/.bower.json rename to awx/ui/client/lib/ember-cli-test-loader/.bower.json diff --git a/awx/ui/static/lib/ember-cli-test-loader/README.md b/awx/ui/client/lib/ember-cli-test-loader/README.md similarity index 100% rename from awx/ui/static/lib/ember-cli-test-loader/README.md rename to awx/ui/client/lib/ember-cli-test-loader/README.md diff --git a/awx/ui/static/lib/ember-cli-test-loader/bower.json b/awx/ui/client/lib/ember-cli-test-loader/bower.json similarity index 100% rename from awx/ui/static/lib/ember-cli-test-loader/bower.json rename to awx/ui/client/lib/ember-cli-test-loader/bower.json diff --git a/awx/ui/static/lib/ember-cli-test-loader/test-loader.js b/awx/ui/client/lib/ember-cli-test-loader/test-loader.js similarity index 100% rename from awx/ui/static/lib/ember-cli-test-loader/test-loader.js rename to awx/ui/client/lib/ember-cli-test-loader/test-loader.js diff --git a/awx/ui/static/lib/jQuery.dotdotdot/.bower.json b/awx/ui/client/lib/jQuery.dotdotdot/.bower.json similarity index 100% rename from awx/ui/static/lib/jQuery.dotdotdot/.bower.json rename to awx/ui/client/lib/jQuery.dotdotdot/.bower.json diff --git a/awx/ui/static/lib/jQuery.dotdotdot/.gitignore b/awx/ui/client/lib/jQuery.dotdotdot/.gitignore similarity index 100% rename from awx/ui/static/lib/jQuery.dotdotdot/.gitignore rename to awx/ui/client/lib/jQuery.dotdotdot/.gitignore diff --git a/awx/ui/static/lib/jQuery.dotdotdot/src/js/jquery.dotdotdot.js b/awx/ui/client/lib/jQuery.dotdotdot/src/js/jquery.dotdotdot.js similarity index 94% rename from awx/ui/static/lib/jQuery.dotdotdot/src/js/jquery.dotdotdot.js rename to awx/ui/client/lib/jQuery.dotdotdot/src/js/jquery.dotdotdot.js index 76fcd222f7..a57c721b99 100644 --- a/awx/ui/static/lib/jQuery.dotdotdot/src/js/jquery.dotdotdot.js +++ b/awx/ui/client/lib/jQuery.dotdotdot/src/js/jquery.dotdotdot.js @@ -1,665 +1,665 @@ -/* - * jQuery dotdotdot 1.6.14 - * - * Copyright (c) Fred Heusschen - * www.frebsite.nl - * - * Plugin website: - * dotdotdot.frebsite.nl - * - * Dual licensed under the MIT and GPL licenses. - * http://en.wikipedia.org/wiki/MIT_License - * http://en.wikipedia.org/wiki/GNU_General_Public_License - */ - -(function( $, undef ) -{ - if ( $.fn.dotdotdot ) - { - return; - } - - $.fn.dotdotdot = function( o ) - { - if ( this.length == 0 ) - { - $.fn.dotdotdot.debug( 'No element found for "' + this.selector + '".' ); - return this; - } - if ( this.length > 1 ) - { - return this.each( - function() - { - $(this).dotdotdot( o ); - } - ); - } - - - var $dot = this; - - if ( $dot.data( 'dotdotdot' ) ) - { - $dot.trigger( 'destroy.dot' ); - } - - $dot.data( 'dotdotdot-style', $dot.attr( 'style' ) || '' ); - $dot.css( 'word-wrap', 'break-word' ); - if ($dot.css( 'white-space' ) === 'nowrap') - { - $dot.css( 'white-space', 'normal' ); - } - - $dot.bind_events = function() - { - $dot.bind( - 'update.dot', - function( e, c ) - { - e.preventDefault(); - e.stopPropagation(); - - opts.maxHeight = ( typeof opts.height == 'number' ) - ? opts.height - : getTrueInnerHeight( $dot ); - - opts.maxHeight += opts.tolerance; - - if ( typeof c != 'undefined' ) - { - if ( typeof c == 'string' || c instanceof HTMLElement ) - { - c = $('
').append( c ).contents(); - } - if ( c instanceof $ ) - { - orgContent = c; - } - } - - $inr = $dot.wrapInner( '
' ).children(); - $inr.contents() - .detach() - .end() - .append( orgContent.clone( true ) ) - .find( 'br' ).replaceWith( '
' ).end() - .css({ - 'height' : 'auto', - 'width' : 'auto', - 'border' : 'none', - 'padding' : 0, - 'margin' : 0 - }); - - var after = false, - trunc = false; - - if ( conf.afterElement ) - { - after = conf.afterElement.clone( true ); - after.show(); - conf.afterElement.detach(); - } - - if ( test( $inr, opts ) ) - { - if ( opts.wrap == 'children' ) - { - trunc = children( $inr, opts, after ); - } - else - { - trunc = ellipsis( $inr, $dot, $inr, opts, after ); - } - } - $inr.replaceWith( $inr.contents() ); - $inr = null; - - if ( $.isFunction( opts.callback ) ) - { - opts.callback.call( $dot[ 0 ], trunc, orgContent ); - } - - conf.isTruncated = trunc; - return trunc; - } - - ).bind( - 'isTruncated.dot', - function( e, fn ) - { - e.preventDefault(); - e.stopPropagation(); - - if ( typeof fn == 'function' ) - { - fn.call( $dot[ 0 ], conf.isTruncated ); - } - return conf.isTruncated; - } - - ).bind( - 'originalContent.dot', - function( e, fn ) - { - e.preventDefault(); - e.stopPropagation(); - - if ( typeof fn == 'function' ) - { - fn.call( $dot[ 0 ], orgContent ); - } - return orgContent; - } - - ).bind( - 'destroy.dot', - function( e ) - { - e.preventDefault(); - e.stopPropagation(); - - $dot.unwatch() - .unbind_events() - .contents() - .detach() - .end() - .append( orgContent ) - .attr( 'style', $dot.data( 'dotdotdot-style' ) || '' ) - .data( 'dotdotdot', false ); - } - ); - return $dot; - }; // /bind_events - - $dot.unbind_events = function() - { - $dot.unbind('.dot'); - return $dot; - }; // /unbind_events - - $dot.watch = function() - { - $dot.unwatch(); - if ( opts.watch == 'window' ) - { - var $window = $(window), - _wWidth = $window.width(), - _wHeight = $window.height(); - - $window.bind( - 'resize.dot' + conf.dotId, - function() - { - if ( _wWidth != $window.width() || _wHeight != $window.height() || !opts.windowResizeFix ) - { - _wWidth = $window.width(); - _wHeight = $window.height(); - - if ( watchInt ) - { - clearInterval( watchInt ); - } - watchInt = setTimeout( - function() - { - $dot.trigger( 'update.dot' ); - }, 100 - ); - } - } - ); - } - else - { - watchOrg = getSizes( $dot ); - watchInt = setInterval( - function() - { - if ( $dot.is( ':visible' ) ) - { - var watchNew = getSizes( $dot ); - if ( watchOrg.width != watchNew.width || - watchOrg.height != watchNew.height ) - { - $dot.trigger( 'update.dot' ); - watchOrg = watchNew; - } - } - }, 500 - ); - } - return $dot; - }; - $dot.unwatch = function() - { - $(window).unbind( 'resize.dot' + conf.dotId ); - if ( watchInt ) - { - clearInterval( watchInt ); - } - return $dot; - }; - - var orgContent = $dot.contents(), - opts = $.extend( true, {}, $.fn.dotdotdot.defaults, o ), - conf = {}, - watchOrg = {}, - watchInt = null, - $inr = null; - - - if ( !( opts.lastCharacter.remove instanceof Array ) ) - { - opts.lastCharacter.remove = $.fn.dotdotdot.defaultArrays.lastCharacter.remove; - } - if ( !( opts.lastCharacter.noEllipsis instanceof Array ) ) - { - opts.lastCharacter.noEllipsis = $.fn.dotdotdot.defaultArrays.lastCharacter.noEllipsis; - } - - - conf.afterElement = getElement( opts.after, $dot ); - conf.isTruncated = false; - conf.dotId = dotId++; - - - $dot.data( 'dotdotdot', true ) - .bind_events() - .trigger( 'update.dot' ); - - if ( opts.watch ) - { - $dot.watch(); - } - - return $dot; - }; - - - // public - $.fn.dotdotdot.defaults = { - 'ellipsis' : '... ', - 'wrap' : 'word', - 'fallbackToLetter' : true, - 'lastCharacter' : {}, - 'tolerance' : 0, - 'callback' : null, - 'after' : null, - 'height' : null, - 'watch' : false, - 'windowResizeFix' : true - }; - $.fn.dotdotdot.defaultArrays = { - 'lastCharacter' : { - 'remove' : [ ' ', '\u3000', ',', ';', '.', '!', '?' ], - 'noEllipsis' : [] - } - }; - $.fn.dotdotdot.debug = function( msg ) {}; - - - // private - var dotId = 1; - - function children( $elem, o, after ) - { - var $elements = $elem.children(), - isTruncated = false; - - $elem.empty(); - - for ( var a = 0, l = $elements.length; a < l; a++ ) - { - var $e = $elements.eq( a ); - $elem.append( $e ); - if ( after ) - { - $elem.append( after ); - } - if ( test( $elem, o ) ) - { - $e.remove(); - isTruncated = true; - break; - } - else - { - if ( after ) - { - after.detach(); - } - } - } - return isTruncated; - } - function ellipsis( $elem, $d, $i, o, after ) - { - var isTruncated = false; - - // Don't put the ellipsis directly inside these elements - var notx = 'table, thead, tbody, tfoot, tr, col, colgroup, object, embed, param, ol, ul, dl, blockquote, select, optgroup, option, textarea, script, style'; - - // Don't remove these elements even if they are after the ellipsis - var noty = 'script'; - - $elem - .contents() - .detach() - .each( - function() - { - - var e = this, - $e = $(e); - - if ( typeof e == 'undefined' || ( e.nodeType == 3 && $.trim( e.data ).length == 0 ) ) - { - return true; - } - else if ( $e.is( noty ) ) - { - $elem.append( $e ); - } - else if ( isTruncated ) - { - return true; - } - else - { - $elem.append( $e ); - if ( after ) - { - $elem[ $elem.is( notx ) ? 'after' : 'append' ]( after ); - } - if ( test( $i, o ) ) - { - if ( e.nodeType == 3 ) // node is TEXT - { - isTruncated = ellipsisElement( $e, $d, $i, o, after ); - } - else - { - isTruncated = ellipsis( $e, $d, $i, o, after ); - } - - if ( !isTruncated ) - { - $e.detach(); - isTruncated = true; - } - } - - if ( !isTruncated ) - { - if ( after ) - { - after.detach(); - } - } - } - } - ); - - return isTruncated; - } - function ellipsisElement( $e, $d, $i, o, after ) - { - var e = $e[ 0 ]; - - if ( !e ) - { - return false; - } - - var txt = getTextContent( e ), - space = ( txt.indexOf(' ') !== -1 ) ? ' ' : '\u3000', - separator = ( o.wrap == 'letter' ) ? '' : space, - textArr = txt.split( separator ), - position = -1, - midPos = -1, - startPos = 0, - endPos = textArr.length - 1; - - - // Only one word - if ( o.fallbackToLetter && startPos == 0 && endPos == 0 ) - { - separator = ''; - textArr = txt.split( separator ); - endPos = textArr.length - 1; - } - - while ( startPos <= endPos && !( startPos == 0 && endPos == 0 ) ) - { - var m = Math.floor( ( startPos + endPos ) / 2 ); - if ( m == midPos ) - { - break; - } - midPos = m; - - setTextContent( e, textArr.slice( 0, midPos + 1 ).join( separator ) + o.ellipsis ); - - if ( !test( $i, o ) ) - { - position = midPos; - startPos = midPos; - } - else - { - endPos = midPos; - - // Fallback to letter - if (o.fallbackToLetter && startPos == 0 && endPos == 0 ) - { - separator = ''; - textArr = textArr[ 0 ].split( separator ); - position = -1; - midPos = -1; - startPos = 0; - endPos = textArr.length - 1; - } - } - } - - if ( position != -1 && !( textArr.length == 1 && textArr[ 0 ].length == 0 ) ) - { - txt = addEllipsis( textArr.slice( 0, position + 1 ).join( separator ), o ); - setTextContent( e, txt ); - } - else - { - var $w = $e.parent(); - $e.detach(); - - var afterLength = ( after && after.closest($w).length ) ? after.length : 0; - - if ( $w.contents().length > afterLength ) - { - e = findLastTextNode( $w.contents().eq( -1 - afterLength ), $d ); - } - else - { - e = findLastTextNode( $w, $d, true ); - if ( !afterLength ) - { - $w.detach(); - } - } - if ( e ) - { - txt = addEllipsis( getTextContent( e ), o ); - setTextContent( e, txt ); - if ( afterLength && after ) - { - $(e).parent().append( after ); - } - } - } - - return true; - } - function test( $i, o ) - { - return $i.innerHeight() > o.maxHeight; - } - function addEllipsis( txt, o ) - { - while( $.inArray( txt.slice( -1 ), o.lastCharacter.remove ) > -1 ) - { - txt = txt.slice( 0, -1 ); - } - if ( $.inArray( txt.slice( -1 ), o.lastCharacter.noEllipsis ) < 0 ) - { - txt += o.ellipsis; - } - return txt; - } - function getSizes( $d ) - { - return { - 'width' : $d.innerWidth(), - 'height': $d.innerHeight() - }; - } - function setTextContent( e, content ) - { - if ( e.innerText ) - { - e.innerText = content; - } - else if ( e.nodeValue ) - { - e.nodeValue = content; - } - else if (e.textContent) - { - e.textContent = content; - } - - } - function getTextContent( e ) - { - if ( e.innerText ) - { - return e.innerText; - } - else if ( e.nodeValue ) - { - return e.nodeValue; - } - else if ( e.textContent ) - { - return e.textContent; - } - else - { - return ""; - } - } - function getPrevNode( n ) - { - do - { - n = n.previousSibling; - } - while ( n && n.nodeType !== 1 && n.nodeType !== 3 ); - - return n; - } - function findLastTextNode( $el, $top, excludeCurrent ) - { - var e = $el && $el[ 0 ], p; - if ( e ) - { - if ( !excludeCurrent ) - { - if ( e.nodeType === 3 ) - { - return e; - } - if ( $.trim( $el.text() ) ) - { - return findLastTextNode( $el.contents().last(), $top ); - } - } - p = getPrevNode( e ); - while ( !p ) - { - $el = $el.parent(); - if ( $el.is( $top ) || !$el.length ) - { - return false; - } - p = getPrevNode( $el[0] ); - } - if ( p ) - { - return findLastTextNode( $(p), $top ); - } - } - return false; - } - function getElement( e, $i ) - { - if ( !e ) - { - return false; - } - if ( typeof e === 'string' ) - { - e = $(e, $i); - return ( e.length ) - ? e - : false; - } - return !e.jquery - ? false - : e; - } - function getTrueInnerHeight( $el ) - { - var h = $el.innerHeight(), - a = [ 'paddingTop', 'paddingBottom' ]; - - for ( var z = 0, l = a.length; z < l; z++ ) - { - var m = parseInt( $el.css( a[ z ] ), 10 ); - if ( isNaN( m ) ) - { - m = 0; - } - h -= m; - } - return h; - } - - - // override jQuery.html - var _orgHtml = $.fn.html; - $.fn.html = function( str ) - { - if ( str != undef && !$.isFunction( str ) && this.data( 'dotdotdot' ) ) - { - return this.trigger( 'update', [ str ] ); - } - return _orgHtml.apply( this, arguments ); - }; - - - // override jQuery.text - var _orgText = $.fn.text; - $.fn.text = function( str ) - { - if ( str != undef && !$.isFunction( str ) && this.data( 'dotdotdot' ) ) - { - str = $( '
' ).text( str ).html(); - return this.trigger( 'update', [ str ] ); - } - return _orgText.apply( this, arguments ); - }; - - -})( jQuery ); +/* + * jQuery dotdotdot 1.6.14 + * + * Copyright (c) Fred Heusschen + * www.frebsite.nl + * + * Plugin website: + * dotdotdot.frebsite.nl + * + * Dual licensed under the MIT and GPL licenses. + * http://en.wikipedia.org/wiki/MIT_License + * http://en.wikipedia.org/wiki/GNU_General_Public_License + */ + +(function( $, undef ) +{ + if ( $.fn.dotdotdot ) + { + return; + } + + $.fn.dotdotdot = function( o ) + { + if ( this.length == 0 ) + { + $.fn.dotdotdot.debug( 'No element found for "' + this.selector + '".' ); + return this; + } + if ( this.length > 1 ) + { + return this.each( + function() + { + $(this).dotdotdot( o ); + } + ); + } + + + var $dot = this; + + if ( $dot.data( 'dotdotdot' ) ) + { + $dot.trigger( 'destroy.dot' ); + } + + $dot.data( 'dotdotdot-style', $dot.attr( 'style' ) || '' ); + $dot.css( 'word-wrap', 'break-word' ); + if ($dot.css( 'white-space' ) === 'nowrap') + { + $dot.css( 'white-space', 'normal' ); + } + + $dot.bind_events = function() + { + $dot.bind( + 'update.dot', + function( e, c ) + { + e.preventDefault(); + e.stopPropagation(); + + opts.maxHeight = ( typeof opts.height == 'number' ) + ? opts.height + : getTrueInnerHeight( $dot ); + + opts.maxHeight += opts.tolerance; + + if ( typeof c != 'undefined' ) + { + if ( typeof c == 'string' || c instanceof HTMLElement ) + { + c = $('
').append( c ).contents(); + } + if ( c instanceof $ ) + { + orgContent = c; + } + } + + $inr = $dot.wrapInner( '
' ).children(); + $inr.contents() + .detach() + .end() + .append( orgContent.clone( true ) ) + .find( 'br' ).replaceWith( '
' ).end() + .css({ + 'height' : 'auto', + 'width' : 'auto', + 'border' : 'none', + 'padding' : 0, + 'margin' : 0 + }); + + var after = false, + trunc = false; + + if ( conf.afterElement ) + { + after = conf.afterElement.clone( true ); + after.show(); + conf.afterElement.detach(); + } + + if ( test( $inr, opts ) ) + { + if ( opts.wrap == 'children' ) + { + trunc = children( $inr, opts, after ); + } + else + { + trunc = ellipsis( $inr, $dot, $inr, opts, after ); + } + } + $inr.replaceWith( $inr.contents() ); + $inr = null; + + if ( $.isFunction( opts.callback ) ) + { + opts.callback.call( $dot[ 0 ], trunc, orgContent ); + } + + conf.isTruncated = trunc; + return trunc; + } + + ).bind( + 'isTruncated.dot', + function( e, fn ) + { + e.preventDefault(); + e.stopPropagation(); + + if ( typeof fn == 'function' ) + { + fn.call( $dot[ 0 ], conf.isTruncated ); + } + return conf.isTruncated; + } + + ).bind( + 'originalContent.dot', + function( e, fn ) + { + e.preventDefault(); + e.stopPropagation(); + + if ( typeof fn == 'function' ) + { + fn.call( $dot[ 0 ], orgContent ); + } + return orgContent; + } + + ).bind( + 'destroy.dot', + function( e ) + { + e.preventDefault(); + e.stopPropagation(); + + $dot.unwatch() + .unbind_events() + .contents() + .detach() + .end() + .append( orgContent ) + .attr( 'style', $dot.data( 'dotdotdot-style' ) || '' ) + .data( 'dotdotdot', false ); + } + ); + return $dot; + }; // /bind_events + + $dot.unbind_events = function() + { + $dot.unbind('.dot'); + return $dot; + }; // /unbind_events + + $dot.watch = function() + { + $dot.unwatch(); + if ( opts.watch == 'window' ) + { + var $window = $(window), + _wWidth = $window.width(), + _wHeight = $window.height(); + + $window.bind( + 'resize.dot' + conf.dotId, + function() + { + if ( _wWidth != $window.width() || _wHeight != $window.height() || !opts.windowResizeFix ) + { + _wWidth = $window.width(); + _wHeight = $window.height(); + + if ( watchInt ) + { + clearInterval( watchInt ); + } + watchInt = setTimeout( + function() + { + $dot.trigger( 'update.dot' ); + }, 100 + ); + } + } + ); + } + else + { + watchOrg = getSizes( $dot ); + watchInt = setInterval( + function() + { + if ( $dot.is( ':visible' ) ) + { + var watchNew = getSizes( $dot ); + if ( watchOrg.width != watchNew.width || + watchOrg.height != watchNew.height ) + { + $dot.trigger( 'update.dot' ); + watchOrg = watchNew; + } + } + }, 500 + ); + } + return $dot; + }; + $dot.unwatch = function() + { + $(window).unbind( 'resize.dot' + conf.dotId ); + if ( watchInt ) + { + clearInterval( watchInt ); + } + return $dot; + }; + + var orgContent = $dot.contents(), + opts = $.extend( true, {}, $.fn.dotdotdot.defaults, o ), + conf = {}, + watchOrg = {}, + watchInt = null, + $inr = null; + + + if ( !( opts.lastCharacter.remove instanceof Array ) ) + { + opts.lastCharacter.remove = $.fn.dotdotdot.defaultArrays.lastCharacter.remove; + } + if ( !( opts.lastCharacter.noEllipsis instanceof Array ) ) + { + opts.lastCharacter.noEllipsis = $.fn.dotdotdot.defaultArrays.lastCharacter.noEllipsis; + } + + + conf.afterElement = getElement( opts.after, $dot ); + conf.isTruncated = false; + conf.dotId = dotId++; + + + $dot.data( 'dotdotdot', true ) + .bind_events() + .trigger( 'update.dot' ); + + if ( opts.watch ) + { + $dot.watch(); + } + + return $dot; + }; + + + // public + $.fn.dotdotdot.defaults = { + 'ellipsis' : '... ', + 'wrap' : 'word', + 'fallbackToLetter' : true, + 'lastCharacter' : {}, + 'tolerance' : 0, + 'callback' : null, + 'after' : null, + 'height' : null, + 'watch' : false, + 'windowResizeFix' : true + }; + $.fn.dotdotdot.defaultArrays = { + 'lastCharacter' : { + 'remove' : [ ' ', '\u3000', ',', ';', '.', '!', '?' ], + 'noEllipsis' : [] + } + }; + $.fn.dotdotdot.debug = function( msg ) {}; + + + // private + var dotId = 1; + + function children( $elem, o, after ) + { + var $elements = $elem.children(), + isTruncated = false; + + $elem.empty(); + + for ( var a = 0, l = $elements.length; a < l; a++ ) + { + var $e = $elements.eq( a ); + $elem.append( $e ); + if ( after ) + { + $elem.append( after ); + } + if ( test( $elem, o ) ) + { + $e.remove(); + isTruncated = true; + break; + } + else + { + if ( after ) + { + after.detach(); + } + } + } + return isTruncated; + } + function ellipsis( $elem, $d, $i, o, after ) + { + var isTruncated = false; + + // Don't put the ellipsis directly inside these elements + var notx = 'table, thead, tbody, tfoot, tr, col, colgroup, object, embed, param, ol, ul, dl, blockquote, select, optgroup, option, textarea, script, style'; + + // Don't remove these elements even if they are after the ellipsis + var noty = 'script'; + + $elem + .contents() + .detach() + .each( + function() + { + + var e = this, + $e = $(e); + + if ( typeof e == 'undefined' || ( e.nodeType == 3 && $.trim( e.data ).length == 0 ) ) + { + return true; + } + else if ( $e.is( noty ) ) + { + $elem.append( $e ); + } + else if ( isTruncated ) + { + return true; + } + else + { + $elem.append( $e ); + if ( after ) + { + $elem[ $elem.is( notx ) ? 'after' : 'append' ]( after ); + } + if ( test( $i, o ) ) + { + if ( e.nodeType == 3 ) // node is TEXT + { + isTruncated = ellipsisElement( $e, $d, $i, o, after ); + } + else + { + isTruncated = ellipsis( $e, $d, $i, o, after ); + } + + if ( !isTruncated ) + { + $e.detach(); + isTruncated = true; + } + } + + if ( !isTruncated ) + { + if ( after ) + { + after.detach(); + } + } + } + } + ); + + return isTruncated; + } + function ellipsisElement( $e, $d, $i, o, after ) + { + var e = $e[ 0 ]; + + if ( !e ) + { + return false; + } + + var txt = getTextContent( e ), + space = ( txt.indexOf(' ') !== -1 ) ? ' ' : '\u3000', + separator = ( o.wrap == 'letter' ) ? '' : space, + textArr = txt.split( separator ), + position = -1, + midPos = -1, + startPos = 0, + endPos = textArr.length - 1; + + + // Only one word + if ( o.fallbackToLetter && startPos == 0 && endPos == 0 ) + { + separator = ''; + textArr = txt.split( separator ); + endPos = textArr.length - 1; + } + + while ( startPos <= endPos && !( startPos == 0 && endPos == 0 ) ) + { + var m = Math.floor( ( startPos + endPos ) / 2 ); + if ( m == midPos ) + { + break; + } + midPos = m; + + setTextContent( e, textArr.slice( 0, midPos + 1 ).join( separator ) + o.ellipsis ); + + if ( !test( $i, o ) ) + { + position = midPos; + startPos = midPos; + } + else + { + endPos = midPos; + + // Fallback to letter + if (o.fallbackToLetter && startPos == 0 && endPos == 0 ) + { + separator = ''; + textArr = textArr[ 0 ].split( separator ); + position = -1; + midPos = -1; + startPos = 0; + endPos = textArr.length - 1; + } + } + } + + if ( position != -1 && !( textArr.length == 1 && textArr[ 0 ].length == 0 ) ) + { + txt = addEllipsis( textArr.slice( 0, position + 1 ).join( separator ), o ); + setTextContent( e, txt ); + } + else + { + var $w = $e.parent(); + $e.detach(); + + var afterLength = ( after && after.closest($w).length ) ? after.length : 0; + + if ( $w.contents().length > afterLength ) + { + e = findLastTextNode( $w.contents().eq( -1 - afterLength ), $d ); + } + else + { + e = findLastTextNode( $w, $d, true ); + if ( !afterLength ) + { + $w.detach(); + } + } + if ( e ) + { + txt = addEllipsis( getTextContent( e ), o ); + setTextContent( e, txt ); + if ( afterLength && after ) + { + $(e).parent().append( after ); + } + } + } + + return true; + } + function test( $i, o ) + { + return $i.innerHeight() > o.maxHeight; + } + function addEllipsis( txt, o ) + { + while( $.inArray( txt.slice( -1 ), o.lastCharacter.remove ) > -1 ) + { + txt = txt.slice( 0, -1 ); + } + if ( $.inArray( txt.slice( -1 ), o.lastCharacter.noEllipsis ) < 0 ) + { + txt += o.ellipsis; + } + return txt; + } + function getSizes( $d ) + { + return { + 'width' : $d.innerWidth(), + 'height': $d.innerHeight() + }; + } + function setTextContent( e, content ) + { + if ( e.innerText ) + { + e.innerText = content; + } + else if ( e.nodeValue ) + { + e.nodeValue = content; + } + else if (e.textContent) + { + e.textContent = content; + } + + } + function getTextContent( e ) + { + if ( e.innerText ) + { + return e.innerText; + } + else if ( e.nodeValue ) + { + return e.nodeValue; + } + else if ( e.textContent ) + { + return e.textContent; + } + else + { + return ""; + } + } + function getPrevNode( n ) + { + do + { + n = n.previousSibling; + } + while ( n && n.nodeType !== 1 && n.nodeType !== 3 ); + + return n; + } + function findLastTextNode( $el, $top, excludeCurrent ) + { + var e = $el && $el[ 0 ], p; + if ( e ) + { + if ( !excludeCurrent ) + { + if ( e.nodeType === 3 ) + { + return e; + } + if ( $.trim( $el.text() ) ) + { + return findLastTextNode( $el.contents().last(), $top ); + } + } + p = getPrevNode( e ); + while ( !p ) + { + $el = $el.parent(); + if ( $el.is( $top ) || !$el.length ) + { + return false; + } + p = getPrevNode( $el[0] ); + } + if ( p ) + { + return findLastTextNode( $(p), $top ); + } + } + return false; + } + function getElement( e, $i ) + { + if ( !e ) + { + return false; + } + if ( typeof e === 'string' ) + { + e = $(e, $i); + return ( e.length ) + ? e + : false; + } + return !e.jquery + ? false + : e; + } + function getTrueInnerHeight( $el ) + { + var h = $el.innerHeight(), + a = [ 'paddingTop', 'paddingBottom' ]; + + for ( var z = 0, l = a.length; z < l; z++ ) + { + var m = parseInt( $el.css( a[ z ] ), 10 ); + if ( isNaN( m ) ) + { + m = 0; + } + h -= m; + } + return h; + } + + + // override jQuery.html + var _orgHtml = $.fn.html; + $.fn.html = function( str ) + { + if ( str != undef && !$.isFunction( str ) && this.data( 'dotdotdot' ) ) + { + return this.trigger( 'update', [ str ] ); + } + return _orgHtml.apply( this, arguments ); + }; + + + // override jQuery.text + var _orgText = $.fn.text; + $.fn.text = function( str ) + { + if ( str != undef && !$.isFunction( str ) && this.data( 'dotdotdot' ) ) + { + str = $( '
' ).text( str ).html(); + return this.trigger( 'update', [ str ] ); + } + return _orgText.apply( this, arguments ); + }; + + +})( jQuery ); diff --git a/awx/ui/static/lib/jQuery.dotdotdot/src/js/jquery.dotdotdot.min.js b/awx/ui/client/lib/jQuery.dotdotdot/src/js/jquery.dotdotdot.min.js similarity index 100% rename from awx/ui/static/lib/jQuery.dotdotdot/src/js/jquery.dotdotdot.min.js rename to awx/ui/client/lib/jQuery.dotdotdot/src/js/jquery.dotdotdot.min.js diff --git a/awx/ui/static/lib/javascript-detect-element-resize/.bower.json b/awx/ui/client/lib/javascript-detect-element-resize/.bower.json similarity index 100% rename from awx/ui/static/lib/javascript-detect-element-resize/.bower.json rename to awx/ui/client/lib/javascript-detect-element-resize/.bower.json diff --git a/awx/ui/static/lib/javascript-detect-element-resize/LICENSE b/awx/ui/client/lib/javascript-detect-element-resize/LICENSE similarity index 100% rename from awx/ui/static/lib/javascript-detect-element-resize/LICENSE rename to awx/ui/client/lib/javascript-detect-element-resize/LICENSE diff --git a/awx/ui/static/lib/javascript-detect-element-resize/README.md b/awx/ui/client/lib/javascript-detect-element-resize/README.md similarity index 100% rename from awx/ui/static/lib/javascript-detect-element-resize/README.md rename to awx/ui/client/lib/javascript-detect-element-resize/README.md diff --git a/awx/ui/static/lib/javascript-detect-element-resize/bower.json b/awx/ui/client/lib/javascript-detect-element-resize/bower.json similarity index 100% rename from awx/ui/static/lib/javascript-detect-element-resize/bower.json rename to awx/ui/client/lib/javascript-detect-element-resize/bower.json diff --git a/awx/ui/static/lib/javascript-detect-element-resize/detect-element-resize.js b/awx/ui/client/lib/javascript-detect-element-resize/detect-element-resize.js similarity index 100% rename from awx/ui/static/lib/javascript-detect-element-resize/detect-element-resize.js rename to awx/ui/client/lib/javascript-detect-element-resize/detect-element-resize.js diff --git a/awx/ui/static/lib/javascript-detect-element-resize/jquery.resize.js b/awx/ui/client/lib/javascript-detect-element-resize/jquery.resize.js similarity index 100% rename from awx/ui/static/lib/javascript-detect-element-resize/jquery.resize.js rename to awx/ui/client/lib/javascript-detect-element-resize/jquery.resize.js diff --git a/awx/ui/static/lib/javascript-detect-element-resize/package.json b/awx/ui/client/lib/javascript-detect-element-resize/package.json similarity index 100% rename from awx/ui/static/lib/javascript-detect-element-resize/package.json rename to awx/ui/client/lib/javascript-detect-element-resize/package.json diff --git a/awx/ui/static/lib/javascript-detect-element-resize/tests/tests-javascript.html b/awx/ui/client/lib/javascript-detect-element-resize/tests/tests-javascript.html similarity index 100% rename from awx/ui/static/lib/javascript-detect-element-resize/tests/tests-javascript.html rename to awx/ui/client/lib/javascript-detect-element-resize/tests/tests-javascript.html diff --git a/awx/ui/static/lib/javascript-detect-element-resize/tests/tests-javascript.js b/awx/ui/client/lib/javascript-detect-element-resize/tests/tests-javascript.js similarity index 100% rename from awx/ui/static/lib/javascript-detect-element-resize/tests/tests-javascript.js rename to awx/ui/client/lib/javascript-detect-element-resize/tests/tests-javascript.js diff --git a/awx/ui/static/lib/javascript-detect-element-resize/tests/tests-jquery.html b/awx/ui/client/lib/javascript-detect-element-resize/tests/tests-jquery.html similarity index 100% rename from awx/ui/static/lib/javascript-detect-element-resize/tests/tests-jquery.html rename to awx/ui/client/lib/javascript-detect-element-resize/tests/tests-jquery.html diff --git a/awx/ui/static/lib/javascript-detect-element-resize/tests/tests-jquery.js b/awx/ui/client/lib/javascript-detect-element-resize/tests/tests-jquery.js similarity index 100% rename from awx/ui/static/lib/javascript-detect-element-resize/tests/tests-jquery.js rename to awx/ui/client/lib/javascript-detect-element-resize/tests/tests-jquery.js diff --git a/awx/ui/static/lib/javascript-detect-element-resize/tests/tests.css b/awx/ui/client/lib/javascript-detect-element-resize/tests/tests.css similarity index 100% rename from awx/ui/static/lib/javascript-detect-element-resize/tests/tests.css rename to awx/ui/client/lib/javascript-detect-element-resize/tests/tests.css diff --git a/awx/ui/static/lib/jquery-ui/.bower.json b/awx/ui/client/lib/jquery-ui/.bower.json similarity index 100% rename from awx/ui/static/lib/jquery-ui/.bower.json rename to awx/ui/client/lib/jquery-ui/.bower.json diff --git a/awx/ui/static/lib/jquery-ui/.gitignore b/awx/ui/client/lib/jquery-ui/.gitignore similarity index 100% rename from awx/ui/static/lib/jquery-ui/.gitignore rename to awx/ui/client/lib/jquery-ui/.gitignore diff --git a/awx/ui/static/lib/jquery-ui/AUTHORS.txt b/awx/ui/client/lib/jquery-ui/AUTHORS.txt similarity index 100% rename from awx/ui/static/lib/jquery-ui/AUTHORS.txt rename to awx/ui/client/lib/jquery-ui/AUTHORS.txt diff --git a/awx/ui/static/lib/jquery-ui/LICENSE.txt b/awx/ui/client/lib/jquery-ui/LICENSE.txt similarity index 100% rename from awx/ui/static/lib/jquery-ui/LICENSE.txt rename to awx/ui/client/lib/jquery-ui/LICENSE.txt diff --git a/awx/ui/static/lib/jquery-ui/README.md b/awx/ui/client/lib/jquery-ui/README.md similarity index 100% rename from awx/ui/static/lib/jquery-ui/README.md rename to awx/ui/client/lib/jquery-ui/README.md diff --git a/awx/ui/static/lib/jquery-ui/bower.json b/awx/ui/client/lib/jquery-ui/bower.json similarity index 100% rename from awx/ui/static/lib/jquery-ui/bower.json rename to awx/ui/client/lib/jquery-ui/bower.json diff --git a/awx/ui/static/lib/jquery-ui/component.json b/awx/ui/client/lib/jquery-ui/component.json similarity index 100% rename from awx/ui/static/lib/jquery-ui/component.json rename to awx/ui/client/lib/jquery-ui/component.json diff --git a/awx/ui/static/lib/jquery-ui/composer.json b/awx/ui/client/lib/jquery-ui/composer.json similarity index 100% rename from awx/ui/static/lib/jquery-ui/composer.json rename to awx/ui/client/lib/jquery-ui/composer.json diff --git a/awx/ui/static/lib/jquery-ui/jquery-ui.js b/awx/ui/client/lib/jquery-ui/jquery-ui.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/jquery-ui.js rename to awx/ui/client/lib/jquery-ui/jquery-ui.js diff --git a/awx/ui/static/lib/jquery-ui/jquery-ui.min.js b/awx/ui/client/lib/jquery-ui/jquery-ui.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/jquery-ui.min.js rename to awx/ui/client/lib/jquery-ui/jquery-ui.min.js diff --git a/awx/ui/static/lib/jquery-ui/package.json b/awx/ui/client/lib/jquery-ui/package.json similarity index 100% rename from awx/ui/static/lib/jquery-ui/package.json rename to awx/ui/client/lib/jquery-ui/package.json diff --git a/awx/ui/static/lib/jquery-ui/themes/base/accordion.css b/awx/ui/client/lib/jquery-ui/themes/base/accordion.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/accordion.css rename to awx/ui/client/lib/jquery-ui/themes/base/accordion.css diff --git a/awx/ui/static/lib/jquery-ui/themes/base/all.css b/awx/ui/client/lib/jquery-ui/themes/base/all.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/all.css rename to awx/ui/client/lib/jquery-ui/themes/base/all.css diff --git a/awx/ui/static/lib/jquery-ui/themes/base/autocomplete.css b/awx/ui/client/lib/jquery-ui/themes/base/autocomplete.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/autocomplete.css rename to awx/ui/client/lib/jquery-ui/themes/base/autocomplete.css diff --git a/awx/ui/static/lib/jquery-ui/themes/base/base.css b/awx/ui/client/lib/jquery-ui/themes/base/base.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/base.css rename to awx/ui/client/lib/jquery-ui/themes/base/base.css diff --git a/awx/ui/static/lib/jquery-ui/themes/base/button.css b/awx/ui/client/lib/jquery-ui/themes/base/button.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/button.css rename to awx/ui/client/lib/jquery-ui/themes/base/button.css diff --git a/awx/ui/static/lib/jquery-ui/themes/base/core.css b/awx/ui/client/lib/jquery-ui/themes/base/core.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/core.css rename to awx/ui/client/lib/jquery-ui/themes/base/core.css diff --git a/awx/ui/static/lib/jquery-ui/themes/base/datepicker.css b/awx/ui/client/lib/jquery-ui/themes/base/datepicker.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/datepicker.css rename to awx/ui/client/lib/jquery-ui/themes/base/datepicker.css diff --git a/awx/ui/static/lib/jquery-ui/themes/base/dialog.css b/awx/ui/client/lib/jquery-ui/themes/base/dialog.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/dialog.css rename to awx/ui/client/lib/jquery-ui/themes/base/dialog.css diff --git a/awx/ui/static/lib/jquery-ui/themes/base/draggable.css b/awx/ui/client/lib/jquery-ui/themes/base/draggable.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/draggable.css rename to awx/ui/client/lib/jquery-ui/themes/base/draggable.css diff --git a/awx/ui/static/lib/jquery-ui/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png b/awx/ui/client/lib/jquery-ui/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/base/images/ui-bg_flat_75_ffffff_40x100.png b/awx/ui/client/lib/jquery-ui/themes/base/images/ui-bg_flat_75_ffffff_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/images/ui-bg_flat_75_ffffff_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/base/images/ui-bg_flat_75_ffffff_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png b/awx/ui/client/lib/jquery-ui/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/base/images/ui-bg_glass_65_ffffff_1x400.png b/awx/ui/client/lib/jquery-ui/themes/base/images/ui-bg_glass_65_ffffff_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/images/ui-bg_glass_65_ffffff_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/base/images/ui-bg_glass_65_ffffff_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/base/images/ui-bg_glass_75_dadada_1x400.png b/awx/ui/client/lib/jquery-ui/themes/base/images/ui-bg_glass_75_dadada_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/images/ui-bg_glass_75_dadada_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/base/images/ui-bg_glass_75_dadada_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png b/awx/ui/client/lib/jquery-ui/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png b/awx/ui/client/lib/jquery-ui/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/awx/ui/client/lib/jquery-ui/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/base/images/ui-icons_222222_256x240.png b/awx/ui/client/lib/jquery-ui/themes/base/images/ui-icons_222222_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/images/ui-icons_222222_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/base/images/ui-icons_222222_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/base/images/ui-icons_2e83ff_256x240.png b/awx/ui/client/lib/jquery-ui/themes/base/images/ui-icons_2e83ff_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/images/ui-icons_2e83ff_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/base/images/ui-icons_2e83ff_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/base/images/ui-icons_444444_256x240.png b/awx/ui/client/lib/jquery-ui/themes/base/images/ui-icons_444444_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/images/ui-icons_444444_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/base/images/ui-icons_444444_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/base/images/ui-icons_454545_256x240.png b/awx/ui/client/lib/jquery-ui/themes/base/images/ui-icons_454545_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/images/ui-icons_454545_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/base/images/ui-icons_454545_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/base/images/ui-icons_555555_256x240.png b/awx/ui/client/lib/jquery-ui/themes/base/images/ui-icons_555555_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/images/ui-icons_555555_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/base/images/ui-icons_555555_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/base/images/ui-icons_777620_256x240.png b/awx/ui/client/lib/jquery-ui/themes/base/images/ui-icons_777620_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/images/ui-icons_777620_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/base/images/ui-icons_777620_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/base/images/ui-icons_777777_256x240.png b/awx/ui/client/lib/jquery-ui/themes/base/images/ui-icons_777777_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/images/ui-icons_777777_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/base/images/ui-icons_777777_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/base/images/ui-icons_888888_256x240.png b/awx/ui/client/lib/jquery-ui/themes/base/images/ui-icons_888888_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/images/ui-icons_888888_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/base/images/ui-icons_888888_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/base/images/ui-icons_cc0000_256x240.png b/awx/ui/client/lib/jquery-ui/themes/base/images/ui-icons_cc0000_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/images/ui-icons_cc0000_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/base/images/ui-icons_cc0000_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/base/images/ui-icons_cd0a0a_256x240.png b/awx/ui/client/lib/jquery-ui/themes/base/images/ui-icons_cd0a0a_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/images/ui-icons_cd0a0a_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/base/images/ui-icons_cd0a0a_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/base/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jquery-ui/themes/base/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/base/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/base/jquery-ui.css b/awx/ui/client/lib/jquery-ui/themes/base/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/jquery-ui.css rename to awx/ui/client/lib/jquery-ui/themes/base/jquery-ui.css diff --git a/awx/ui/static/lib/jquery-ui/themes/base/jquery-ui.min.css b/awx/ui/client/lib/jquery-ui/themes/base/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/jquery-ui.min.css rename to awx/ui/client/lib/jquery-ui/themes/base/jquery-ui.min.css diff --git a/awx/ui/static/lib/jquery-ui/themes/base/menu.css b/awx/ui/client/lib/jquery-ui/themes/base/menu.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/menu.css rename to awx/ui/client/lib/jquery-ui/themes/base/menu.css diff --git a/awx/ui/static/lib/jquery-ui/themes/base/progressbar.css b/awx/ui/client/lib/jquery-ui/themes/base/progressbar.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/progressbar.css rename to awx/ui/client/lib/jquery-ui/themes/base/progressbar.css diff --git a/awx/ui/static/lib/jquery-ui/themes/base/resizable.css b/awx/ui/client/lib/jquery-ui/themes/base/resizable.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/resizable.css rename to awx/ui/client/lib/jquery-ui/themes/base/resizable.css diff --git a/awx/ui/static/lib/jquery-ui/themes/base/selectable.css b/awx/ui/client/lib/jquery-ui/themes/base/selectable.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/selectable.css rename to awx/ui/client/lib/jquery-ui/themes/base/selectable.css diff --git a/awx/ui/static/lib/jquery-ui/themes/base/selectmenu.css b/awx/ui/client/lib/jquery-ui/themes/base/selectmenu.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/selectmenu.css rename to awx/ui/client/lib/jquery-ui/themes/base/selectmenu.css diff --git a/awx/ui/static/lib/jquery-ui/themes/base/slider.css b/awx/ui/client/lib/jquery-ui/themes/base/slider.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/slider.css rename to awx/ui/client/lib/jquery-ui/themes/base/slider.css diff --git a/awx/ui/static/lib/jquery-ui/themes/base/sortable.css b/awx/ui/client/lib/jquery-ui/themes/base/sortable.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/sortable.css rename to awx/ui/client/lib/jquery-ui/themes/base/sortable.css diff --git a/awx/ui/static/lib/jquery-ui/themes/base/spinner.css b/awx/ui/client/lib/jquery-ui/themes/base/spinner.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/spinner.css rename to awx/ui/client/lib/jquery-ui/themes/base/spinner.css diff --git a/awx/ui/static/lib/jquery-ui/themes/base/tabs.css b/awx/ui/client/lib/jquery-ui/themes/base/tabs.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/tabs.css rename to awx/ui/client/lib/jquery-ui/themes/base/tabs.css diff --git a/awx/ui/static/lib/jquery-ui/themes/base/theme.css b/awx/ui/client/lib/jquery-ui/themes/base/theme.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/theme.css rename to awx/ui/client/lib/jquery-ui/themes/base/theme.css diff --git a/awx/ui/static/lib/jquery-ui/themes/base/tooltip.css b/awx/ui/client/lib/jquery-ui/themes/base/tooltip.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/base/tooltip.css rename to awx/ui/client/lib/jquery-ui/themes/base/tooltip.css diff --git a/awx/ui/static/lib/jquery-ui/themes/black-tie/images/animated-overlay.gif b/awx/ui/client/lib/jquery-ui/themes/black-tie/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/black-tie/images/animated-overlay.gif rename to awx/ui/client/lib/jquery-ui/themes/black-tie/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-bg_diagonals-thick_8_333333_40x40.png b/awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-bg_diagonals-thick_8_333333_40x40.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-bg_diagonals-thick_8_333333_40x40.png rename to awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-bg_diagonals-thick_8_333333_40x40.png diff --git a/awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-bg_flat_65_ffffff_40x100.png b/awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-bg_flat_65_ffffff_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-bg_flat_65_ffffff_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-bg_flat_65_ffffff_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-bg_glass_40_111111_1x400.png b/awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-bg_glass_40_111111_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-bg_glass_40_111111_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-bg_glass_40_111111_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-bg_glass_55_1c1c1c_1x400.png b/awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-bg_glass_55_1c1c1c_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-bg_glass_55_1c1c1c_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-bg_glass_55_1c1c1c_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-bg_highlight-hard_100_f9f9f9_1x100.png b/awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-bg_highlight-hard_100_f9f9f9_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-bg_highlight-hard_100_f9f9f9_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-bg_highlight-hard_100_f9f9f9_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-bg_highlight-hard_40_aaaaaa_1x100.png b/awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-bg_highlight-hard_40_aaaaaa_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-bg_highlight-hard_40_aaaaaa_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-bg_highlight-hard_40_aaaaaa_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-bg_highlight-soft_50_aaaaaa_1x100.png b/awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-bg_highlight-soft_50_aaaaaa_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-bg_highlight-soft_50_aaaaaa_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-bg_highlight-soft_50_aaaaaa_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-bg_inset-hard_45_cd0a0a_1x100.png b/awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-bg_inset-hard_45_cd0a0a_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-bg_inset-hard_45_cd0a0a_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-bg_inset-hard_45_cd0a0a_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-bg_inset-hard_55_ffeb80_1x100.png b/awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-bg_inset-hard_55_ffeb80_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-bg_inset-hard_55_ffeb80_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-bg_inset-hard_55_ffeb80_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-icons_222222_256x240.png b/awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-icons_222222_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-icons_222222_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-icons_222222_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-icons_4ca300_256x240.png b/awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-icons_4ca300_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-icons_4ca300_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-icons_4ca300_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-icons_bbbbbb_256x240.png b/awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-icons_bbbbbb_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-icons_bbbbbb_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-icons_bbbbbb_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-icons_ededed_256x240.png b/awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-icons_ededed_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-icons_ededed_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-icons_ededed_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-icons_ffcf29_256x240.png b/awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-icons_ffcf29_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-icons_ffcf29_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-icons_ffcf29_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/black-tie/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/black-tie/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/black-tie/jquery-ui.css b/awx/ui/client/lib/jquery-ui/themes/black-tie/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/black-tie/jquery-ui.css rename to awx/ui/client/lib/jquery-ui/themes/black-tie/jquery-ui.css diff --git a/awx/ui/static/lib/jquery-ui/themes/black-tie/jquery-ui.min.css b/awx/ui/client/lib/jquery-ui/themes/black-tie/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/black-tie/jquery-ui.min.css rename to awx/ui/client/lib/jquery-ui/themes/black-tie/jquery-ui.min.css diff --git a/awx/ui/static/lib/jquery-ui/themes/black-tie/theme.css b/awx/ui/client/lib/jquery-ui/themes/black-tie/theme.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/black-tie/theme.css rename to awx/ui/client/lib/jquery-ui/themes/black-tie/theme.css diff --git a/awx/ui/static/lib/jquery-ui/themes/blitzer/images/animated-overlay.gif b/awx/ui/client/lib/jquery-ui/themes/blitzer/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/blitzer/images/animated-overlay.gif rename to awx/ui/client/lib/jquery-ui/themes/blitzer/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jquery-ui/themes/blitzer/images/ui-bg_diagonals-thick_75_f3d8d8_40x40.png b/awx/ui/client/lib/jquery-ui/themes/blitzer/images/ui-bg_diagonals-thick_75_f3d8d8_40x40.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/blitzer/images/ui-bg_diagonals-thick_75_f3d8d8_40x40.png rename to awx/ui/client/lib/jquery-ui/themes/blitzer/images/ui-bg_diagonals-thick_75_f3d8d8_40x40.png diff --git a/awx/ui/static/lib/jquery-ui/themes/blitzer/images/ui-bg_dots-small_65_a6a6a6_2x2.png b/awx/ui/client/lib/jquery-ui/themes/blitzer/images/ui-bg_dots-small_65_a6a6a6_2x2.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/blitzer/images/ui-bg_dots-small_65_a6a6a6_2x2.png rename to awx/ui/client/lib/jquery-ui/themes/blitzer/images/ui-bg_dots-small_65_a6a6a6_2x2.png diff --git a/awx/ui/static/lib/jquery-ui/themes/blitzer/images/ui-bg_flat_0_333333_40x100.png b/awx/ui/client/lib/jquery-ui/themes/blitzer/images/ui-bg_flat_0_333333_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/blitzer/images/ui-bg_flat_0_333333_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/blitzer/images/ui-bg_flat_0_333333_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/blitzer/images/ui-bg_flat_65_ffffff_40x100.png b/awx/ui/client/lib/jquery-ui/themes/blitzer/images/ui-bg_flat_65_ffffff_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/blitzer/images/ui-bg_flat_65_ffffff_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/blitzer/images/ui-bg_flat_65_ffffff_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/blitzer/images/ui-bg_flat_75_ffffff_40x100.png b/awx/ui/client/lib/jquery-ui/themes/blitzer/images/ui-bg_flat_75_ffffff_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/blitzer/images/ui-bg_flat_75_ffffff_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/blitzer/images/ui-bg_flat_75_ffffff_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/blitzer/images/ui-bg_glass_55_fbf8ee_1x400.png b/awx/ui/client/lib/jquery-ui/themes/blitzer/images/ui-bg_glass_55_fbf8ee_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/blitzer/images/ui-bg_glass_55_fbf8ee_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/blitzer/images/ui-bg_glass_55_fbf8ee_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/blitzer/images/ui-bg_highlight-hard_100_eeeeee_1x100.png b/awx/ui/client/lib/jquery-ui/themes/blitzer/images/ui-bg_highlight-hard_100_eeeeee_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/blitzer/images/ui-bg_highlight-hard_100_eeeeee_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/blitzer/images/ui-bg_highlight-hard_100_eeeeee_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/blitzer/images/ui-bg_highlight-hard_100_f6f6f6_1x100.png b/awx/ui/client/lib/jquery-ui/themes/blitzer/images/ui-bg_highlight-hard_100_f6f6f6_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/blitzer/images/ui-bg_highlight-hard_100_f6f6f6_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/blitzer/images/ui-bg_highlight-hard_100_f6f6f6_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/blitzer/images/ui-bg_highlight-soft_15_cc0000_1x100.png b/awx/ui/client/lib/jquery-ui/themes/blitzer/images/ui-bg_highlight-soft_15_cc0000_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/blitzer/images/ui-bg_highlight-soft_15_cc0000_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/blitzer/images/ui-bg_highlight-soft_15_cc0000_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/blitzer/images/ui-icons_004276_256x240.png b/awx/ui/client/lib/jquery-ui/themes/blitzer/images/ui-icons_004276_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/blitzer/images/ui-icons_004276_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/blitzer/images/ui-icons_004276_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/blitzer/images/ui-icons_cc0000_256x240.png b/awx/ui/client/lib/jquery-ui/themes/blitzer/images/ui-icons_cc0000_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/blitzer/images/ui-icons_cc0000_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/blitzer/images/ui-icons_cc0000_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/blitzer/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jquery-ui/themes/blitzer/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/blitzer/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/blitzer/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/blitzer/jquery-ui.css b/awx/ui/client/lib/jquery-ui/themes/blitzer/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/blitzer/jquery-ui.css rename to awx/ui/client/lib/jquery-ui/themes/blitzer/jquery-ui.css diff --git a/awx/ui/static/lib/jquery-ui/themes/blitzer/jquery-ui.min.css b/awx/ui/client/lib/jquery-ui/themes/blitzer/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/blitzer/jquery-ui.min.css rename to awx/ui/client/lib/jquery-ui/themes/blitzer/jquery-ui.min.css diff --git a/awx/ui/static/lib/jquery-ui/themes/blitzer/theme.css b/awx/ui/client/lib/jquery-ui/themes/blitzer/theme.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/blitzer/theme.css rename to awx/ui/client/lib/jquery-ui/themes/blitzer/theme.css diff --git a/awx/ui/static/lib/jquery-ui/themes/cupertino/images/animated-overlay.gif b/awx/ui/client/lib/jquery-ui/themes/cupertino/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/cupertino/images/animated-overlay.gif rename to awx/ui/client/lib/jquery-ui/themes/cupertino/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png b/awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png rename to awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png diff --git a/awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-bg_flat_15_cd0a0a_40x100.png b/awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-bg_flat_15_cd0a0a_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-bg_flat_15_cd0a0a_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-bg_flat_15_cd0a0a_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-bg_glass_100_e4f1fb_1x400.png b/awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-bg_glass_100_e4f1fb_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-bg_glass_100_e4f1fb_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-bg_glass_100_e4f1fb_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-bg_glass_50_3baae3_1x400.png b/awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-bg_glass_50_3baae3_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-bg_glass_50_3baae3_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-bg_glass_50_3baae3_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-bg_glass_80_d7ebf9_1x400.png b/awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-bg_glass_80_d7ebf9_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-bg_glass_80_d7ebf9_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-bg_glass_80_d7ebf9_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png b/awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-bg_highlight-hard_70_000000_1x100.png b/awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-bg_highlight-hard_70_000000_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-bg_highlight-hard_70_000000_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-bg_highlight-hard_70_000000_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-bg_highlight-soft_100_deedf7_1x100.png b/awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-bg_highlight-soft_100_deedf7_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-bg_highlight-soft_100_deedf7_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-bg_highlight-soft_100_deedf7_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-bg_highlight-soft_25_ffef8f_1x100.png b/awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-bg_highlight-soft_25_ffef8f_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-bg_highlight-soft_25_ffef8f_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-bg_highlight-soft_25_ffef8f_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-icons_2694e8_256x240.png b/awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-icons_2694e8_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-icons_2694e8_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-icons_2694e8_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-icons_2e83ff_256x240.png b/awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-icons_2e83ff_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-icons_2e83ff_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-icons_2e83ff_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-icons_3d80b3_256x240.png b/awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-icons_3d80b3_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-icons_3d80b3_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-icons_3d80b3_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-icons_72a7cf_256x240.png b/awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-icons_72a7cf_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-icons_72a7cf_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-icons_72a7cf_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/cupertino/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/cupertino/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/cupertino/jquery-ui.css b/awx/ui/client/lib/jquery-ui/themes/cupertino/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/cupertino/jquery-ui.css rename to awx/ui/client/lib/jquery-ui/themes/cupertino/jquery-ui.css diff --git a/awx/ui/static/lib/jquery-ui/themes/cupertino/jquery-ui.min.css b/awx/ui/client/lib/jquery-ui/themes/cupertino/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/cupertino/jquery-ui.min.css rename to awx/ui/client/lib/jquery-ui/themes/cupertino/jquery-ui.min.css diff --git a/awx/ui/static/lib/jquery-ui/themes/cupertino/theme.css b/awx/ui/client/lib/jquery-ui/themes/cupertino/theme.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/cupertino/theme.css rename to awx/ui/client/lib/jquery-ui/themes/cupertino/theme.css diff --git a/awx/ui/static/lib/jquery-ui/themes/dark-hive/images/animated-overlay.gif b/awx/ui/client/lib/jquery-ui/themes/dark-hive/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dark-hive/images/animated-overlay.gif rename to awx/ui/client/lib/jquery-ui/themes/dark-hive/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-bg_flat_30_cccccc_40x100.png b/awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-bg_flat_30_cccccc_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-bg_flat_30_cccccc_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-bg_flat_30_cccccc_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-bg_flat_50_5c5c5c_40x100.png b/awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-bg_flat_50_5c5c5c_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-bg_flat_50_5c5c5c_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-bg_flat_50_5c5c5c_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-bg_glass_40_ffc73d_1x400.png b/awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-bg_glass_40_ffc73d_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-bg_glass_40_ffc73d_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-bg_glass_40_ffc73d_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-bg_highlight-hard_20_0972a5_1x100.png b/awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-bg_highlight-hard_20_0972a5_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-bg_highlight-hard_20_0972a5_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-bg_highlight-hard_20_0972a5_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-bg_highlight-soft_33_003147_1x100.png b/awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-bg_highlight-soft_33_003147_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-bg_highlight-soft_33_003147_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-bg_highlight-soft_33_003147_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-bg_highlight-soft_35_222222_1x100.png b/awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-bg_highlight-soft_35_222222_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-bg_highlight-soft_35_222222_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-bg_highlight-soft_35_222222_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-bg_highlight-soft_44_444444_1x100.png b/awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-bg_highlight-soft_44_444444_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-bg_highlight-soft_44_444444_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-bg_highlight-soft_44_444444_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-bg_highlight-soft_80_eeeeee_1x100.png b/awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-bg_highlight-soft_80_eeeeee_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-bg_highlight-soft_80_eeeeee_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-bg_highlight-soft_80_eeeeee_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-bg_loop_25_000000_21x21.png b/awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-bg_loop_25_000000_21x21.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-bg_loop_25_000000_21x21.png rename to awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-bg_loop_25_000000_21x21.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-icons_222222_256x240.png b/awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-icons_222222_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-icons_222222_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-icons_222222_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-icons_4b8e0b_256x240.png b/awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-icons_4b8e0b_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-icons_4b8e0b_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-icons_4b8e0b_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-icons_a83300_256x240.png b/awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-icons_a83300_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-icons_a83300_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-icons_a83300_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-icons_cccccc_256x240.png b/awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-icons_cccccc_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-icons_cccccc_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-icons_cccccc_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dark-hive/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/dark-hive/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dark-hive/jquery-ui.css b/awx/ui/client/lib/jquery-ui/themes/dark-hive/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dark-hive/jquery-ui.css rename to awx/ui/client/lib/jquery-ui/themes/dark-hive/jquery-ui.css diff --git a/awx/ui/static/lib/jquery-ui/themes/dark-hive/jquery-ui.min.css b/awx/ui/client/lib/jquery-ui/themes/dark-hive/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dark-hive/jquery-ui.min.css rename to awx/ui/client/lib/jquery-ui/themes/dark-hive/jquery-ui.min.css diff --git a/awx/ui/static/lib/jquery-ui/themes/dark-hive/theme.css b/awx/ui/client/lib/jquery-ui/themes/dark-hive/theme.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dark-hive/theme.css rename to awx/ui/client/lib/jquery-ui/themes/dark-hive/theme.css diff --git a/awx/ui/static/lib/jquery-ui/themes/dot-luv/images/animated-overlay.gif b/awx/ui/client/lib/jquery-ui/themes/dot-luv/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dot-luv/images/animated-overlay.gif rename to awx/ui/client/lib/jquery-ui/themes/dot-luv/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jquery-ui/themes/dot-luv/images/ui-bg_diagonals-thick_15_0b3e6f_40x40.png b/awx/ui/client/lib/jquery-ui/themes/dot-luv/images/ui-bg_diagonals-thick_15_0b3e6f_40x40.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dot-luv/images/ui-bg_diagonals-thick_15_0b3e6f_40x40.png rename to awx/ui/client/lib/jquery-ui/themes/dot-luv/images/ui-bg_diagonals-thick_15_0b3e6f_40x40.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dot-luv/images/ui-bg_dots-medium_30_0b58a2_4x4.png b/awx/ui/client/lib/jquery-ui/themes/dot-luv/images/ui-bg_dots-medium_30_0b58a2_4x4.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dot-luv/images/ui-bg_dots-medium_30_0b58a2_4x4.png rename to awx/ui/client/lib/jquery-ui/themes/dot-luv/images/ui-bg_dots-medium_30_0b58a2_4x4.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dot-luv/images/ui-bg_dots-small_20_333333_2x2.png b/awx/ui/client/lib/jquery-ui/themes/dot-luv/images/ui-bg_dots-small_20_333333_2x2.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dot-luv/images/ui-bg_dots-small_20_333333_2x2.png rename to awx/ui/client/lib/jquery-ui/themes/dot-luv/images/ui-bg_dots-small_20_333333_2x2.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dot-luv/images/ui-bg_dots-small_30_a32d00_2x2.png b/awx/ui/client/lib/jquery-ui/themes/dot-luv/images/ui-bg_dots-small_30_a32d00_2x2.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dot-luv/images/ui-bg_dots-small_30_a32d00_2x2.png rename to awx/ui/client/lib/jquery-ui/themes/dot-luv/images/ui-bg_dots-small_30_a32d00_2x2.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dot-luv/images/ui-bg_dots-small_40_00498f_2x2.png b/awx/ui/client/lib/jquery-ui/themes/dot-luv/images/ui-bg_dots-small_40_00498f_2x2.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dot-luv/images/ui-bg_dots-small_40_00498f_2x2.png rename to awx/ui/client/lib/jquery-ui/themes/dot-luv/images/ui-bg_dots-small_40_00498f_2x2.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dot-luv/images/ui-bg_flat_0_aaaaaa_40x100.png b/awx/ui/client/lib/jquery-ui/themes/dot-luv/images/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dot-luv/images/ui-bg_flat_0_aaaaaa_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/dot-luv/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dot-luv/images/ui-bg_flat_40_292929_40x100.png b/awx/ui/client/lib/jquery-ui/themes/dot-luv/images/ui-bg_flat_40_292929_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dot-luv/images/ui-bg_flat_40_292929_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/dot-luv/images/ui-bg_flat_40_292929_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dot-luv/images/ui-bg_gloss-wave_20_111111_500x100.png b/awx/ui/client/lib/jquery-ui/themes/dot-luv/images/ui-bg_gloss-wave_20_111111_500x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dot-luv/images/ui-bg_gloss-wave_20_111111_500x100.png rename to awx/ui/client/lib/jquery-ui/themes/dot-luv/images/ui-bg_gloss-wave_20_111111_500x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dot-luv/images/ui-icons_00498f_256x240.png b/awx/ui/client/lib/jquery-ui/themes/dot-luv/images/ui-icons_00498f_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dot-luv/images/ui-icons_00498f_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/dot-luv/images/ui-icons_00498f_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dot-luv/images/ui-icons_98d2fb_256x240.png b/awx/ui/client/lib/jquery-ui/themes/dot-luv/images/ui-icons_98d2fb_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dot-luv/images/ui-icons_98d2fb_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/dot-luv/images/ui-icons_98d2fb_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dot-luv/images/ui-icons_9ccdfc_256x240.png b/awx/ui/client/lib/jquery-ui/themes/dot-luv/images/ui-icons_9ccdfc_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dot-luv/images/ui-icons_9ccdfc_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/dot-luv/images/ui-icons_9ccdfc_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dot-luv/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jquery-ui/themes/dot-luv/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dot-luv/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/dot-luv/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/dot-luv/jquery-ui.css b/awx/ui/client/lib/jquery-ui/themes/dot-luv/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dot-luv/jquery-ui.css rename to awx/ui/client/lib/jquery-ui/themes/dot-luv/jquery-ui.css diff --git a/awx/ui/static/lib/jquery-ui/themes/dot-luv/jquery-ui.min.css b/awx/ui/client/lib/jquery-ui/themes/dot-luv/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dot-luv/jquery-ui.min.css rename to awx/ui/client/lib/jquery-ui/themes/dot-luv/jquery-ui.min.css diff --git a/awx/ui/static/lib/jquery-ui/themes/dot-luv/theme.css b/awx/ui/client/lib/jquery-ui/themes/dot-luv/theme.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/dot-luv/theme.css rename to awx/ui/client/lib/jquery-ui/themes/dot-luv/theme.css diff --git a/awx/ui/static/lib/jquery-ui/themes/eggplant/images/animated-overlay.gif b/awx/ui/client/lib/jquery-ui/themes/eggplant/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/eggplant/images/animated-overlay.gif rename to awx/ui/client/lib/jquery-ui/themes/eggplant/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-bg_flat_0_aaaaaa_40x100.png b/awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-bg_flat_0_aaaaaa_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-bg_flat_0_eeeeee_40x100.png b/awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-bg_flat_0_eeeeee_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-bg_flat_0_eeeeee_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-bg_flat_0_eeeeee_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-bg_flat_55_994d53_40x100.png b/awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-bg_flat_55_994d53_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-bg_flat_55_994d53_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-bg_flat_55_994d53_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-bg_flat_55_fafafa_40x100.png b/awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-bg_flat_55_fafafa_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-bg_flat_55_fafafa_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-bg_flat_55_fafafa_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-bg_gloss-wave_30_3d3644_500x100.png b/awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-bg_gloss-wave_30_3d3644_500x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-bg_gloss-wave_30_3d3644_500x100.png rename to awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-bg_gloss-wave_30_3d3644_500x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-bg_highlight-soft_100_dcd9de_1x100.png b/awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-bg_highlight-soft_100_dcd9de_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-bg_highlight-soft_100_dcd9de_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-bg_highlight-soft_100_dcd9de_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-bg_highlight-soft_100_eae6ea_1x100.png b/awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-bg_highlight-soft_100_eae6ea_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-bg_highlight-soft_100_eae6ea_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-bg_highlight-soft_100_eae6ea_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-bg_highlight-soft_25_30273a_1x100.png b/awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-bg_highlight-soft_25_30273a_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-bg_highlight-soft_25_30273a_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-bg_highlight-soft_25_30273a_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-bg_highlight-soft_45_5f5964_1x100.png b/awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-bg_highlight-soft_45_5f5964_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-bg_highlight-soft_45_5f5964_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-bg_highlight-soft_45_5f5964_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-icons_454545_256x240.png b/awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-icons_454545_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-icons_454545_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-icons_454545_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-icons_734d99_256x240.png b/awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-icons_734d99_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-icons_734d99_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-icons_734d99_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-icons_8d78a5_256x240.png b/awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-icons_8d78a5_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-icons_8d78a5_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-icons_8d78a5_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-icons_a8a3ae_256x240.png b/awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-icons_a8a3ae_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-icons_a8a3ae_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-icons_a8a3ae_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-icons_ebccce_256x240.png b/awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-icons_ebccce_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-icons_ebccce_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-icons_ebccce_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/eggplant/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/eggplant/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/eggplant/jquery-ui.css b/awx/ui/client/lib/jquery-ui/themes/eggplant/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/eggplant/jquery-ui.css rename to awx/ui/client/lib/jquery-ui/themes/eggplant/jquery-ui.css diff --git a/awx/ui/static/lib/jquery-ui/themes/eggplant/jquery-ui.min.css b/awx/ui/client/lib/jquery-ui/themes/eggplant/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/eggplant/jquery-ui.min.css rename to awx/ui/client/lib/jquery-ui/themes/eggplant/jquery-ui.min.css diff --git a/awx/ui/static/lib/jquery-ui/themes/eggplant/theme.css b/awx/ui/client/lib/jquery-ui/themes/eggplant/theme.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/eggplant/theme.css rename to awx/ui/client/lib/jquery-ui/themes/eggplant/theme.css diff --git a/awx/ui/static/lib/jquery-ui/themes/excite-bike/images/animated-overlay.gif b/awx/ui/client/lib/jquery-ui/themes/excite-bike/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/excite-bike/images/animated-overlay.gif rename to awx/ui/client/lib/jquery-ui/themes/excite-bike/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-bg_diagonals-small_25_c5ddfc_40x40.png b/awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-bg_diagonals-small_25_c5ddfc_40x40.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-bg_diagonals-small_25_c5ddfc_40x40.png rename to awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-bg_diagonals-small_25_c5ddfc_40x40.png diff --git a/awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-bg_diagonals-thick_20_e69700_40x40.png b/awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-bg_diagonals-thick_20_e69700_40x40.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-bg_diagonals-thick_20_e69700_40x40.png rename to awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-bg_diagonals-thick_20_e69700_40x40.png diff --git a/awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-bg_diagonals-thick_22_1484e6_40x40.png b/awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-bg_diagonals-thick_22_1484e6_40x40.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-bg_diagonals-thick_22_1484e6_40x40.png rename to awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-bg_diagonals-thick_22_1484e6_40x40.png diff --git a/awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-bg_diagonals-thick_26_2293f7_40x40.png b/awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-bg_diagonals-thick_26_2293f7_40x40.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-bg_diagonals-thick_26_2293f7_40x40.png rename to awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-bg_diagonals-thick_26_2293f7_40x40.png diff --git a/awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-bg_flat_0_e69700_40x100.png b/awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-bg_flat_0_e69700_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-bg_flat_0_e69700_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-bg_flat_0_e69700_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-bg_flat_0_e6b900_40x100.png b/awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-bg_flat_0_e6b900_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-bg_flat_0_e6b900_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-bg_flat_0_e6b900_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-bg_highlight-soft_100_f9f9f9_1x100.png b/awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-bg_highlight-soft_100_f9f9f9_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-bg_highlight-soft_100_f9f9f9_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-bg_highlight-soft_100_f9f9f9_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-bg_inset-hard_100_eeeeee_1x100.png b/awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-bg_inset-hard_100_eeeeee_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-bg_inset-hard_100_eeeeee_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-bg_inset-hard_100_eeeeee_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-icons_0a82eb_256x240.png b/awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-icons_0a82eb_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-icons_0a82eb_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-icons_0a82eb_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-icons_0b54d5_256x240.png b/awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-icons_0b54d5_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-icons_0b54d5_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-icons_0b54d5_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-icons_5fa5e3_256x240.png b/awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-icons_5fa5e3_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-icons_5fa5e3_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-icons_5fa5e3_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-icons_fcdd4a_256x240.png b/awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-icons_fcdd4a_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-icons_fcdd4a_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-icons_fcdd4a_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/excite-bike/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/excite-bike/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/excite-bike/jquery-ui.css b/awx/ui/client/lib/jquery-ui/themes/excite-bike/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/excite-bike/jquery-ui.css rename to awx/ui/client/lib/jquery-ui/themes/excite-bike/jquery-ui.css diff --git a/awx/ui/static/lib/jquery-ui/themes/excite-bike/jquery-ui.min.css b/awx/ui/client/lib/jquery-ui/themes/excite-bike/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/excite-bike/jquery-ui.min.css rename to awx/ui/client/lib/jquery-ui/themes/excite-bike/jquery-ui.min.css diff --git a/awx/ui/static/lib/jquery-ui/themes/excite-bike/theme.css b/awx/ui/client/lib/jquery-ui/themes/excite-bike/theme.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/excite-bike/theme.css rename to awx/ui/client/lib/jquery-ui/themes/excite-bike/theme.css diff --git a/awx/ui/static/lib/jquery-ui/themes/flick/images/animated-overlay.gif b/awx/ui/client/lib/jquery-ui/themes/flick/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/flick/images/animated-overlay.gif rename to awx/ui/client/lib/jquery-ui/themes/flick/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jquery-ui/themes/flick/images/ui-bg_flat_0_aaaaaa_40x100.png b/awx/ui/client/lib/jquery-ui/themes/flick/images/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/flick/images/ui-bg_flat_0_aaaaaa_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/flick/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/flick/images/ui-bg_flat_0_eeeeee_40x100.png b/awx/ui/client/lib/jquery-ui/themes/flick/images/ui-bg_flat_0_eeeeee_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/flick/images/ui-bg_flat_0_eeeeee_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/flick/images/ui-bg_flat_0_eeeeee_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/flick/images/ui-bg_flat_55_ffffff_40x100.png b/awx/ui/client/lib/jquery-ui/themes/flick/images/ui-bg_flat_55_ffffff_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/flick/images/ui-bg_flat_55_ffffff_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/flick/images/ui-bg_flat_55_ffffff_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/flick/images/ui-bg_flat_75_ffffff_40x100.png b/awx/ui/client/lib/jquery-ui/themes/flick/images/ui-bg_flat_75_ffffff_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/flick/images/ui-bg_flat_75_ffffff_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/flick/images/ui-bg_flat_75_ffffff_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/flick/images/ui-bg_glass_65_ffffff_1x400.png b/awx/ui/client/lib/jquery-ui/themes/flick/images/ui-bg_glass_65_ffffff_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/flick/images/ui-bg_glass_65_ffffff_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/flick/images/ui-bg_glass_65_ffffff_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/flick/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png b/awx/ui/client/lib/jquery-ui/themes/flick/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/flick/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/flick/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/flick/images/ui-bg_highlight-soft_25_0073ea_1x100.png b/awx/ui/client/lib/jquery-ui/themes/flick/images/ui-bg_highlight-soft_25_0073ea_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/flick/images/ui-bg_highlight-soft_25_0073ea_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/flick/images/ui-bg_highlight-soft_25_0073ea_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/flick/images/ui-bg_highlight-soft_50_dddddd_1x100.png b/awx/ui/client/lib/jquery-ui/themes/flick/images/ui-bg_highlight-soft_50_dddddd_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/flick/images/ui-bg_highlight-soft_50_dddddd_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/flick/images/ui-bg_highlight-soft_50_dddddd_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/flick/images/ui-icons_0073ea_256x240.png b/awx/ui/client/lib/jquery-ui/themes/flick/images/ui-icons_0073ea_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/flick/images/ui-icons_0073ea_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/flick/images/ui-icons_0073ea_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/flick/images/ui-icons_454545_256x240.png b/awx/ui/client/lib/jquery-ui/themes/flick/images/ui-icons_454545_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/flick/images/ui-icons_454545_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/flick/images/ui-icons_454545_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/flick/images/ui-icons_666666_256x240.png b/awx/ui/client/lib/jquery-ui/themes/flick/images/ui-icons_666666_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/flick/images/ui-icons_666666_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/flick/images/ui-icons_666666_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/flick/images/ui-icons_ff0084_256x240.png b/awx/ui/client/lib/jquery-ui/themes/flick/images/ui-icons_ff0084_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/flick/images/ui-icons_ff0084_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/flick/images/ui-icons_ff0084_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/flick/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jquery-ui/themes/flick/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/flick/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/flick/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/flick/jquery-ui.css b/awx/ui/client/lib/jquery-ui/themes/flick/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/flick/jquery-ui.css rename to awx/ui/client/lib/jquery-ui/themes/flick/jquery-ui.css diff --git a/awx/ui/static/lib/jquery-ui/themes/flick/jquery-ui.min.css b/awx/ui/client/lib/jquery-ui/themes/flick/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/flick/jquery-ui.min.css rename to awx/ui/client/lib/jquery-ui/themes/flick/jquery-ui.min.css diff --git a/awx/ui/static/lib/jquery-ui/themes/flick/theme.css b/awx/ui/client/lib/jquery-ui/themes/flick/theme.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/flick/theme.css rename to awx/ui/client/lib/jquery-ui/themes/flick/theme.css diff --git a/awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/animated-overlay.gif b/awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/animated-overlay.gif rename to awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_diagonals-small_40_db4865_40x40.png b/awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_diagonals-small_40_db4865_40x40.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_diagonals-small_40_db4865_40x40.png rename to awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_diagonals-small_40_db4865_40x40.png diff --git a/awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_diagonals-small_50_93c3cd_40x40.png b/awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_diagonals-small_50_93c3cd_40x40.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_diagonals-small_50_93c3cd_40x40.png rename to awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_diagonals-small_50_93c3cd_40x40.png diff --git a/awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_diagonals-small_50_ff3853_40x40.png b/awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_diagonals-small_50_ff3853_40x40.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_diagonals-small_50_ff3853_40x40.png rename to awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_diagonals-small_50_ff3853_40x40.png diff --git a/awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_diagonals-small_75_ccd232_40x40.png b/awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_diagonals-small_75_ccd232_40x40.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_diagonals-small_75_ccd232_40x40.png rename to awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_diagonals-small_75_ccd232_40x40.png diff --git a/awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_dots-medium_80_ffff38_4x4.png b/awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_dots-medium_80_ffff38_4x4.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_dots-medium_80_ffff38_4x4.png rename to awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_dots-medium_80_ffff38_4x4.png diff --git a/awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_dots-small_35_35414f_2x2.png b/awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_dots-small_35_35414f_2x2.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_dots-small_35_35414f_2x2.png rename to awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_dots-small_35_35414f_2x2.png diff --git a/awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_flat_75_ba9217_40x100.png b/awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_flat_75_ba9217_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_flat_75_ba9217_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_flat_75_ba9217_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_flat_75_ffffff_40x100.png b/awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_flat_75_ffffff_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_flat_75_ffffff_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_flat_75_ffffff_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_white-lines_85_f7f7ba_40x100.png b/awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_white-lines_85_f7f7ba_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_white-lines_85_f7f7ba_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-bg_white-lines_85_f7f7ba_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-icons_454545_256x240.png b/awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-icons_454545_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-icons_454545_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-icons_454545_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-icons_88a206_256x240.png b/awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-icons_88a206_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-icons_88a206_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-icons_88a206_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-icons_c02669_256x240.png b/awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-icons_c02669_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-icons_c02669_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-icons_c02669_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-icons_e1e463_256x240.png b/awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-icons_e1e463_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-icons_e1e463_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-icons_e1e463_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-icons_ffeb33_256x240.png b/awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-icons_ffeb33_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-icons_ffeb33_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-icons_ffeb33_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/hot-sneaks/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/hot-sneaks/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/hot-sneaks/jquery-ui.css b/awx/ui/client/lib/jquery-ui/themes/hot-sneaks/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/hot-sneaks/jquery-ui.css rename to awx/ui/client/lib/jquery-ui/themes/hot-sneaks/jquery-ui.css diff --git a/awx/ui/static/lib/jquery-ui/themes/hot-sneaks/jquery-ui.min.css b/awx/ui/client/lib/jquery-ui/themes/hot-sneaks/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/hot-sneaks/jquery-ui.min.css rename to awx/ui/client/lib/jquery-ui/themes/hot-sneaks/jquery-ui.min.css diff --git a/awx/ui/static/lib/jquery-ui/themes/hot-sneaks/theme.css b/awx/ui/client/lib/jquery-ui/themes/hot-sneaks/theme.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/hot-sneaks/theme.css rename to awx/ui/client/lib/jquery-ui/themes/hot-sneaks/theme.css diff --git a/awx/ui/static/lib/jquery-ui/themes/humanity/images/animated-overlay.gif b/awx/ui/client/lib/jquery-ui/themes/humanity/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/humanity/images/animated-overlay.gif rename to awx/ui/client/lib/jquery-ui/themes/humanity/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-bg_flat_75_aaaaaa_40x100.png b/awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-bg_flat_75_aaaaaa_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-bg_flat_75_aaaaaa_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-bg_flat_75_aaaaaa_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-bg_glass_100_f5f0e5_1x400.png b/awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-bg_glass_100_f5f0e5_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-bg_glass_100_f5f0e5_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-bg_glass_100_f5f0e5_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-bg_glass_25_cb842e_1x400.png b/awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-bg_glass_25_cb842e_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-bg_glass_25_cb842e_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-bg_glass_25_cb842e_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-bg_glass_70_ede4d4_1x400.png b/awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-bg_glass_70_ede4d4_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-bg_glass_70_ede4d4_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-bg_glass_70_ede4d4_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-bg_highlight-hard_100_f4f0ec_1x100.png b/awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-bg_highlight-hard_100_f4f0ec_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-bg_highlight-hard_100_f4f0ec_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-bg_highlight-hard_100_f4f0ec_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-bg_highlight-hard_65_fee4bd_1x100.png b/awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-bg_highlight-hard_65_fee4bd_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-bg_highlight-hard_65_fee4bd_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-bg_highlight-hard_65_fee4bd_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-bg_highlight-hard_75_f5f5b5_1x100.png b/awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-bg_highlight-hard_75_f5f5b5_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-bg_highlight-hard_75_f5f5b5_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-bg_highlight-hard_75_f5f5b5_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-bg_inset-soft_100_f4f0ec_1x100.png b/awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-bg_inset-soft_100_f4f0ec_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-bg_inset-soft_100_f4f0ec_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-bg_inset-soft_100_f4f0ec_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-icons_c47a23_256x240.png b/awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-icons_c47a23_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-icons_c47a23_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-icons_c47a23_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-icons_cb672b_256x240.png b/awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-icons_cb672b_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-icons_cb672b_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-icons_cb672b_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-icons_f08000_256x240.png b/awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-icons_f08000_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-icons_f08000_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-icons_f08000_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-icons_f35f07_256x240.png b/awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-icons_f35f07_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-icons_f35f07_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-icons_f35f07_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-icons_ff7519_256x240.png b/awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-icons_ff7519_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-icons_ff7519_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-icons_ff7519_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/humanity/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/humanity/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/humanity/jquery-ui.css b/awx/ui/client/lib/jquery-ui/themes/humanity/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/humanity/jquery-ui.css rename to awx/ui/client/lib/jquery-ui/themes/humanity/jquery-ui.css diff --git a/awx/ui/static/lib/jquery-ui/themes/humanity/jquery-ui.min.css b/awx/ui/client/lib/jquery-ui/themes/humanity/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/humanity/jquery-ui.min.css rename to awx/ui/client/lib/jquery-ui/themes/humanity/jquery-ui.min.css diff --git a/awx/ui/static/lib/jquery-ui/themes/humanity/theme.css b/awx/ui/client/lib/jquery-ui/themes/humanity/theme.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/humanity/theme.css rename to awx/ui/client/lib/jquery-ui/themes/humanity/theme.css diff --git a/awx/ui/static/lib/jquery-ui/themes/le-frog/images/animated-overlay.gif b/awx/ui/client/lib/jquery-ui/themes/le-frog/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/le-frog/images/animated-overlay.gif rename to awx/ui/client/lib/jquery-ui/themes/le-frog/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-bg_diagonals-small_0_aaaaaa_40x40.png b/awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-bg_diagonals-small_0_aaaaaa_40x40.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-bg_diagonals-small_0_aaaaaa_40x40.png rename to awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-bg_diagonals-small_0_aaaaaa_40x40.png diff --git a/awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-bg_diagonals-thick_15_444444_40x40.png b/awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-bg_diagonals-thick_15_444444_40x40.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-bg_diagonals-thick_15_444444_40x40.png rename to awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-bg_diagonals-thick_15_444444_40x40.png diff --git a/awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-bg_diagonals-thick_95_ffdc2e_40x40.png b/awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-bg_diagonals-thick_95_ffdc2e_40x40.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-bg_diagonals-thick_95_ffdc2e_40x40.png rename to awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-bg_diagonals-thick_95_ffdc2e_40x40.png diff --git a/awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-bg_glass_55_fbf5d0_1x400.png b/awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-bg_glass_55_fbf5d0_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-bg_glass_55_fbf5d0_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-bg_glass_55_fbf5d0_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-bg_highlight-hard_30_285c00_1x100.png b/awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-bg_highlight-hard_30_285c00_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-bg_highlight-hard_30_285c00_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-bg_highlight-hard_30_285c00_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-bg_highlight-soft_33_3a8104_1x100.png b/awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-bg_highlight-soft_33_3a8104_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-bg_highlight-soft_33_3a8104_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-bg_highlight-soft_33_3a8104_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-bg_highlight-soft_50_4eb305_1x100.png b/awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-bg_highlight-soft_50_4eb305_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-bg_highlight-soft_50_4eb305_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-bg_highlight-soft_50_4eb305_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-bg_highlight-soft_60_4ca20b_1x100.png b/awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-bg_highlight-soft_60_4ca20b_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-bg_highlight-soft_60_4ca20b_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-bg_highlight-soft_60_4ca20b_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-bg_inset-soft_10_285c00_1x100.png b/awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-bg_inset-soft_10_285c00_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-bg_inset-soft_10_285c00_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-bg_inset-soft_10_285c00_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-icons_4eb305_256x240.png b/awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-icons_4eb305_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-icons_4eb305_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-icons_4eb305_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-icons_72b42d_256x240.png b/awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-icons_72b42d_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-icons_72b42d_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-icons_72b42d_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-icons_cd0a0a_256x240.png b/awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-icons_cd0a0a_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-icons_cd0a0a_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-icons_cd0a0a_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/le-frog/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/le-frog/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/le-frog/jquery-ui.css b/awx/ui/client/lib/jquery-ui/themes/le-frog/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/le-frog/jquery-ui.css rename to awx/ui/client/lib/jquery-ui/themes/le-frog/jquery-ui.css diff --git a/awx/ui/static/lib/jquery-ui/themes/le-frog/jquery-ui.min.css b/awx/ui/client/lib/jquery-ui/themes/le-frog/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/le-frog/jquery-ui.min.css rename to awx/ui/client/lib/jquery-ui/themes/le-frog/jquery-ui.min.css diff --git a/awx/ui/static/lib/jquery-ui/themes/le-frog/theme.css b/awx/ui/client/lib/jquery-ui/themes/le-frog/theme.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/le-frog/theme.css rename to awx/ui/client/lib/jquery-ui/themes/le-frog/theme.css diff --git a/awx/ui/static/lib/jquery-ui/themes/mint-choc/images/animated-overlay.gif b/awx/ui/client/lib/jquery-ui/themes/mint-choc/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/mint-choc/images/animated-overlay.gif rename to awx/ui/client/lib/jquery-ui/themes/mint-choc/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-bg_flat_0_aaaaaa_40x100.png b/awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-bg_flat_0_aaaaaa_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-bg_glass_15_5f391b_1x400.png b/awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-bg_glass_15_5f391b_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-bg_glass_15_5f391b_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-bg_glass_15_5f391b_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-bg_gloss-wave_20_1c160d_500x100.png b/awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-bg_gloss-wave_20_1c160d_500x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-bg_gloss-wave_20_1c160d_500x100.png rename to awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-bg_gloss-wave_20_1c160d_500x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-bg_gloss-wave_25_453326_500x100.png b/awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-bg_gloss-wave_25_453326_500x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-bg_gloss-wave_25_453326_500x100.png rename to awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-bg_gloss-wave_25_453326_500x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-bg_gloss-wave_30_44372c_500x100.png b/awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-bg_gloss-wave_30_44372c_500x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-bg_gloss-wave_30_44372c_500x100.png rename to awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-bg_gloss-wave_30_44372c_500x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-bg_highlight-soft_20_201913_1x100.png b/awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-bg_highlight-soft_20_201913_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-bg_highlight-soft_20_201913_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-bg_highlight-soft_20_201913_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-bg_highlight-soft_20_619226_1x100.png b/awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-bg_highlight-soft_20_619226_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-bg_highlight-soft_20_619226_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-bg_highlight-soft_20_619226_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-bg_inset-soft_10_201913_1x100.png b/awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-bg_inset-soft_10_201913_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-bg_inset-soft_10_201913_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-bg_inset-soft_10_201913_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-icons_222222_256x240.png b/awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-icons_222222_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-icons_222222_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-icons_222222_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-icons_9bcc60_256x240.png b/awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-icons_9bcc60_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-icons_9bcc60_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-icons_9bcc60_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-icons_add978_256x240.png b/awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-icons_add978_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-icons_add978_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-icons_add978_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-icons_e3ddc9_256x240.png b/awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-icons_e3ddc9_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-icons_e3ddc9_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-icons_e3ddc9_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-icons_f1fd86_256x240.png b/awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-icons_f1fd86_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-icons_f1fd86_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-icons_f1fd86_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/mint-choc/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/mint-choc/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/mint-choc/jquery-ui.css b/awx/ui/client/lib/jquery-ui/themes/mint-choc/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/mint-choc/jquery-ui.css rename to awx/ui/client/lib/jquery-ui/themes/mint-choc/jquery-ui.css diff --git a/awx/ui/static/lib/jquery-ui/themes/mint-choc/jquery-ui.min.css b/awx/ui/client/lib/jquery-ui/themes/mint-choc/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/mint-choc/jquery-ui.min.css rename to awx/ui/client/lib/jquery-ui/themes/mint-choc/jquery-ui.min.css diff --git a/awx/ui/static/lib/jquery-ui/themes/mint-choc/theme.css b/awx/ui/client/lib/jquery-ui/themes/mint-choc/theme.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/mint-choc/theme.css rename to awx/ui/client/lib/jquery-ui/themes/mint-choc/theme.css diff --git a/awx/ui/static/lib/jquery-ui/themes/overcast/images/animated-overlay.gif b/awx/ui/client/lib/jquery-ui/themes/overcast/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/overcast/images/animated-overlay.gif rename to awx/ui/client/lib/jquery-ui/themes/overcast/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-bg_flat_0_aaaaaa_40x100.png b/awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-bg_flat_0_aaaaaa_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-bg_flat_0_eeeeee_40x100.png b/awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-bg_flat_0_eeeeee_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-bg_flat_0_eeeeee_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-bg_flat_0_eeeeee_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-bg_flat_55_c0402a_40x100.png b/awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-bg_flat_55_c0402a_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-bg_flat_55_c0402a_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-bg_flat_55_c0402a_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-bg_flat_55_eeeeee_40x100.png b/awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-bg_flat_55_eeeeee_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-bg_flat_55_eeeeee_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-bg_flat_55_eeeeee_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-bg_glass_100_f8f8f8_1x400.png b/awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-bg_glass_100_f8f8f8_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-bg_glass_100_f8f8f8_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-bg_glass_100_f8f8f8_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-bg_glass_35_dddddd_1x400.png b/awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-bg_glass_35_dddddd_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-bg_glass_35_dddddd_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-bg_glass_35_dddddd_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-bg_glass_60_eeeeee_1x400.png b/awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-bg_glass_60_eeeeee_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-bg_glass_60_eeeeee_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-bg_glass_60_eeeeee_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-bg_inset-hard_75_999999_1x100.png b/awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-bg_inset-hard_75_999999_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-bg_inset-hard_75_999999_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-bg_inset-hard_75_999999_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-bg_inset-soft_50_c9c9c9_1x100.png b/awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-bg_inset-soft_50_c9c9c9_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-bg_inset-soft_50_c9c9c9_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-bg_inset-soft_50_c9c9c9_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-icons_3383bb_256x240.png b/awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-icons_3383bb_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-icons_3383bb_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-icons_3383bb_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-icons_454545_256x240.png b/awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-icons_454545_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-icons_454545_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-icons_454545_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-icons_70b2e1_256x240.png b/awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-icons_70b2e1_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-icons_70b2e1_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-icons_70b2e1_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-icons_999999_256x240.png b/awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-icons_999999_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-icons_999999_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-icons_999999_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-icons_fbc856_256x240.png b/awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-icons_fbc856_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/overcast/images/ui-icons_fbc856_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/overcast/images/ui-icons_fbc856_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/overcast/jquery-ui.css b/awx/ui/client/lib/jquery-ui/themes/overcast/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/overcast/jquery-ui.css rename to awx/ui/client/lib/jquery-ui/themes/overcast/jquery-ui.css diff --git a/awx/ui/static/lib/jquery-ui/themes/overcast/jquery-ui.min.css b/awx/ui/client/lib/jquery-ui/themes/overcast/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/overcast/jquery-ui.min.css rename to awx/ui/client/lib/jquery-ui/themes/overcast/jquery-ui.min.css diff --git a/awx/ui/static/lib/jquery-ui/themes/overcast/theme.css b/awx/ui/client/lib/jquery-ui/themes/overcast/theme.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/overcast/theme.css rename to awx/ui/client/lib/jquery-ui/themes/overcast/theme.css diff --git a/awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/animated-overlay.gif b/awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/animated-overlay.gif rename to awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_diagonal-maze_20_6e4f1c_10x10.png b/awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_diagonal-maze_20_6e4f1c_10x10.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_diagonal-maze_20_6e4f1c_10x10.png rename to awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_diagonal-maze_20_6e4f1c_10x10.png diff --git a/awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_diagonal-maze_40_000000_10x10.png b/awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_diagonal-maze_40_000000_10x10.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_diagonal-maze_40_000000_10x10.png rename to awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_diagonal-maze_40_000000_10x10.png diff --git a/awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_10_eceadf_60x60.png b/awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_10_eceadf_60x60.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_10_eceadf_60x60.png rename to awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_10_eceadf_60x60.png diff --git a/awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_10_f8f7f6_60x60.png b/awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_10_f8f7f6_60x60.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_10_f8f7f6_60x60.png rename to awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_10_f8f7f6_60x60.png diff --git a/awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_15_eceadf_60x60.png b/awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_15_eceadf_60x60.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_15_eceadf_60x60.png rename to awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_15_eceadf_60x60.png diff --git a/awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_15_f7f3de_60x60.png b/awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_15_f7f3de_60x60.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_15_f7f3de_60x60.png rename to awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_15_f7f3de_60x60.png diff --git a/awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_15_ffffff_60x60.png b/awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_15_ffffff_60x60.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_15_ffffff_60x60.png rename to awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_15_ffffff_60x60.png diff --git a/awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_65_654b24_60x60.png b/awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_65_654b24_60x60.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_65_654b24_60x60.png rename to awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_65_654b24_60x60.png diff --git a/awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_68_b83400_60x60.png b/awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_68_b83400_60x60.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_68_b83400_60x60.png rename to awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-bg_fine-grain_68_b83400_60x60.png diff --git a/awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-icons_222222_256x240.png b/awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-icons_222222_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-icons_222222_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-icons_222222_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-icons_3572ac_256x240.png b/awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-icons_3572ac_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-icons_3572ac_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-icons_3572ac_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-icons_8c291d_256x240.png b/awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-icons_8c291d_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-icons_8c291d_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-icons_8c291d_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-icons_b83400_256x240.png b/awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-icons_b83400_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-icons_b83400_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-icons_b83400_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-icons_fbdb93_256x240.png b/awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-icons_fbdb93_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-icons_fbdb93_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-icons_fbdb93_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/pepper-grinder/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/pepper-grinder/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/pepper-grinder/jquery-ui.css b/awx/ui/client/lib/jquery-ui/themes/pepper-grinder/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/pepper-grinder/jquery-ui.css rename to awx/ui/client/lib/jquery-ui/themes/pepper-grinder/jquery-ui.css diff --git a/awx/ui/static/lib/jquery-ui/themes/pepper-grinder/jquery-ui.min.css b/awx/ui/client/lib/jquery-ui/themes/pepper-grinder/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/pepper-grinder/jquery-ui.min.css rename to awx/ui/client/lib/jquery-ui/themes/pepper-grinder/jquery-ui.min.css diff --git a/awx/ui/static/lib/jquery-ui/themes/pepper-grinder/theme.css b/awx/ui/client/lib/jquery-ui/themes/pepper-grinder/theme.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/pepper-grinder/theme.css rename to awx/ui/client/lib/jquery-ui/themes/pepper-grinder/theme.css diff --git a/awx/ui/static/lib/jquery-ui/themes/redmond/images/animated-overlay.gif b/awx/ui/client/lib/jquery-ui/themes/redmond/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/redmond/images/animated-overlay.gif rename to awx/ui/client/lib/jquery-ui/themes/redmond/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png b/awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-bg_flat_55_fbec88_40x100.png b/awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-bg_flat_55_fbec88_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-bg_flat_55_fbec88_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-bg_flat_55_fbec88_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png b/awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-bg_glass_85_dfeffc_1x400.png b/awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-bg_glass_85_dfeffc_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-bg_glass_85_dfeffc_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-bg_glass_85_dfeffc_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-bg_glass_95_fef1ec_1x400.png b/awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-bg_glass_95_fef1ec_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-bg_glass_95_fef1ec_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-bg_glass_95_fef1ec_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png b/awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png rename to awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png b/awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png b/awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-icons_217bc0_256x240.png b/awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-icons_217bc0_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-icons_217bc0_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-icons_217bc0_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-icons_2e83ff_256x240.png b/awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-icons_2e83ff_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-icons_2e83ff_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-icons_2e83ff_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-icons_469bdd_256x240.png b/awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-icons_469bdd_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-icons_469bdd_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-icons_469bdd_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-icons_6da8d5_256x240.png b/awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-icons_6da8d5_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-icons_6da8d5_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-icons_6da8d5_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-icons_cd0a0a_256x240.png b/awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-icons_cd0a0a_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-icons_cd0a0a_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-icons_cd0a0a_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-icons_d8e7f3_256x240.png b/awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-icons_d8e7f3_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-icons_d8e7f3_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-icons_d8e7f3_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-icons_f9bd01_256x240.png b/awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-icons_f9bd01_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/redmond/images/ui-icons_f9bd01_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/redmond/images/ui-icons_f9bd01_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/redmond/jquery-ui.css b/awx/ui/client/lib/jquery-ui/themes/redmond/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/redmond/jquery-ui.css rename to awx/ui/client/lib/jquery-ui/themes/redmond/jquery-ui.css diff --git a/awx/ui/static/lib/jquery-ui/themes/redmond/jquery-ui.min.css b/awx/ui/client/lib/jquery-ui/themes/redmond/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/redmond/jquery-ui.min.css rename to awx/ui/client/lib/jquery-ui/themes/redmond/jquery-ui.min.css diff --git a/awx/ui/static/lib/jquery-ui/themes/redmond/theme.css b/awx/ui/client/lib/jquery-ui/themes/redmond/theme.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/redmond/theme.css rename to awx/ui/client/lib/jquery-ui/themes/redmond/theme.css diff --git a/awx/ui/static/lib/jquery-ui/themes/smoothness/images/animated-overlay.gif b/awx/ui/client/lib/jquery-ui/themes/smoothness/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/smoothness/images/animated-overlay.gif rename to awx/ui/client/lib/jquery-ui/themes/smoothness/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png b/awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-bg_flat_75_ffffff_40x100.png b/awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-bg_flat_75_ffffff_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-bg_flat_75_ffffff_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-bg_flat_75_ffffff_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png b/awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-bg_glass_65_ffffff_1x400.png b/awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-bg_glass_65_ffffff_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-bg_glass_65_ffffff_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-bg_glass_65_ffffff_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-bg_glass_75_dadada_1x400.png b/awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-bg_glass_75_dadada_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-bg_glass_75_dadada_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-bg_glass_75_dadada_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png b/awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png b/awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-icons_222222_256x240.png b/awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-icons_222222_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-icons_222222_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-icons_222222_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-icons_2e83ff_256x240.png b/awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-icons_2e83ff_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-icons_2e83ff_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-icons_2e83ff_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-icons_454545_256x240.png b/awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-icons_454545_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-icons_454545_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-icons_454545_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-icons_888888_256x240.png b/awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-icons_888888_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-icons_888888_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-icons_888888_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-icons_cd0a0a_256x240.png b/awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-icons_cd0a0a_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/smoothness/images/ui-icons_cd0a0a_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/smoothness/images/ui-icons_cd0a0a_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/smoothness/jquery-ui.css b/awx/ui/client/lib/jquery-ui/themes/smoothness/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/smoothness/jquery-ui.css rename to awx/ui/client/lib/jquery-ui/themes/smoothness/jquery-ui.css diff --git a/awx/ui/static/lib/jquery-ui/themes/smoothness/jquery-ui.min.css b/awx/ui/client/lib/jquery-ui/themes/smoothness/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/smoothness/jquery-ui.min.css rename to awx/ui/client/lib/jquery-ui/themes/smoothness/jquery-ui.min.css diff --git a/awx/ui/static/lib/jquery-ui/themes/smoothness/theme.css b/awx/ui/client/lib/jquery-ui/themes/smoothness/theme.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/smoothness/theme.css rename to awx/ui/client/lib/jquery-ui/themes/smoothness/theme.css diff --git a/awx/ui/static/lib/jquery-ui/themes/south-street/images/animated-overlay.gif b/awx/ui/client/lib/jquery-ui/themes/south-street/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/south-street/images/animated-overlay.gif rename to awx/ui/client/lib/jquery-ui/themes/south-street/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-bg_glass_55_fcf0ba_1x400.png b/awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-bg_glass_55_fcf0ba_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-bg_glass_55_fcf0ba_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-bg_glass_55_fcf0ba_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-bg_gloss-wave_100_ece8da_500x100.png b/awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-bg_gloss-wave_100_ece8da_500x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-bg_gloss-wave_100_ece8da_500x100.png rename to awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-bg_gloss-wave_100_ece8da_500x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-bg_highlight-hard_100_f5f3e5_1x100.png b/awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-bg_highlight-hard_100_f5f3e5_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-bg_highlight-hard_100_f5f3e5_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-bg_highlight-hard_100_f5f3e5_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-bg_highlight-hard_100_fafaf4_1x100.png b/awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-bg_highlight-hard_100_fafaf4_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-bg_highlight-hard_100_fafaf4_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-bg_highlight-hard_100_fafaf4_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-bg_highlight-hard_15_459e00_1x100.png b/awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-bg_highlight-hard_15_459e00_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-bg_highlight-hard_15_459e00_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-bg_highlight-hard_15_459e00_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-bg_highlight-hard_95_cccccc_1x100.png b/awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-bg_highlight-hard_95_cccccc_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-bg_highlight-hard_95_cccccc_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-bg_highlight-hard_95_cccccc_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-bg_highlight-soft_25_67b021_1x100.png b/awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-bg_highlight-soft_25_67b021_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-bg_highlight-soft_25_67b021_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-bg_highlight-soft_25_67b021_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-bg_highlight-soft_95_ffedad_1x100.png b/awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-bg_highlight-soft_95_ffedad_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-bg_highlight-soft_95_ffedad_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-bg_highlight-soft_95_ffedad_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-bg_inset-soft_15_2b2922_1x100.png b/awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-bg_inset-soft_15_2b2922_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-bg_inset-soft_15_2b2922_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-bg_inset-soft_15_2b2922_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-icons_808080_256x240.png b/awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-icons_808080_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-icons_808080_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-icons_808080_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-icons_847e71_256x240.png b/awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-icons_847e71_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-icons_847e71_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-icons_847e71_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-icons_8DC262_256x240.png b/awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-icons_8DC262_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-icons_8DC262_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-icons_8DC262_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-icons_cd0a0a_256x240.png b/awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-icons_cd0a0a_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-icons_cd0a0a_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-icons_cd0a0a_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-icons_eeeeee_256x240.png b/awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-icons_eeeeee_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-icons_eeeeee_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-icons_eeeeee_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/south-street/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/south-street/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/south-street/jquery-ui.css b/awx/ui/client/lib/jquery-ui/themes/south-street/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/south-street/jquery-ui.css rename to awx/ui/client/lib/jquery-ui/themes/south-street/jquery-ui.css diff --git a/awx/ui/static/lib/jquery-ui/themes/south-street/jquery-ui.min.css b/awx/ui/client/lib/jquery-ui/themes/south-street/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/south-street/jquery-ui.min.css rename to awx/ui/client/lib/jquery-ui/themes/south-street/jquery-ui.min.css diff --git a/awx/ui/static/lib/jquery-ui/themes/south-street/theme.css b/awx/ui/client/lib/jquery-ui/themes/south-street/theme.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/south-street/theme.css rename to awx/ui/client/lib/jquery-ui/themes/south-street/theme.css diff --git a/awx/ui/static/lib/jquery-ui/themes/start/images/animated-overlay.gif b/awx/ui/client/lib/jquery-ui/themes/start/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/start/images/animated-overlay.gif rename to awx/ui/client/lib/jquery-ui/themes/start/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jquery-ui/themes/start/images/ui-bg_flat_55_999999_40x100.png b/awx/ui/client/lib/jquery-ui/themes/start/images/ui-bg_flat_55_999999_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/start/images/ui-bg_flat_55_999999_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/start/images/ui-bg_flat_55_999999_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/start/images/ui-bg_flat_75_aaaaaa_40x100.png b/awx/ui/client/lib/jquery-ui/themes/start/images/ui-bg_flat_75_aaaaaa_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/start/images/ui-bg_flat_75_aaaaaa_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/start/images/ui-bg_flat_75_aaaaaa_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/start/images/ui-bg_glass_45_0078ae_1x400.png b/awx/ui/client/lib/jquery-ui/themes/start/images/ui-bg_glass_45_0078ae_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/start/images/ui-bg_glass_45_0078ae_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/start/images/ui-bg_glass_45_0078ae_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/start/images/ui-bg_glass_55_f8da4e_1x400.png b/awx/ui/client/lib/jquery-ui/themes/start/images/ui-bg_glass_55_f8da4e_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/start/images/ui-bg_glass_55_f8da4e_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/start/images/ui-bg_glass_55_f8da4e_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/start/images/ui-bg_glass_75_79c9ec_1x400.png b/awx/ui/client/lib/jquery-ui/themes/start/images/ui-bg_glass_75_79c9ec_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/start/images/ui-bg_glass_75_79c9ec_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/start/images/ui-bg_glass_75_79c9ec_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/start/images/ui-bg_gloss-wave_45_e14f1c_500x100.png b/awx/ui/client/lib/jquery-ui/themes/start/images/ui-bg_gloss-wave_45_e14f1c_500x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/start/images/ui-bg_gloss-wave_45_e14f1c_500x100.png rename to awx/ui/client/lib/jquery-ui/themes/start/images/ui-bg_gloss-wave_45_e14f1c_500x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/start/images/ui-bg_gloss-wave_50_6eac2c_500x100.png b/awx/ui/client/lib/jquery-ui/themes/start/images/ui-bg_gloss-wave_50_6eac2c_500x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/start/images/ui-bg_gloss-wave_50_6eac2c_500x100.png rename to awx/ui/client/lib/jquery-ui/themes/start/images/ui-bg_gloss-wave_50_6eac2c_500x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/start/images/ui-bg_gloss-wave_75_2191c0_500x100.png b/awx/ui/client/lib/jquery-ui/themes/start/images/ui-bg_gloss-wave_75_2191c0_500x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/start/images/ui-bg_gloss-wave_75_2191c0_500x100.png rename to awx/ui/client/lib/jquery-ui/themes/start/images/ui-bg_gloss-wave_75_2191c0_500x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/start/images/ui-bg_inset-hard_100_fcfdfd_1x100.png b/awx/ui/client/lib/jquery-ui/themes/start/images/ui-bg_inset-hard_100_fcfdfd_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/start/images/ui-bg_inset-hard_100_fcfdfd_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/start/images/ui-bg_inset-hard_100_fcfdfd_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/start/images/ui-icons_0078ae_256x240.png b/awx/ui/client/lib/jquery-ui/themes/start/images/ui-icons_0078ae_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/start/images/ui-icons_0078ae_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/start/images/ui-icons_0078ae_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/start/images/ui-icons_056b93_256x240.png b/awx/ui/client/lib/jquery-ui/themes/start/images/ui-icons_056b93_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/start/images/ui-icons_056b93_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/start/images/ui-icons_056b93_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/start/images/ui-icons_d8e7f3_256x240.png b/awx/ui/client/lib/jquery-ui/themes/start/images/ui-icons_d8e7f3_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/start/images/ui-icons_d8e7f3_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/start/images/ui-icons_d8e7f3_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/start/images/ui-icons_e0fdff_256x240.png b/awx/ui/client/lib/jquery-ui/themes/start/images/ui-icons_e0fdff_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/start/images/ui-icons_e0fdff_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/start/images/ui-icons_e0fdff_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/start/images/ui-icons_f5e175_256x240.png b/awx/ui/client/lib/jquery-ui/themes/start/images/ui-icons_f5e175_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/start/images/ui-icons_f5e175_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/start/images/ui-icons_f5e175_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/start/images/ui-icons_f7a50d_256x240.png b/awx/ui/client/lib/jquery-ui/themes/start/images/ui-icons_f7a50d_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/start/images/ui-icons_f7a50d_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/start/images/ui-icons_f7a50d_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/start/images/ui-icons_fcd113_256x240.png b/awx/ui/client/lib/jquery-ui/themes/start/images/ui-icons_fcd113_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/start/images/ui-icons_fcd113_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/start/images/ui-icons_fcd113_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/start/jquery-ui.css b/awx/ui/client/lib/jquery-ui/themes/start/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/start/jquery-ui.css rename to awx/ui/client/lib/jquery-ui/themes/start/jquery-ui.css diff --git a/awx/ui/static/lib/jquery-ui/themes/start/jquery-ui.min.css b/awx/ui/client/lib/jquery-ui/themes/start/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/start/jquery-ui.min.css rename to awx/ui/client/lib/jquery-ui/themes/start/jquery-ui.min.css diff --git a/awx/ui/static/lib/jquery-ui/themes/start/theme.css b/awx/ui/client/lib/jquery-ui/themes/start/theme.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/start/theme.css rename to awx/ui/client/lib/jquery-ui/themes/start/theme.css diff --git a/awx/ui/static/lib/jquery-ui/themes/sunny/images/animated-overlay.gif b/awx/ui/client/lib/jquery-ui/themes/sunny/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/sunny/images/animated-overlay.gif rename to awx/ui/client/lib/jquery-ui/themes/sunny/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-bg_diagonals-medium_20_d34d17_40x40.png b/awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-bg_diagonals-medium_20_d34d17_40x40.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-bg_diagonals-medium_20_d34d17_40x40.png rename to awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-bg_diagonals-medium_20_d34d17_40x40.png diff --git a/awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-bg_flat_30_cccccc_40x100.png b/awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-bg_flat_30_cccccc_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-bg_flat_30_cccccc_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-bg_flat_30_cccccc_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-bg_flat_50_5c5c5c_40x100.png b/awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-bg_flat_50_5c5c5c_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-bg_flat_50_5c5c5c_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-bg_flat_50_5c5c5c_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-bg_gloss-wave_45_817865_500x100.png b/awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-bg_gloss-wave_45_817865_500x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-bg_gloss-wave_45_817865_500x100.png rename to awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-bg_gloss-wave_45_817865_500x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-bg_gloss-wave_60_fece2f_500x100.png b/awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-bg_gloss-wave_60_fece2f_500x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-bg_gloss-wave_60_fece2f_500x100.png rename to awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-bg_gloss-wave_60_fece2f_500x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-bg_gloss-wave_70_ffdd57_500x100.png b/awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-bg_gloss-wave_70_ffdd57_500x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-bg_gloss-wave_70_ffdd57_500x100.png rename to awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-bg_gloss-wave_70_ffdd57_500x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-bg_gloss-wave_90_fff9e5_500x100.png b/awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-bg_gloss-wave_90_fff9e5_500x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-bg_gloss-wave_90_fff9e5_500x100.png rename to awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-bg_gloss-wave_90_fff9e5_500x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-bg_highlight-soft_100_feeebd_1x100.png b/awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-bg_highlight-soft_100_feeebd_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-bg_highlight-soft_100_feeebd_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-bg_highlight-soft_100_feeebd_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-bg_inset-soft_30_ffffff_1x100.png b/awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-bg_inset-soft_30_ffffff_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-bg_inset-soft_30_ffffff_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-bg_inset-soft_30_ffffff_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-icons_3d3d3d_256x240.png b/awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-icons_3d3d3d_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-icons_3d3d3d_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-icons_3d3d3d_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-icons_bd7b00_256x240.png b/awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-icons_bd7b00_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-icons_bd7b00_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-icons_bd7b00_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-icons_d19405_256x240.png b/awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-icons_d19405_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-icons_d19405_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-icons_d19405_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-icons_eb990f_256x240.png b/awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-icons_eb990f_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-icons_eb990f_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-icons_eb990f_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-icons_ed9f26_256x240.png b/awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-icons_ed9f26_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-icons_ed9f26_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-icons_ed9f26_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-icons_fadc7a_256x240.png b/awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-icons_fadc7a_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-icons_fadc7a_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-icons_fadc7a_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-icons_ffe180_256x240.png b/awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-icons_ffe180_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/sunny/images/ui-icons_ffe180_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/sunny/images/ui-icons_ffe180_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/sunny/jquery-ui.css b/awx/ui/client/lib/jquery-ui/themes/sunny/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/sunny/jquery-ui.css rename to awx/ui/client/lib/jquery-ui/themes/sunny/jquery-ui.css diff --git a/awx/ui/static/lib/jquery-ui/themes/sunny/jquery-ui.min.css b/awx/ui/client/lib/jquery-ui/themes/sunny/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/sunny/jquery-ui.min.css rename to awx/ui/client/lib/jquery-ui/themes/sunny/jquery-ui.min.css diff --git a/awx/ui/static/lib/jquery-ui/themes/sunny/theme.css b/awx/ui/client/lib/jquery-ui/themes/sunny/theme.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/sunny/theme.css rename to awx/ui/client/lib/jquery-ui/themes/sunny/theme.css diff --git a/awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/animated-overlay.gif b/awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/animated-overlay.gif rename to awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-bg_diamond_10_4f4221_10x8.png b/awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-bg_diamond_10_4f4221_10x8.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-bg_diamond_10_4f4221_10x8.png rename to awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-bg_diamond_10_4f4221_10x8.png diff --git a/awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-bg_diamond_20_372806_10x8.png b/awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-bg_diamond_20_372806_10x8.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-bg_diamond_20_372806_10x8.png rename to awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-bg_diamond_20_372806_10x8.png diff --git a/awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-bg_diamond_25_675423_10x8.png b/awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-bg_diamond_25_675423_10x8.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-bg_diamond_25_675423_10x8.png rename to awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-bg_diamond_25_675423_10x8.png diff --git a/awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-bg_diamond_25_d5ac5d_10x8.png b/awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-bg_diamond_25_d5ac5d_10x8.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-bg_diamond_25_d5ac5d_10x8.png rename to awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-bg_diamond_25_d5ac5d_10x8.png diff --git a/awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-bg_diamond_8_261803_10x8.png b/awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-bg_diamond_8_261803_10x8.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-bg_diamond_8_261803_10x8.png rename to awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-bg_diamond_8_261803_10x8.png diff --git a/awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-bg_diamond_8_443113_10x8.png b/awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-bg_diamond_8_443113_10x8.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-bg_diamond_8_443113_10x8.png rename to awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-bg_diamond_8_443113_10x8.png diff --git a/awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-bg_flat_75_ddd4b0_40x100.png b/awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-bg_flat_75_ddd4b0_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-bg_flat_75_ddd4b0_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-bg_flat_75_ddd4b0_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-bg_highlight-hard_65_fee4bd_1x100.png b/awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-bg_highlight-hard_65_fee4bd_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-bg_highlight-hard_65_fee4bd_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-bg_highlight-hard_65_fee4bd_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-icons_070603_256x240.png b/awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-icons_070603_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-icons_070603_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-icons_070603_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-icons_e8e2b5_256x240.png b/awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-icons_e8e2b5_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-icons_e8e2b5_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-icons_e8e2b5_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-icons_e9cd86_256x240.png b/awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-icons_e9cd86_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-icons_e9cd86_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-icons_e9cd86_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-icons_efec9f_256x240.png b/awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-icons_efec9f_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-icons_efec9f_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-icons_efec9f_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-icons_f2ec64_256x240.png b/awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-icons_f2ec64_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-icons_f2ec64_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-icons_f2ec64_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-icons_f9f2bd_256x240.png b/awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-icons_f9f2bd_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-icons_f9f2bd_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-icons_f9f2bd_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-icons_ff7519_256x240.png b/awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-icons_ff7519_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/swanky-purse/images/ui-icons_ff7519_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/swanky-purse/images/ui-icons_ff7519_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/swanky-purse/jquery-ui.css b/awx/ui/client/lib/jquery-ui/themes/swanky-purse/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/swanky-purse/jquery-ui.css rename to awx/ui/client/lib/jquery-ui/themes/swanky-purse/jquery-ui.css diff --git a/awx/ui/static/lib/jquery-ui/themes/swanky-purse/jquery-ui.min.css b/awx/ui/client/lib/jquery-ui/themes/swanky-purse/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/swanky-purse/jquery-ui.min.css rename to awx/ui/client/lib/jquery-ui/themes/swanky-purse/jquery-ui.min.css diff --git a/awx/ui/static/lib/jquery-ui/themes/swanky-purse/theme.css b/awx/ui/client/lib/jquery-ui/themes/swanky-purse/theme.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/swanky-purse/theme.css rename to awx/ui/client/lib/jquery-ui/themes/swanky-purse/theme.css diff --git a/awx/ui/static/lib/jquery-ui/themes/trontastic/images/animated-overlay.gif b/awx/ui/client/lib/jquery-ui/themes/trontastic/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/trontastic/images/animated-overlay.gif rename to awx/ui/client/lib/jquery-ui/themes/trontastic/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-bg_diagonals-small_50_262626_40x40.png b/awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-bg_diagonals-small_50_262626_40x40.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-bg_diagonals-small_50_262626_40x40.png rename to awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-bg_diagonals-small_50_262626_40x40.png diff --git a/awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-bg_flat_0_303030_40x100.png b/awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-bg_flat_0_303030_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-bg_flat_0_303030_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-bg_flat_0_303030_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-bg_flat_0_4c4c4c_40x100.png b/awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-bg_flat_0_4c4c4c_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-bg_flat_0_4c4c4c_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-bg_flat_0_4c4c4c_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-bg_glass_40_0a0a0a_1x400.png b/awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-bg_glass_40_0a0a0a_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-bg_glass_40_0a0a0a_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-bg_glass_40_0a0a0a_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-bg_glass_55_f1fbe5_1x400.png b/awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-bg_glass_55_f1fbe5_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-bg_glass_55_f1fbe5_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-bg_glass_55_f1fbe5_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-bg_glass_60_000000_1x400.png b/awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-bg_glass_60_000000_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-bg_glass_60_000000_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-bg_glass_60_000000_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-bg_gloss-wave_55_000000_500x100.png b/awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-bg_gloss-wave_55_000000_500x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-bg_gloss-wave_55_000000_500x100.png rename to awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-bg_gloss-wave_55_000000_500x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-bg_gloss-wave_85_9fda58_500x100.png b/awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-bg_gloss-wave_85_9fda58_500x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-bg_gloss-wave_85_9fda58_500x100.png rename to awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-bg_gloss-wave_85_9fda58_500x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-bg_gloss-wave_95_f6ecd5_500x100.png b/awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-bg_gloss-wave_95_f6ecd5_500x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-bg_gloss-wave_95_f6ecd5_500x100.png rename to awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-bg_gloss-wave_95_f6ecd5_500x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-icons_000000_256x240.png b/awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-icons_000000_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-icons_000000_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-icons_000000_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-icons_1f1f1f_256x240.png b/awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-icons_1f1f1f_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-icons_1f1f1f_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-icons_1f1f1f_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-icons_9fda58_256x240.png b/awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-icons_9fda58_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-icons_9fda58_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-icons_9fda58_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-icons_b8ec79_256x240.png b/awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-icons_b8ec79_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-icons_b8ec79_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-icons_b8ec79_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-icons_cd0a0a_256x240.png b/awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-icons_cd0a0a_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-icons_cd0a0a_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-icons_cd0a0a_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/trontastic/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/trontastic/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/trontastic/jquery-ui.css b/awx/ui/client/lib/jquery-ui/themes/trontastic/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/trontastic/jquery-ui.css rename to awx/ui/client/lib/jquery-ui/themes/trontastic/jquery-ui.css diff --git a/awx/ui/static/lib/jquery-ui/themes/trontastic/jquery-ui.min.css b/awx/ui/client/lib/jquery-ui/themes/trontastic/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/trontastic/jquery-ui.min.css rename to awx/ui/client/lib/jquery-ui/themes/trontastic/jquery-ui.min.css diff --git a/awx/ui/static/lib/jquery-ui/themes/trontastic/theme.css b/awx/ui/client/lib/jquery-ui/themes/trontastic/theme.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/trontastic/theme.css rename to awx/ui/client/lib/jquery-ui/themes/trontastic/theme.css diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/animated-overlay.gif b/awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/animated-overlay.gif rename to awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-bg_flat_30_cccccc_40x100.png b/awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-bg_flat_30_cccccc_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-bg_flat_30_cccccc_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-bg_flat_30_cccccc_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-bg_flat_50_5c5c5c_40x100.png b/awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-bg_flat_50_5c5c5c_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-bg_flat_50_5c5c5c_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-bg_flat_50_5c5c5c_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-bg_glass_20_555555_1x400.png b/awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-bg_glass_20_555555_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-bg_glass_20_555555_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-bg_glass_20_555555_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-bg_glass_40_0078a3_1x400.png b/awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-bg_glass_40_0078a3_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-bg_glass_40_0078a3_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-bg_glass_40_0078a3_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-bg_glass_40_ffc73d_1x400.png b/awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-bg_glass_40_ffc73d_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-bg_glass_40_ffc73d_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-bg_glass_40_ffc73d_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-bg_gloss-wave_25_333333_500x100.png b/awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-bg_gloss-wave_25_333333_500x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-bg_gloss-wave_25_333333_500x100.png rename to awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-bg_gloss-wave_25_333333_500x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-bg_highlight-soft_80_eeeeee_1x100.png b/awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-bg_highlight-soft_80_eeeeee_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-bg_highlight-soft_80_eeeeee_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-bg_highlight-soft_80_eeeeee_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-bg_inset-soft_25_000000_1x100.png b/awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-bg_inset-soft_25_000000_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-bg_inset-soft_25_000000_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-bg_inset-soft_25_000000_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-bg_inset-soft_30_f58400_1x100.png b/awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-bg_inset-soft_30_f58400_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-bg_inset-soft_30_f58400_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-bg_inset-soft_30_f58400_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-icons_222222_256x240.png b/awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-icons_222222_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-icons_222222_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-icons_222222_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-icons_4b8e0b_256x240.png b/awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-icons_4b8e0b_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-icons_4b8e0b_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-icons_4b8e0b_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-icons_a83300_256x240.png b/awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-icons_a83300_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-icons_a83300_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-icons_a83300_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-icons_cccccc_256x240.png b/awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-icons_cccccc_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-icons_cccccc_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-icons_cccccc_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-darkness/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/ui-darkness/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-darkness/jquery-ui.css b/awx/ui/client/lib/jquery-ui/themes/ui-darkness/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-darkness/jquery-ui.css rename to awx/ui/client/lib/jquery-ui/themes/ui-darkness/jquery-ui.css diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-darkness/jquery-ui.min.css b/awx/ui/client/lib/jquery-ui/themes/ui-darkness/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-darkness/jquery-ui.min.css rename to awx/ui/client/lib/jquery-ui/themes/ui-darkness/jquery-ui.min.css diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-darkness/theme.css b/awx/ui/client/lib/jquery-ui/themes/ui-darkness/theme.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-darkness/theme.css rename to awx/ui/client/lib/jquery-ui/themes/ui-darkness/theme.css diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/animated-overlay.gif b/awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/animated-overlay.gif rename to awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png b/awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png rename to awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png b/awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png rename to awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-bg_flat_10_000000_40x100.png b/awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-bg_flat_10_000000_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-bg_flat_10_000000_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-bg_flat_10_000000_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png b/awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png b/awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png b/awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png b/awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png rename to awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png b/awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png b/awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-icons_222222_256x240.png b/awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-icons_222222_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-icons_222222_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-icons_222222_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-icons_228ef1_256x240.png b/awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-icons_228ef1_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-icons_228ef1_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-icons_228ef1_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-icons_ef8c08_256x240.png b/awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-icons_ef8c08_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-icons_ef8c08_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-icons_ef8c08_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-icons_ffd27a_256x240.png b/awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-icons_ffd27a_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-icons_ffd27a_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-icons_ffd27a_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-lightness/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/ui-lightness/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-lightness/jquery-ui.css b/awx/ui/client/lib/jquery-ui/themes/ui-lightness/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-lightness/jquery-ui.css rename to awx/ui/client/lib/jquery-ui/themes/ui-lightness/jquery-ui.css diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-lightness/jquery-ui.min.css b/awx/ui/client/lib/jquery-ui/themes/ui-lightness/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-lightness/jquery-ui.min.css rename to awx/ui/client/lib/jquery-ui/themes/ui-lightness/jquery-ui.min.css diff --git a/awx/ui/static/lib/jquery-ui/themes/ui-lightness/theme.css b/awx/ui/client/lib/jquery-ui/themes/ui-lightness/theme.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/ui-lightness/theme.css rename to awx/ui/client/lib/jquery-ui/themes/ui-lightness/theme.css diff --git a/awx/ui/static/lib/jquery-ui/themes/vader/images/animated-overlay.gif b/awx/ui/client/lib/jquery-ui/themes/vader/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/vader/images/animated-overlay.gif rename to awx/ui/client/lib/jquery-ui/themes/vader/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jquery-ui/themes/vader/images/ui-bg_flat_0_aaaaaa_40x100.png b/awx/ui/client/lib/jquery-ui/themes/vader/images/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/vader/images/ui-bg_flat_0_aaaaaa_40x100.png rename to awx/ui/client/lib/jquery-ui/themes/vader/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/vader/images/ui-bg_glass_95_fef1ec_1x400.png b/awx/ui/client/lib/jquery-ui/themes/vader/images/ui-bg_glass_95_fef1ec_1x400.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/vader/images/ui-bg_glass_95_fef1ec_1x400.png rename to awx/ui/client/lib/jquery-ui/themes/vader/images/ui-bg_glass_95_fef1ec_1x400.png diff --git a/awx/ui/static/lib/jquery-ui/themes/vader/images/ui-bg_gloss-wave_16_121212_500x100.png b/awx/ui/client/lib/jquery-ui/themes/vader/images/ui-bg_gloss-wave_16_121212_500x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/vader/images/ui-bg_gloss-wave_16_121212_500x100.png rename to awx/ui/client/lib/jquery-ui/themes/vader/images/ui-bg_gloss-wave_16_121212_500x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/vader/images/ui-bg_highlight-hard_15_888888_1x100.png b/awx/ui/client/lib/jquery-ui/themes/vader/images/ui-bg_highlight-hard_15_888888_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/vader/images/ui-bg_highlight-hard_15_888888_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/vader/images/ui-bg_highlight-hard_15_888888_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/vader/images/ui-bg_highlight-hard_55_555555_1x100.png b/awx/ui/client/lib/jquery-ui/themes/vader/images/ui-bg_highlight-hard_55_555555_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/vader/images/ui-bg_highlight-hard_55_555555_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/vader/images/ui-bg_highlight-hard_55_555555_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/vader/images/ui-bg_highlight-soft_35_adadad_1x100.png b/awx/ui/client/lib/jquery-ui/themes/vader/images/ui-bg_highlight-soft_35_adadad_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/vader/images/ui-bg_highlight-soft_35_adadad_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/vader/images/ui-bg_highlight-soft_35_adadad_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/vader/images/ui-bg_highlight-soft_60_dddddd_1x100.png b/awx/ui/client/lib/jquery-ui/themes/vader/images/ui-bg_highlight-soft_60_dddddd_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/vader/images/ui-bg_highlight-soft_60_dddddd_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/vader/images/ui-bg_highlight-soft_60_dddddd_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/vader/images/ui-bg_inset-soft_15_121212_1x100.png b/awx/ui/client/lib/jquery-ui/themes/vader/images/ui-bg_inset-soft_15_121212_1x100.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/vader/images/ui-bg_inset-soft_15_121212_1x100.png rename to awx/ui/client/lib/jquery-ui/themes/vader/images/ui-bg_inset-soft_15_121212_1x100.png diff --git a/awx/ui/static/lib/jquery-ui/themes/vader/images/ui-icons_666666_256x240.png b/awx/ui/client/lib/jquery-ui/themes/vader/images/ui-icons_666666_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/vader/images/ui-icons_666666_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/vader/images/ui-icons_666666_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/vader/images/ui-icons_aaaaaa_256x240.png b/awx/ui/client/lib/jquery-ui/themes/vader/images/ui-icons_aaaaaa_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/vader/images/ui-icons_aaaaaa_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/vader/images/ui-icons_aaaaaa_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/vader/images/ui-icons_bbbbbb_256x240.png b/awx/ui/client/lib/jquery-ui/themes/vader/images/ui-icons_bbbbbb_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/vader/images/ui-icons_bbbbbb_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/vader/images/ui-icons_bbbbbb_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/vader/images/ui-icons_c98000_256x240.png b/awx/ui/client/lib/jquery-ui/themes/vader/images/ui-icons_c98000_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/vader/images/ui-icons_c98000_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/vader/images/ui-icons_c98000_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/vader/images/ui-icons_cccccc_256x240.png b/awx/ui/client/lib/jquery-ui/themes/vader/images/ui-icons_cccccc_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/vader/images/ui-icons_cccccc_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/vader/images/ui-icons_cccccc_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/vader/images/ui-icons_cd0a0a_256x240.png b/awx/ui/client/lib/jquery-ui/themes/vader/images/ui-icons_cd0a0a_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/vader/images/ui-icons_cd0a0a_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/vader/images/ui-icons_cd0a0a_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/vader/images/ui-icons_f29a00_256x240.png b/awx/ui/client/lib/jquery-ui/themes/vader/images/ui-icons_f29a00_256x240.png similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/vader/images/ui-icons_f29a00_256x240.png rename to awx/ui/client/lib/jquery-ui/themes/vader/images/ui-icons_f29a00_256x240.png diff --git a/awx/ui/static/lib/jquery-ui/themes/vader/jquery-ui.css b/awx/ui/client/lib/jquery-ui/themes/vader/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/vader/jquery-ui.css rename to awx/ui/client/lib/jquery-ui/themes/vader/jquery-ui.css diff --git a/awx/ui/static/lib/jquery-ui/themes/vader/jquery-ui.min.css b/awx/ui/client/lib/jquery-ui/themes/vader/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/vader/jquery-ui.min.css rename to awx/ui/client/lib/jquery-ui/themes/vader/jquery-ui.min.css diff --git a/awx/ui/static/lib/jquery-ui/themes/vader/theme.css b/awx/ui/client/lib/jquery-ui/themes/vader/theme.css similarity index 100% rename from awx/ui/static/lib/jquery-ui/themes/vader/theme.css rename to awx/ui/client/lib/jquery-ui/themes/vader/theme.css diff --git a/awx/ui/static/lib/jquery-ui/ui/.jshintrc b/awx/ui/client/lib/jquery-ui/ui/.jshintrc similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/.jshintrc rename to awx/ui/client/lib/jquery-ui/ui/.jshintrc diff --git a/awx/ui/static/lib/jquery-ui/ui/accordion.js b/awx/ui/client/lib/jquery-ui/ui/accordion.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/accordion.js rename to awx/ui/client/lib/jquery-ui/ui/accordion.js diff --git a/awx/ui/static/lib/jquery-ui/ui/autocomplete.js b/awx/ui/client/lib/jquery-ui/ui/autocomplete.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/autocomplete.js rename to awx/ui/client/lib/jquery-ui/ui/autocomplete.js diff --git a/awx/ui/static/lib/jquery-ui/ui/button.js b/awx/ui/client/lib/jquery-ui/ui/button.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/button.js rename to awx/ui/client/lib/jquery-ui/ui/button.js diff --git a/awx/ui/static/lib/jquery-ui/ui/core.js b/awx/ui/client/lib/jquery-ui/ui/core.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/core.js rename to awx/ui/client/lib/jquery-ui/ui/core.js diff --git a/awx/ui/static/lib/jquery-ui/ui/datepicker.js b/awx/ui/client/lib/jquery-ui/ui/datepicker.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/datepicker.js rename to awx/ui/client/lib/jquery-ui/ui/datepicker.js diff --git a/awx/ui/static/lib/jquery-ui/ui/dialog.js b/awx/ui/client/lib/jquery-ui/ui/dialog.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/dialog.js rename to awx/ui/client/lib/jquery-ui/ui/dialog.js diff --git a/awx/ui/static/lib/jquery-ui/ui/draggable.js b/awx/ui/client/lib/jquery-ui/ui/draggable.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/draggable.js rename to awx/ui/client/lib/jquery-ui/ui/draggable.js diff --git a/awx/ui/static/lib/jquery-ui/ui/droppable.js b/awx/ui/client/lib/jquery-ui/ui/droppable.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/droppable.js rename to awx/ui/client/lib/jquery-ui/ui/droppable.js diff --git a/awx/ui/static/lib/jquery-ui/ui/effect-blind.js b/awx/ui/client/lib/jquery-ui/ui/effect-blind.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/effect-blind.js rename to awx/ui/client/lib/jquery-ui/ui/effect-blind.js diff --git a/awx/ui/static/lib/jquery-ui/ui/effect-bounce.js b/awx/ui/client/lib/jquery-ui/ui/effect-bounce.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/effect-bounce.js rename to awx/ui/client/lib/jquery-ui/ui/effect-bounce.js diff --git a/awx/ui/static/lib/jquery-ui/ui/effect-clip.js b/awx/ui/client/lib/jquery-ui/ui/effect-clip.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/effect-clip.js rename to awx/ui/client/lib/jquery-ui/ui/effect-clip.js diff --git a/awx/ui/static/lib/jquery-ui/ui/effect-drop.js b/awx/ui/client/lib/jquery-ui/ui/effect-drop.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/effect-drop.js rename to awx/ui/client/lib/jquery-ui/ui/effect-drop.js diff --git a/awx/ui/static/lib/jquery-ui/ui/effect-explode.js b/awx/ui/client/lib/jquery-ui/ui/effect-explode.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/effect-explode.js rename to awx/ui/client/lib/jquery-ui/ui/effect-explode.js diff --git a/awx/ui/static/lib/jquery-ui/ui/effect-fade.js b/awx/ui/client/lib/jquery-ui/ui/effect-fade.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/effect-fade.js rename to awx/ui/client/lib/jquery-ui/ui/effect-fade.js diff --git a/awx/ui/static/lib/jquery-ui/ui/effect-fold.js b/awx/ui/client/lib/jquery-ui/ui/effect-fold.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/effect-fold.js rename to awx/ui/client/lib/jquery-ui/ui/effect-fold.js diff --git a/awx/ui/static/lib/jquery-ui/ui/effect-highlight.js b/awx/ui/client/lib/jquery-ui/ui/effect-highlight.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/effect-highlight.js rename to awx/ui/client/lib/jquery-ui/ui/effect-highlight.js diff --git a/awx/ui/static/lib/jquery-ui/ui/effect-puff.js b/awx/ui/client/lib/jquery-ui/ui/effect-puff.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/effect-puff.js rename to awx/ui/client/lib/jquery-ui/ui/effect-puff.js diff --git a/awx/ui/static/lib/jquery-ui/ui/effect-pulsate.js b/awx/ui/client/lib/jquery-ui/ui/effect-pulsate.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/effect-pulsate.js rename to awx/ui/client/lib/jquery-ui/ui/effect-pulsate.js diff --git a/awx/ui/static/lib/jquery-ui/ui/effect-scale.js b/awx/ui/client/lib/jquery-ui/ui/effect-scale.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/effect-scale.js rename to awx/ui/client/lib/jquery-ui/ui/effect-scale.js diff --git a/awx/ui/static/lib/jquery-ui/ui/effect-shake.js b/awx/ui/client/lib/jquery-ui/ui/effect-shake.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/effect-shake.js rename to awx/ui/client/lib/jquery-ui/ui/effect-shake.js diff --git a/awx/ui/static/lib/jquery-ui/ui/effect-size.js b/awx/ui/client/lib/jquery-ui/ui/effect-size.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/effect-size.js rename to awx/ui/client/lib/jquery-ui/ui/effect-size.js diff --git a/awx/ui/static/lib/jquery-ui/ui/effect-slide.js b/awx/ui/client/lib/jquery-ui/ui/effect-slide.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/effect-slide.js rename to awx/ui/client/lib/jquery-ui/ui/effect-slide.js diff --git a/awx/ui/static/lib/jquery-ui/ui/effect-transfer.js b/awx/ui/client/lib/jquery-ui/ui/effect-transfer.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/effect-transfer.js rename to awx/ui/client/lib/jquery-ui/ui/effect-transfer.js diff --git a/awx/ui/static/lib/jquery-ui/ui/effect.js b/awx/ui/client/lib/jquery-ui/ui/effect.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/effect.js rename to awx/ui/client/lib/jquery-ui/ui/effect.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-af.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-af.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-af.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-af.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-ar-DZ.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-ar-DZ.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-ar-DZ.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-ar-DZ.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-ar.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-ar.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-ar.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-ar.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-az.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-az.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-az.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-az.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-be.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-be.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-be.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-be.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-bg.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-bg.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-bg.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-bg.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-bs.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-bs.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-bs.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-bs.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-ca.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-ca.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-ca.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-ca.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-cs.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-cs.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-cs.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-cs.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-cy-GB.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-cy-GB.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-cy-GB.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-cy-GB.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-da.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-da.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-da.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-da.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-de.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-de.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-de.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-de.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-el.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-el.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-el.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-el.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-en-AU.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-en-AU.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-en-AU.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-en-AU.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-en-GB.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-en-GB.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-en-GB.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-en-GB.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-en-NZ.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-en-NZ.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-en-NZ.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-en-NZ.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-eo.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-eo.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-eo.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-eo.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-es.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-es.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-es.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-es.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-et.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-et.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-et.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-et.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-eu.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-eu.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-eu.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-eu.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-fa.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-fa.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-fa.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-fa.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-fi.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-fi.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-fi.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-fi.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-fo.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-fo.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-fo.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-fo.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-fr-CA.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-fr-CA.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-fr-CA.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-fr-CA.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-fr-CH.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-fr-CH.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-fr-CH.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-fr-CH.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-fr.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-fr.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-fr.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-fr.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-gl.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-gl.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-gl.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-gl.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-he.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-he.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-he.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-he.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-hi.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-hi.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-hi.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-hi.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-hr.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-hr.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-hr.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-hr.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-hu.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-hu.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-hu.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-hu.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-hy.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-hy.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-hy.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-hy.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-id.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-id.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-id.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-id.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-is.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-is.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-is.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-is.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-it-CH.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-it-CH.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-it-CH.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-it-CH.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-it.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-it.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-it.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-it.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-ja.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-ja.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-ja.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-ja.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-ka.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-ka.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-ka.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-ka.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-kk.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-kk.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-kk.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-kk.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-km.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-km.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-km.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-km.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-ko.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-ko.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-ko.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-ko.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-ky.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-ky.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-ky.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-ky.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-lb.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-lb.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-lb.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-lb.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-lt.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-lt.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-lt.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-lt.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-lv.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-lv.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-lv.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-lv.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-mk.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-mk.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-mk.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-mk.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-ml.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-ml.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-ml.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-ml.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-ms.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-ms.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-ms.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-ms.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-nb.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-nb.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-nb.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-nb.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-nl-BE.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-nl-BE.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-nl-BE.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-nl-BE.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-nl.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-nl.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-nl.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-nl.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-nn.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-nn.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-nn.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-nn.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-no.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-no.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-no.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-no.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-pl.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-pl.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-pl.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-pl.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-pt-BR.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-pt-BR.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-pt-BR.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-pt-BR.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-pt.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-pt.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-pt.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-pt.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-rm.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-rm.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-rm.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-rm.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-ro.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-ro.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-ro.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-ro.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-ru.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-ru.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-ru.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-ru.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-sk.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-sk.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-sk.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-sk.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-sl.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-sl.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-sl.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-sl.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-sq.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-sq.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-sq.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-sq.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-sr-SR.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-sr-SR.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-sr-SR.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-sr-SR.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-sr.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-sr.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-sr.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-sr.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-sv.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-sv.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-sv.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-sv.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-ta.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-ta.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-ta.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-ta.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-th.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-th.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-th.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-th.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-tj.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-tj.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-tj.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-tj.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-tr.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-tr.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-tr.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-tr.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-uk.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-uk.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-uk.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-uk.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-vi.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-vi.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-vi.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-vi.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-zh-CN.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-zh-CN.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-zh-CN.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-zh-CN.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-zh-HK.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-zh-HK.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-zh-HK.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-zh-HK.js diff --git a/awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-zh-TW.js b/awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-zh-TW.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/i18n/datepicker-zh-TW.js rename to awx/ui/client/lib/jquery-ui/ui/i18n/datepicker-zh-TW.js diff --git a/awx/ui/static/lib/jquery-ui/ui/menu.js b/awx/ui/client/lib/jquery-ui/ui/menu.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/menu.js rename to awx/ui/client/lib/jquery-ui/ui/menu.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/accordion.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/accordion.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/accordion.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/accordion.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/autocomplete.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/autocomplete.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/autocomplete.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/autocomplete.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/button.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/button.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/button.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/button.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/core.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/core.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/core.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/core.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/datepicker.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/datepicker.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/datepicker.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/datepicker.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/dialog.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/dialog.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/dialog.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/dialog.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/draggable.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/draggable.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/draggable.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/draggable.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/droppable.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/droppable.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/droppable.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/droppable.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/effect-blind.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/effect-blind.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/effect-blind.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/effect-blind.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/effect-bounce.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/effect-bounce.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/effect-bounce.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/effect-bounce.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/effect-clip.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/effect-clip.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/effect-clip.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/effect-clip.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/effect-drop.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/effect-drop.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/effect-drop.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/effect-drop.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/effect-explode.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/effect-explode.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/effect-explode.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/effect-explode.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/effect-fade.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/effect-fade.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/effect-fade.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/effect-fade.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/effect-fold.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/effect-fold.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/effect-fold.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/effect-fold.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/effect-highlight.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/effect-highlight.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/effect-highlight.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/effect-highlight.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/effect-puff.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/effect-puff.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/effect-puff.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/effect-puff.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/effect-pulsate.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/effect-pulsate.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/effect-pulsate.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/effect-pulsate.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/effect-scale.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/effect-scale.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/effect-scale.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/effect-scale.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/effect-shake.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/effect-shake.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/effect-shake.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/effect-shake.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/effect-size.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/effect-size.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/effect-size.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/effect-size.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/effect-slide.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/effect-slide.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/effect-slide.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/effect-slide.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/effect-transfer.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/effect-transfer.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/effect-transfer.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/effect-transfer.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/effect.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/effect.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/effect.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/effect.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-af.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-af.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-af.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-af.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-ar-DZ.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-ar-DZ.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-ar-DZ.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-ar-DZ.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-ar.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-ar.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-ar.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-ar.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-az.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-az.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-az.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-az.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-be.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-be.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-be.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-be.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-bg.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-bg.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-bg.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-bg.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-bs.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-bs.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-bs.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-bs.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-ca.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-ca.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-ca.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-ca.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-cs.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-cs.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-cs.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-cs.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-cy-GB.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-cy-GB.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-cy-GB.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-cy-GB.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-da.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-da.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-da.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-da.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-de.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-de.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-de.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-de.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-el.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-el.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-el.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-el.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-en-AU.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-en-AU.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-en-AU.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-en-AU.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-en-GB.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-en-GB.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-en-GB.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-en-GB.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-en-NZ.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-en-NZ.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-en-NZ.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-en-NZ.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-eo.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-eo.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-eo.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-eo.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-es.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-es.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-es.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-es.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-et.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-et.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-et.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-et.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-eu.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-eu.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-eu.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-eu.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-fa.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-fa.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-fa.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-fa.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-fi.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-fi.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-fi.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-fi.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-fo.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-fo.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-fo.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-fo.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-fr-CA.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-fr-CA.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-fr-CA.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-fr-CA.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-fr-CH.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-fr-CH.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-fr-CH.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-fr-CH.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-fr.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-fr.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-fr.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-fr.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-gl.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-gl.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-gl.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-gl.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-he.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-he.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-he.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-he.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-hi.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-hi.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-hi.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-hi.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-hr.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-hr.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-hr.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-hr.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-hu.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-hu.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-hu.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-hu.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-hy.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-hy.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-hy.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-hy.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-id.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-id.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-id.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-id.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-is.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-is.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-is.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-is.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-it-CH.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-it-CH.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-it-CH.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-it-CH.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-it.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-it.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-it.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-it.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-ja.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-ja.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-ja.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-ja.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-ka.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-ka.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-ka.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-ka.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-kk.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-kk.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-kk.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-kk.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-km.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-km.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-km.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-km.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-ko.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-ko.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-ko.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-ko.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-ky.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-ky.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-ky.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-ky.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-lb.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-lb.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-lb.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-lb.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-lt.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-lt.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-lt.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-lt.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-lv.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-lv.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-lv.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-lv.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-mk.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-mk.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-mk.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-mk.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-ml.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-ml.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-ml.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-ml.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-ms.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-ms.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-ms.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-ms.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-nb.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-nb.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-nb.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-nb.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-nl-BE.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-nl-BE.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-nl-BE.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-nl-BE.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-nl.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-nl.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-nl.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-nl.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-nn.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-nn.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-nn.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-nn.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-no.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-no.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-no.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-no.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-pl.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-pl.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-pl.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-pl.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-pt-BR.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-pt-BR.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-pt-BR.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-pt-BR.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-pt.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-pt.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-pt.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-pt.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-rm.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-rm.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-rm.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-rm.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-ro.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-ro.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-ro.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-ro.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-ru.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-ru.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-ru.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-ru.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-sk.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-sk.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-sk.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-sk.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-sl.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-sl.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-sl.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-sl.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-sq.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-sq.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-sq.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-sq.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-sr-SR.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-sr-SR.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-sr-SR.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-sr-SR.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-sr.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-sr.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-sr.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-sr.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-sv.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-sv.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-sv.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-sv.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-ta.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-ta.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-ta.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-ta.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-th.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-th.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-th.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-th.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-tj.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-tj.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-tj.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-tj.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-tr.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-tr.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-tr.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-tr.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-uk.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-uk.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-uk.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-uk.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-vi.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-vi.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-vi.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-vi.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-zh-CN.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-zh-CN.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-zh-CN.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-zh-CN.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-zh-HK.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-zh-HK.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-zh-HK.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-zh-HK.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-zh-TW.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-zh-TW.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/i18n/datepicker-zh-TW.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/i18n/datepicker-zh-TW.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/menu.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/menu.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/menu.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/menu.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/mouse.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/mouse.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/mouse.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/mouse.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/position.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/position.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/position.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/position.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/progressbar.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/progressbar.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/progressbar.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/progressbar.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/resizable.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/resizable.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/resizable.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/resizable.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/selectable.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/selectable.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/selectable.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/selectable.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/selectmenu.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/selectmenu.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/selectmenu.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/selectmenu.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/slider.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/slider.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/slider.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/slider.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/sortable.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/sortable.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/sortable.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/sortable.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/spinner.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/spinner.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/spinner.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/spinner.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/tabs.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/tabs.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/tabs.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/tabs.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/tooltip.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/tooltip.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/tooltip.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/tooltip.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/minified/widget.min.js b/awx/ui/client/lib/jquery-ui/ui/minified/widget.min.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/minified/widget.min.js rename to awx/ui/client/lib/jquery-ui/ui/minified/widget.min.js diff --git a/awx/ui/static/lib/jquery-ui/ui/mouse.js b/awx/ui/client/lib/jquery-ui/ui/mouse.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/mouse.js rename to awx/ui/client/lib/jquery-ui/ui/mouse.js diff --git a/awx/ui/static/lib/jquery-ui/ui/position.js b/awx/ui/client/lib/jquery-ui/ui/position.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/position.js rename to awx/ui/client/lib/jquery-ui/ui/position.js diff --git a/awx/ui/static/lib/jquery-ui/ui/progressbar.js b/awx/ui/client/lib/jquery-ui/ui/progressbar.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/progressbar.js rename to awx/ui/client/lib/jquery-ui/ui/progressbar.js diff --git a/awx/ui/static/lib/jquery-ui/ui/resizable.js b/awx/ui/client/lib/jquery-ui/ui/resizable.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/resizable.js rename to awx/ui/client/lib/jquery-ui/ui/resizable.js diff --git a/awx/ui/static/lib/jquery-ui/ui/selectable.js b/awx/ui/client/lib/jquery-ui/ui/selectable.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/selectable.js rename to awx/ui/client/lib/jquery-ui/ui/selectable.js diff --git a/awx/ui/static/lib/jquery-ui/ui/selectmenu.js b/awx/ui/client/lib/jquery-ui/ui/selectmenu.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/selectmenu.js rename to awx/ui/client/lib/jquery-ui/ui/selectmenu.js diff --git a/awx/ui/static/lib/jquery-ui/ui/slider.js b/awx/ui/client/lib/jquery-ui/ui/slider.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/slider.js rename to awx/ui/client/lib/jquery-ui/ui/slider.js diff --git a/awx/ui/static/lib/jquery-ui/ui/sortable.js b/awx/ui/client/lib/jquery-ui/ui/sortable.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/sortable.js rename to awx/ui/client/lib/jquery-ui/ui/sortable.js diff --git a/awx/ui/static/lib/jquery-ui/ui/spinner.js b/awx/ui/client/lib/jquery-ui/ui/spinner.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/spinner.js rename to awx/ui/client/lib/jquery-ui/ui/spinner.js diff --git a/awx/ui/static/lib/jquery-ui/ui/tabs.js b/awx/ui/client/lib/jquery-ui/ui/tabs.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/tabs.js rename to awx/ui/client/lib/jquery-ui/ui/tabs.js diff --git a/awx/ui/static/lib/jquery-ui/ui/tooltip.js b/awx/ui/client/lib/jquery-ui/ui/tooltip.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/tooltip.js rename to awx/ui/client/lib/jquery-ui/ui/tooltip.js diff --git a/awx/ui/static/lib/jquery-ui/ui/widget.js b/awx/ui/client/lib/jquery-ui/ui/widget.js similarity index 100% rename from awx/ui/static/lib/jquery-ui/ui/widget.js rename to awx/ui/client/lib/jquery-ui/ui/widget.js diff --git a/awx/ui/static/lib/jquery/.bower.json b/awx/ui/client/lib/jquery/.bower.json similarity index 100% rename from awx/ui/static/lib/jquery/.bower.json rename to awx/ui/client/lib/jquery/.bower.json diff --git a/awx/ui/static/lib/jquery/MIT-LICENSE.txt b/awx/ui/client/lib/jquery/MIT-LICENSE.txt similarity index 100% rename from awx/ui/static/lib/jquery/MIT-LICENSE.txt rename to awx/ui/client/lib/jquery/MIT-LICENSE.txt diff --git a/awx/ui/static/lib/jquery/bower.json b/awx/ui/client/lib/jquery/bower.json similarity index 100% rename from awx/ui/static/lib/jquery/bower.json rename to awx/ui/client/lib/jquery/bower.json diff --git a/awx/ui/static/lib/jquery/dist/jquery.js b/awx/ui/client/lib/jquery/dist/jquery.js similarity index 100% rename from awx/ui/static/lib/jquery/dist/jquery.js rename to awx/ui/client/lib/jquery/dist/jquery.js diff --git a/awx/ui/static/lib/jquery/dist/jquery.min.js b/awx/ui/client/lib/jquery/dist/jquery.min.js similarity index 100% rename from awx/ui/static/lib/jquery/dist/jquery.min.js rename to awx/ui/client/lib/jquery/dist/jquery.min.js diff --git a/awx/ui/static/lib/jquery/dist/jquery.min.map b/awx/ui/client/lib/jquery/dist/jquery.min.map similarity index 100% rename from awx/ui/static/lib/jquery/dist/jquery.min.map rename to awx/ui/client/lib/jquery/dist/jquery.min.map diff --git a/awx/ui/static/lib/jquery/src/ajax.js b/awx/ui/client/lib/jquery/src/ajax.js similarity index 100% rename from awx/ui/static/lib/jquery/src/ajax.js rename to awx/ui/client/lib/jquery/src/ajax.js diff --git a/awx/ui/static/lib/jquery/src/ajax/jsonp.js b/awx/ui/client/lib/jquery/src/ajax/jsonp.js similarity index 100% rename from awx/ui/static/lib/jquery/src/ajax/jsonp.js rename to awx/ui/client/lib/jquery/src/ajax/jsonp.js diff --git a/awx/ui/static/lib/jquery/src/ajax/load.js b/awx/ui/client/lib/jquery/src/ajax/load.js similarity index 100% rename from awx/ui/static/lib/jquery/src/ajax/load.js rename to awx/ui/client/lib/jquery/src/ajax/load.js diff --git a/awx/ui/static/lib/jquery/src/ajax/parseJSON.js b/awx/ui/client/lib/jquery/src/ajax/parseJSON.js similarity index 100% rename from awx/ui/static/lib/jquery/src/ajax/parseJSON.js rename to awx/ui/client/lib/jquery/src/ajax/parseJSON.js diff --git a/awx/ui/static/lib/jquery/src/ajax/parseXML.js b/awx/ui/client/lib/jquery/src/ajax/parseXML.js similarity index 100% rename from awx/ui/static/lib/jquery/src/ajax/parseXML.js rename to awx/ui/client/lib/jquery/src/ajax/parseXML.js diff --git a/awx/ui/static/lib/jquery/src/ajax/script.js b/awx/ui/client/lib/jquery/src/ajax/script.js similarity index 100% rename from awx/ui/static/lib/jquery/src/ajax/script.js rename to awx/ui/client/lib/jquery/src/ajax/script.js diff --git a/awx/ui/static/lib/jquery/src/ajax/var/nonce.js b/awx/ui/client/lib/jquery/src/ajax/var/nonce.js similarity index 100% rename from awx/ui/static/lib/jquery/src/ajax/var/nonce.js rename to awx/ui/client/lib/jquery/src/ajax/var/nonce.js diff --git a/awx/ui/static/lib/jquery/src/ajax/var/rquery.js b/awx/ui/client/lib/jquery/src/ajax/var/rquery.js similarity index 100% rename from awx/ui/static/lib/jquery/src/ajax/var/rquery.js rename to awx/ui/client/lib/jquery/src/ajax/var/rquery.js diff --git a/awx/ui/static/lib/jquery/src/ajax/xhr.js b/awx/ui/client/lib/jquery/src/ajax/xhr.js similarity index 100% rename from awx/ui/static/lib/jquery/src/ajax/xhr.js rename to awx/ui/client/lib/jquery/src/ajax/xhr.js diff --git a/awx/ui/static/lib/jquery/src/attributes.js b/awx/ui/client/lib/jquery/src/attributes.js similarity index 100% rename from awx/ui/static/lib/jquery/src/attributes.js rename to awx/ui/client/lib/jquery/src/attributes.js diff --git a/awx/ui/static/lib/jquery/src/attributes/attr.js b/awx/ui/client/lib/jquery/src/attributes/attr.js similarity index 100% rename from awx/ui/static/lib/jquery/src/attributes/attr.js rename to awx/ui/client/lib/jquery/src/attributes/attr.js diff --git a/awx/ui/static/lib/jquery/src/attributes/classes.js b/awx/ui/client/lib/jquery/src/attributes/classes.js similarity index 100% rename from awx/ui/static/lib/jquery/src/attributes/classes.js rename to awx/ui/client/lib/jquery/src/attributes/classes.js diff --git a/awx/ui/static/lib/jquery/src/attributes/prop.js b/awx/ui/client/lib/jquery/src/attributes/prop.js similarity index 100% rename from awx/ui/static/lib/jquery/src/attributes/prop.js rename to awx/ui/client/lib/jquery/src/attributes/prop.js diff --git a/awx/ui/static/lib/jquery/src/attributes/support.js b/awx/ui/client/lib/jquery/src/attributes/support.js similarity index 100% rename from awx/ui/static/lib/jquery/src/attributes/support.js rename to awx/ui/client/lib/jquery/src/attributes/support.js diff --git a/awx/ui/static/lib/jquery/src/attributes/val.js b/awx/ui/client/lib/jquery/src/attributes/val.js similarity index 100% rename from awx/ui/static/lib/jquery/src/attributes/val.js rename to awx/ui/client/lib/jquery/src/attributes/val.js diff --git a/awx/ui/static/lib/jquery/src/callbacks.js b/awx/ui/client/lib/jquery/src/callbacks.js similarity index 100% rename from awx/ui/static/lib/jquery/src/callbacks.js rename to awx/ui/client/lib/jquery/src/callbacks.js diff --git a/awx/ui/static/lib/jquery/src/core.js b/awx/ui/client/lib/jquery/src/core.js similarity index 100% rename from awx/ui/static/lib/jquery/src/core.js rename to awx/ui/client/lib/jquery/src/core.js diff --git a/awx/ui/static/lib/jquery/src/core/access.js b/awx/ui/client/lib/jquery/src/core/access.js similarity index 100% rename from awx/ui/static/lib/jquery/src/core/access.js rename to awx/ui/client/lib/jquery/src/core/access.js diff --git a/awx/ui/static/lib/jquery/src/core/init.js b/awx/ui/client/lib/jquery/src/core/init.js similarity index 100% rename from awx/ui/static/lib/jquery/src/core/init.js rename to awx/ui/client/lib/jquery/src/core/init.js diff --git a/awx/ui/static/lib/jquery/src/core/parseHTML.js b/awx/ui/client/lib/jquery/src/core/parseHTML.js similarity index 100% rename from awx/ui/static/lib/jquery/src/core/parseHTML.js rename to awx/ui/client/lib/jquery/src/core/parseHTML.js diff --git a/awx/ui/static/lib/jquery/src/core/ready.js b/awx/ui/client/lib/jquery/src/core/ready.js similarity index 100% rename from awx/ui/static/lib/jquery/src/core/ready.js rename to awx/ui/client/lib/jquery/src/core/ready.js diff --git a/awx/ui/static/lib/jquery/src/core/var/rsingleTag.js b/awx/ui/client/lib/jquery/src/core/var/rsingleTag.js similarity index 100% rename from awx/ui/static/lib/jquery/src/core/var/rsingleTag.js rename to awx/ui/client/lib/jquery/src/core/var/rsingleTag.js diff --git a/awx/ui/static/lib/jquery/src/css.js b/awx/ui/client/lib/jquery/src/css.js similarity index 100% rename from awx/ui/static/lib/jquery/src/css.js rename to awx/ui/client/lib/jquery/src/css.js diff --git a/awx/ui/static/lib/jquery/src/css/addGetHookIf.js b/awx/ui/client/lib/jquery/src/css/addGetHookIf.js similarity index 100% rename from awx/ui/static/lib/jquery/src/css/addGetHookIf.js rename to awx/ui/client/lib/jquery/src/css/addGetHookIf.js diff --git a/awx/ui/static/lib/jquery/src/css/curCSS.js b/awx/ui/client/lib/jquery/src/css/curCSS.js similarity index 100% rename from awx/ui/static/lib/jquery/src/css/curCSS.js rename to awx/ui/client/lib/jquery/src/css/curCSS.js diff --git a/awx/ui/static/lib/jquery/src/css/defaultDisplay.js b/awx/ui/client/lib/jquery/src/css/defaultDisplay.js similarity index 100% rename from awx/ui/static/lib/jquery/src/css/defaultDisplay.js rename to awx/ui/client/lib/jquery/src/css/defaultDisplay.js diff --git a/awx/ui/static/lib/jquery/src/css/hiddenVisibleSelectors.js b/awx/ui/client/lib/jquery/src/css/hiddenVisibleSelectors.js similarity index 100% rename from awx/ui/static/lib/jquery/src/css/hiddenVisibleSelectors.js rename to awx/ui/client/lib/jquery/src/css/hiddenVisibleSelectors.js diff --git a/awx/ui/static/lib/jquery/src/css/support.js b/awx/ui/client/lib/jquery/src/css/support.js similarity index 100% rename from awx/ui/static/lib/jquery/src/css/support.js rename to awx/ui/client/lib/jquery/src/css/support.js diff --git a/awx/ui/static/lib/jquery/src/css/swap.js b/awx/ui/client/lib/jquery/src/css/swap.js similarity index 100% rename from awx/ui/static/lib/jquery/src/css/swap.js rename to awx/ui/client/lib/jquery/src/css/swap.js diff --git a/awx/ui/static/lib/jquery/src/css/var/cssExpand.js b/awx/ui/client/lib/jquery/src/css/var/cssExpand.js similarity index 100% rename from awx/ui/static/lib/jquery/src/css/var/cssExpand.js rename to awx/ui/client/lib/jquery/src/css/var/cssExpand.js diff --git a/awx/ui/static/lib/jquery/src/css/var/getStyles.js b/awx/ui/client/lib/jquery/src/css/var/getStyles.js similarity index 100% rename from awx/ui/static/lib/jquery/src/css/var/getStyles.js rename to awx/ui/client/lib/jquery/src/css/var/getStyles.js diff --git a/awx/ui/static/lib/jquery/src/css/var/isHidden.js b/awx/ui/client/lib/jquery/src/css/var/isHidden.js similarity index 100% rename from awx/ui/static/lib/jquery/src/css/var/isHidden.js rename to awx/ui/client/lib/jquery/src/css/var/isHidden.js diff --git a/awx/ui/static/lib/jquery/src/css/var/rmargin.js b/awx/ui/client/lib/jquery/src/css/var/rmargin.js similarity index 100% rename from awx/ui/static/lib/jquery/src/css/var/rmargin.js rename to awx/ui/client/lib/jquery/src/css/var/rmargin.js diff --git a/awx/ui/static/lib/jquery/src/css/var/rnumnonpx.js b/awx/ui/client/lib/jquery/src/css/var/rnumnonpx.js similarity index 100% rename from awx/ui/static/lib/jquery/src/css/var/rnumnonpx.js rename to awx/ui/client/lib/jquery/src/css/var/rnumnonpx.js diff --git a/awx/ui/static/lib/jquery/src/data.js b/awx/ui/client/lib/jquery/src/data.js similarity index 100% rename from awx/ui/static/lib/jquery/src/data.js rename to awx/ui/client/lib/jquery/src/data.js diff --git a/awx/ui/static/lib/jquery/src/data/Data.js b/awx/ui/client/lib/jquery/src/data/Data.js similarity index 100% rename from awx/ui/static/lib/jquery/src/data/Data.js rename to awx/ui/client/lib/jquery/src/data/Data.js diff --git a/awx/ui/static/lib/jquery/src/data/accepts.js b/awx/ui/client/lib/jquery/src/data/accepts.js similarity index 100% rename from awx/ui/static/lib/jquery/src/data/accepts.js rename to awx/ui/client/lib/jquery/src/data/accepts.js diff --git a/awx/ui/static/lib/jquery/src/data/var/data_priv.js b/awx/ui/client/lib/jquery/src/data/var/data_priv.js similarity index 100% rename from awx/ui/static/lib/jquery/src/data/var/data_priv.js rename to awx/ui/client/lib/jquery/src/data/var/data_priv.js diff --git a/awx/ui/static/lib/jquery/src/data/var/data_user.js b/awx/ui/client/lib/jquery/src/data/var/data_user.js similarity index 100% rename from awx/ui/static/lib/jquery/src/data/var/data_user.js rename to awx/ui/client/lib/jquery/src/data/var/data_user.js diff --git a/awx/ui/static/lib/jquery/src/deferred.js b/awx/ui/client/lib/jquery/src/deferred.js similarity index 100% rename from awx/ui/static/lib/jquery/src/deferred.js rename to awx/ui/client/lib/jquery/src/deferred.js diff --git a/awx/ui/static/lib/jquery/src/deprecated.js b/awx/ui/client/lib/jquery/src/deprecated.js similarity index 100% rename from awx/ui/static/lib/jquery/src/deprecated.js rename to awx/ui/client/lib/jquery/src/deprecated.js diff --git a/awx/ui/static/lib/jquery/src/dimensions.js b/awx/ui/client/lib/jquery/src/dimensions.js similarity index 100% rename from awx/ui/static/lib/jquery/src/dimensions.js rename to awx/ui/client/lib/jquery/src/dimensions.js diff --git a/awx/ui/static/lib/jquery/src/effects.js b/awx/ui/client/lib/jquery/src/effects.js similarity index 100% rename from awx/ui/static/lib/jquery/src/effects.js rename to awx/ui/client/lib/jquery/src/effects.js diff --git a/awx/ui/static/lib/jquery/src/effects/Tween.js b/awx/ui/client/lib/jquery/src/effects/Tween.js similarity index 100% rename from awx/ui/static/lib/jquery/src/effects/Tween.js rename to awx/ui/client/lib/jquery/src/effects/Tween.js diff --git a/awx/ui/static/lib/jquery/src/effects/animatedSelector.js b/awx/ui/client/lib/jquery/src/effects/animatedSelector.js similarity index 100% rename from awx/ui/static/lib/jquery/src/effects/animatedSelector.js rename to awx/ui/client/lib/jquery/src/effects/animatedSelector.js diff --git a/awx/ui/static/lib/jquery/src/event.js b/awx/ui/client/lib/jquery/src/event.js similarity index 100% rename from awx/ui/static/lib/jquery/src/event.js rename to awx/ui/client/lib/jquery/src/event.js diff --git a/awx/ui/static/lib/jquery/src/event/alias.js b/awx/ui/client/lib/jquery/src/event/alias.js similarity index 100% rename from awx/ui/static/lib/jquery/src/event/alias.js rename to awx/ui/client/lib/jquery/src/event/alias.js diff --git a/awx/ui/static/lib/jquery/src/event/support.js b/awx/ui/client/lib/jquery/src/event/support.js similarity index 100% rename from awx/ui/static/lib/jquery/src/event/support.js rename to awx/ui/client/lib/jquery/src/event/support.js diff --git a/awx/ui/static/lib/jquery/src/exports/amd.js b/awx/ui/client/lib/jquery/src/exports/amd.js similarity index 100% rename from awx/ui/static/lib/jquery/src/exports/amd.js rename to awx/ui/client/lib/jquery/src/exports/amd.js diff --git a/awx/ui/static/lib/jquery/src/exports/global.js b/awx/ui/client/lib/jquery/src/exports/global.js similarity index 100% rename from awx/ui/static/lib/jquery/src/exports/global.js rename to awx/ui/client/lib/jquery/src/exports/global.js diff --git a/awx/ui/static/lib/jquery/src/intro.js b/awx/ui/client/lib/jquery/src/intro.js similarity index 100% rename from awx/ui/static/lib/jquery/src/intro.js rename to awx/ui/client/lib/jquery/src/intro.js diff --git a/awx/ui/static/lib/jquery/src/jquery.js b/awx/ui/client/lib/jquery/src/jquery.js similarity index 100% rename from awx/ui/static/lib/jquery/src/jquery.js rename to awx/ui/client/lib/jquery/src/jquery.js diff --git a/awx/ui/static/lib/jquery/src/manipulation.js b/awx/ui/client/lib/jquery/src/manipulation.js similarity index 100% rename from awx/ui/static/lib/jquery/src/manipulation.js rename to awx/ui/client/lib/jquery/src/manipulation.js diff --git a/awx/ui/static/lib/jquery/src/manipulation/_evalUrl.js b/awx/ui/client/lib/jquery/src/manipulation/_evalUrl.js similarity index 100% rename from awx/ui/static/lib/jquery/src/manipulation/_evalUrl.js rename to awx/ui/client/lib/jquery/src/manipulation/_evalUrl.js diff --git a/awx/ui/static/lib/jquery/src/manipulation/support.js b/awx/ui/client/lib/jquery/src/manipulation/support.js similarity index 100% rename from awx/ui/static/lib/jquery/src/manipulation/support.js rename to awx/ui/client/lib/jquery/src/manipulation/support.js diff --git a/awx/ui/static/lib/jquery/src/manipulation/var/rcheckableType.js b/awx/ui/client/lib/jquery/src/manipulation/var/rcheckableType.js similarity index 100% rename from awx/ui/static/lib/jquery/src/manipulation/var/rcheckableType.js rename to awx/ui/client/lib/jquery/src/manipulation/var/rcheckableType.js diff --git a/awx/ui/static/lib/jquery/src/offset.js b/awx/ui/client/lib/jquery/src/offset.js similarity index 100% rename from awx/ui/static/lib/jquery/src/offset.js rename to awx/ui/client/lib/jquery/src/offset.js diff --git a/awx/ui/static/lib/jquery/src/outro.js b/awx/ui/client/lib/jquery/src/outro.js similarity index 100% rename from awx/ui/static/lib/jquery/src/outro.js rename to awx/ui/client/lib/jquery/src/outro.js diff --git a/awx/ui/static/lib/jquery/src/queue.js b/awx/ui/client/lib/jquery/src/queue.js similarity index 100% rename from awx/ui/static/lib/jquery/src/queue.js rename to awx/ui/client/lib/jquery/src/queue.js diff --git a/awx/ui/static/lib/jquery/src/queue/delay.js b/awx/ui/client/lib/jquery/src/queue/delay.js similarity index 100% rename from awx/ui/static/lib/jquery/src/queue/delay.js rename to awx/ui/client/lib/jquery/src/queue/delay.js diff --git a/awx/ui/static/lib/jquery/src/selector-native.js b/awx/ui/client/lib/jquery/src/selector-native.js similarity index 100% rename from awx/ui/static/lib/jquery/src/selector-native.js rename to awx/ui/client/lib/jquery/src/selector-native.js diff --git a/awx/ui/static/lib/jquery/src/selector-sizzle.js b/awx/ui/client/lib/jquery/src/selector-sizzle.js similarity index 100% rename from awx/ui/static/lib/jquery/src/selector-sizzle.js rename to awx/ui/client/lib/jquery/src/selector-sizzle.js diff --git a/awx/ui/static/lib/jquery/src/selector.js b/awx/ui/client/lib/jquery/src/selector.js similarity index 100% rename from awx/ui/static/lib/jquery/src/selector.js rename to awx/ui/client/lib/jquery/src/selector.js diff --git a/awx/ui/static/lib/jquery/src/serialize.js b/awx/ui/client/lib/jquery/src/serialize.js similarity index 100% rename from awx/ui/static/lib/jquery/src/serialize.js rename to awx/ui/client/lib/jquery/src/serialize.js diff --git a/awx/ui/static/lib/jquery/src/sizzle/dist/sizzle.js b/awx/ui/client/lib/jquery/src/sizzle/dist/sizzle.js similarity index 100% rename from awx/ui/static/lib/jquery/src/sizzle/dist/sizzle.js rename to awx/ui/client/lib/jquery/src/sizzle/dist/sizzle.js diff --git a/awx/ui/static/lib/jquery/src/sizzle/dist/sizzle.min.js b/awx/ui/client/lib/jquery/src/sizzle/dist/sizzle.min.js similarity index 100% rename from awx/ui/static/lib/jquery/src/sizzle/dist/sizzle.min.js rename to awx/ui/client/lib/jquery/src/sizzle/dist/sizzle.min.js diff --git a/awx/ui/static/lib/jquery/src/sizzle/dist/sizzle.min.map b/awx/ui/client/lib/jquery/src/sizzle/dist/sizzle.min.map similarity index 100% rename from awx/ui/static/lib/jquery/src/sizzle/dist/sizzle.min.map rename to awx/ui/client/lib/jquery/src/sizzle/dist/sizzle.min.map diff --git a/awx/ui/static/lib/jquery/src/traversing.js b/awx/ui/client/lib/jquery/src/traversing.js similarity index 100% rename from awx/ui/static/lib/jquery/src/traversing.js rename to awx/ui/client/lib/jquery/src/traversing.js diff --git a/awx/ui/static/lib/jquery/src/traversing/findFilter.js b/awx/ui/client/lib/jquery/src/traversing/findFilter.js similarity index 100% rename from awx/ui/static/lib/jquery/src/traversing/findFilter.js rename to awx/ui/client/lib/jquery/src/traversing/findFilter.js diff --git a/awx/ui/static/lib/jquery/src/traversing/var/rneedsContext.js b/awx/ui/client/lib/jquery/src/traversing/var/rneedsContext.js similarity index 100% rename from awx/ui/static/lib/jquery/src/traversing/var/rneedsContext.js rename to awx/ui/client/lib/jquery/src/traversing/var/rneedsContext.js diff --git a/awx/ui/static/lib/jquery/src/var/arr.js b/awx/ui/client/lib/jquery/src/var/arr.js similarity index 100% rename from awx/ui/static/lib/jquery/src/var/arr.js rename to awx/ui/client/lib/jquery/src/var/arr.js diff --git a/awx/ui/static/lib/jquery/src/var/class2type.js b/awx/ui/client/lib/jquery/src/var/class2type.js similarity index 100% rename from awx/ui/static/lib/jquery/src/var/class2type.js rename to awx/ui/client/lib/jquery/src/var/class2type.js diff --git a/awx/ui/static/lib/jquery/src/var/concat.js b/awx/ui/client/lib/jquery/src/var/concat.js similarity index 100% rename from awx/ui/static/lib/jquery/src/var/concat.js rename to awx/ui/client/lib/jquery/src/var/concat.js diff --git a/awx/ui/static/lib/jquery/src/var/hasOwn.js b/awx/ui/client/lib/jquery/src/var/hasOwn.js similarity index 100% rename from awx/ui/static/lib/jquery/src/var/hasOwn.js rename to awx/ui/client/lib/jquery/src/var/hasOwn.js diff --git a/awx/ui/static/lib/jquery/src/var/indexOf.js b/awx/ui/client/lib/jquery/src/var/indexOf.js similarity index 100% rename from awx/ui/static/lib/jquery/src/var/indexOf.js rename to awx/ui/client/lib/jquery/src/var/indexOf.js diff --git a/awx/ui/static/lib/jquery/src/var/pnum.js b/awx/ui/client/lib/jquery/src/var/pnum.js similarity index 100% rename from awx/ui/static/lib/jquery/src/var/pnum.js rename to awx/ui/client/lib/jquery/src/var/pnum.js diff --git a/awx/ui/static/lib/jquery/src/var/push.js b/awx/ui/client/lib/jquery/src/var/push.js similarity index 100% rename from awx/ui/static/lib/jquery/src/var/push.js rename to awx/ui/client/lib/jquery/src/var/push.js diff --git a/awx/ui/static/lib/jquery/src/var/rnotwhite.js b/awx/ui/client/lib/jquery/src/var/rnotwhite.js similarity index 100% rename from awx/ui/static/lib/jquery/src/var/rnotwhite.js rename to awx/ui/client/lib/jquery/src/var/rnotwhite.js diff --git a/awx/ui/static/lib/jquery/src/var/slice.js b/awx/ui/client/lib/jquery/src/var/slice.js similarity index 100% rename from awx/ui/static/lib/jquery/src/var/slice.js rename to awx/ui/client/lib/jquery/src/var/slice.js diff --git a/awx/ui/static/lib/jquery/src/var/strundefined.js b/awx/ui/client/lib/jquery/src/var/strundefined.js similarity index 100% rename from awx/ui/static/lib/jquery/src/var/strundefined.js rename to awx/ui/client/lib/jquery/src/var/strundefined.js diff --git a/awx/ui/static/lib/jquery/src/var/support.js b/awx/ui/client/lib/jquery/src/var/support.js similarity index 100% rename from awx/ui/static/lib/jquery/src/var/support.js rename to awx/ui/client/lib/jquery/src/var/support.js diff --git a/awx/ui/static/lib/jquery/src/var/toString.js b/awx/ui/client/lib/jquery/src/var/toString.js similarity index 100% rename from awx/ui/static/lib/jquery/src/var/toString.js rename to awx/ui/client/lib/jquery/src/var/toString.js diff --git a/awx/ui/static/lib/jquery/src/wrap.js b/awx/ui/client/lib/jquery/src/wrap.js similarity index 100% rename from awx/ui/static/lib/jquery/src/wrap.js rename to awx/ui/client/lib/jquery/src/wrap.js diff --git a/awx/ui/static/lib/jqueryui/.bower.json b/awx/ui/client/lib/jqueryui/.bower.json similarity index 100% rename from awx/ui/static/lib/jqueryui/.bower.json rename to awx/ui/client/lib/jqueryui/.bower.json diff --git a/awx/ui/static/lib/jqueryui/.gitignore b/awx/ui/client/lib/jqueryui/.gitignore similarity index 100% rename from awx/ui/static/lib/jqueryui/.gitignore rename to awx/ui/client/lib/jqueryui/.gitignore diff --git a/awx/ui/static/lib/jqueryui/AUTHORS.txt b/awx/ui/client/lib/jqueryui/AUTHORS.txt similarity index 100% rename from awx/ui/static/lib/jqueryui/AUTHORS.txt rename to awx/ui/client/lib/jqueryui/AUTHORS.txt diff --git a/awx/ui/static/lib/jqueryui/MIT-LICENSE.txt b/awx/ui/client/lib/jqueryui/MIT-LICENSE.txt similarity index 100% rename from awx/ui/static/lib/jqueryui/MIT-LICENSE.txt rename to awx/ui/client/lib/jqueryui/MIT-LICENSE.txt diff --git a/awx/ui/static/lib/jqueryui/README.md b/awx/ui/client/lib/jqueryui/README.md similarity index 100% rename from awx/ui/static/lib/jqueryui/README.md rename to awx/ui/client/lib/jqueryui/README.md diff --git a/awx/ui/static/lib/jqueryui/bower.json b/awx/ui/client/lib/jqueryui/bower.json similarity index 93% rename from awx/ui/static/lib/jqueryui/bower.json rename to awx/ui/client/lib/jqueryui/bower.json index a2d6a20132..545a82ba24 100644 --- a/awx/ui/static/lib/jqueryui/bower.json +++ b/awx/ui/client/lib/jqueryui/bower.json @@ -1,10 +1,10 @@ -{ - "name": "jquery-ui", - "version": "1.10.4", - "main": [ - "ui/jquery-ui.js" - ], - "dependencies": { - "jquery": ">=1.6" - } -} +{ + "name": "jquery-ui", + "version": "1.10.4", + "main": [ + "ui/jquery-ui.js" + ], + "dependencies": { + "jquery": ">=1.6" + } +} diff --git a/awx/ui/static/lib/jqueryui/component.json b/awx/ui/client/lib/jqueryui/component.json similarity index 100% rename from awx/ui/static/lib/jqueryui/component.json rename to awx/ui/client/lib/jqueryui/component.json diff --git a/awx/ui/static/lib/jqueryui/composer.json b/awx/ui/client/lib/jqueryui/composer.json similarity index 100% rename from awx/ui/static/lib/jqueryui/composer.json rename to awx/ui/client/lib/jqueryui/composer.json diff --git a/awx/ui/static/lib/jqueryui/package.json b/awx/ui/client/lib/jqueryui/package.json similarity index 100% rename from awx/ui/static/lib/jqueryui/package.json rename to awx/ui/client/lib/jqueryui/package.json diff --git a/awx/ui/static/lib/jqueryui/themes/base/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/base/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/base/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png b/awx/ui/client/lib/jqueryui/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png rename to awx/ui/client/lib/jqueryui/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/images/ui-bg_flat_75_ffffff_40x100.png b/awx/ui/client/lib/jqueryui/themes/base/images/ui-bg_flat_75_ffffff_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/images/ui-bg_flat_75_ffffff_40x100.png rename to awx/ui/client/lib/jqueryui/themes/base/images/ui-bg_flat_75_ffffff_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png b/awx/ui/client/lib/jqueryui/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png rename to awx/ui/client/lib/jqueryui/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/images/ui-bg_glass_65_ffffff_1x400.png b/awx/ui/client/lib/jqueryui/themes/base/images/ui-bg_glass_65_ffffff_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/images/ui-bg_glass_65_ffffff_1x400.png rename to awx/ui/client/lib/jqueryui/themes/base/images/ui-bg_glass_65_ffffff_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/images/ui-bg_glass_75_dadada_1x400.png b/awx/ui/client/lib/jqueryui/themes/base/images/ui-bg_glass_75_dadada_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/images/ui-bg_glass_75_dadada_1x400.png rename to awx/ui/client/lib/jqueryui/themes/base/images/ui-bg_glass_75_dadada_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png b/awx/ui/client/lib/jqueryui/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png rename to awx/ui/client/lib/jqueryui/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png b/awx/ui/client/lib/jqueryui/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png rename to awx/ui/client/lib/jqueryui/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/awx/ui/client/lib/jqueryui/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png rename to awx/ui/client/lib/jqueryui/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/images/ui-icons_222222_256x240.png b/awx/ui/client/lib/jqueryui/themes/base/images/ui-icons_222222_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/images/ui-icons_222222_256x240.png rename to awx/ui/client/lib/jqueryui/themes/base/images/ui-icons_222222_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/images/ui-icons_2e83ff_256x240.png b/awx/ui/client/lib/jqueryui/themes/base/images/ui-icons_2e83ff_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/images/ui-icons_2e83ff_256x240.png rename to awx/ui/client/lib/jqueryui/themes/base/images/ui-icons_2e83ff_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/images/ui-icons_454545_256x240.png b/awx/ui/client/lib/jqueryui/themes/base/images/ui-icons_454545_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/images/ui-icons_454545_256x240.png rename to awx/ui/client/lib/jqueryui/themes/base/images/ui-icons_454545_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/images/ui-icons_888888_256x240.png b/awx/ui/client/lib/jqueryui/themes/base/images/ui-icons_888888_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/images/ui-icons_888888_256x240.png rename to awx/ui/client/lib/jqueryui/themes/base/images/ui-icons_888888_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/images/ui-icons_cd0a0a_256x240.png b/awx/ui/client/lib/jqueryui/themes/base/images/ui-icons_cd0a0a_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/images/ui-icons_cd0a0a_256x240.png rename to awx/ui/client/lib/jqueryui/themes/base/images/ui-icons_cd0a0a_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/jquery-ui.css b/awx/ui/client/lib/jqueryui/themes/base/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/jquery-ui.css rename to awx/ui/client/lib/jqueryui/themes/base/jquery-ui.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/jquery.ui.accordion.css b/awx/ui/client/lib/jqueryui/themes/base/jquery.ui.accordion.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/jquery.ui.accordion.css rename to awx/ui/client/lib/jqueryui/themes/base/jquery.ui.accordion.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/jquery.ui.all.css b/awx/ui/client/lib/jqueryui/themes/base/jquery.ui.all.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/jquery.ui.all.css rename to awx/ui/client/lib/jqueryui/themes/base/jquery.ui.all.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/jquery.ui.autocomplete.css b/awx/ui/client/lib/jqueryui/themes/base/jquery.ui.autocomplete.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/jquery.ui.autocomplete.css rename to awx/ui/client/lib/jqueryui/themes/base/jquery.ui.autocomplete.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/jquery.ui.base.css b/awx/ui/client/lib/jqueryui/themes/base/jquery.ui.base.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/jquery.ui.base.css rename to awx/ui/client/lib/jqueryui/themes/base/jquery.ui.base.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/jquery.ui.button.css b/awx/ui/client/lib/jqueryui/themes/base/jquery.ui.button.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/jquery.ui.button.css rename to awx/ui/client/lib/jqueryui/themes/base/jquery.ui.button.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/jquery.ui.core.css b/awx/ui/client/lib/jqueryui/themes/base/jquery.ui.core.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/jquery.ui.core.css rename to awx/ui/client/lib/jqueryui/themes/base/jquery.ui.core.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/jquery.ui.datepicker.css b/awx/ui/client/lib/jqueryui/themes/base/jquery.ui.datepicker.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/jquery.ui.datepicker.css rename to awx/ui/client/lib/jqueryui/themes/base/jquery.ui.datepicker.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/jquery.ui.dialog.css b/awx/ui/client/lib/jqueryui/themes/base/jquery.ui.dialog.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/jquery.ui.dialog.css rename to awx/ui/client/lib/jqueryui/themes/base/jquery.ui.dialog.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/jquery.ui.menu.css b/awx/ui/client/lib/jqueryui/themes/base/jquery.ui.menu.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/jquery.ui.menu.css rename to awx/ui/client/lib/jqueryui/themes/base/jquery.ui.menu.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/jquery.ui.progressbar.css b/awx/ui/client/lib/jqueryui/themes/base/jquery.ui.progressbar.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/jquery.ui.progressbar.css rename to awx/ui/client/lib/jqueryui/themes/base/jquery.ui.progressbar.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/jquery.ui.resizable.css b/awx/ui/client/lib/jqueryui/themes/base/jquery.ui.resizable.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/jquery.ui.resizable.css rename to awx/ui/client/lib/jqueryui/themes/base/jquery.ui.resizable.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/jquery.ui.selectable.css b/awx/ui/client/lib/jqueryui/themes/base/jquery.ui.selectable.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/jquery.ui.selectable.css rename to awx/ui/client/lib/jqueryui/themes/base/jquery.ui.selectable.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/jquery.ui.slider.css b/awx/ui/client/lib/jqueryui/themes/base/jquery.ui.slider.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/jquery.ui.slider.css rename to awx/ui/client/lib/jqueryui/themes/base/jquery.ui.slider.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/jquery.ui.spinner.css b/awx/ui/client/lib/jqueryui/themes/base/jquery.ui.spinner.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/jquery.ui.spinner.css rename to awx/ui/client/lib/jqueryui/themes/base/jquery.ui.spinner.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/jquery.ui.tabs.css b/awx/ui/client/lib/jqueryui/themes/base/jquery.ui.tabs.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/jquery.ui.tabs.css rename to awx/ui/client/lib/jqueryui/themes/base/jquery.ui.tabs.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/jquery.ui.theme.css b/awx/ui/client/lib/jqueryui/themes/base/jquery.ui.theme.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/jquery.ui.theme.css rename to awx/ui/client/lib/jqueryui/themes/base/jquery.ui.theme.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/jquery.ui.tooltip.css b/awx/ui/client/lib/jqueryui/themes/base/jquery.ui.tooltip.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/jquery.ui.tooltip.css rename to awx/ui/client/lib/jqueryui/themes/base/jquery.ui.tooltip.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/base/minified/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/base/minified/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-bg_flat_0_aaaaaa_40x100.png b/awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-bg_flat_0_aaaaaa_40x100.png rename to awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-bg_flat_75_ffffff_40x100.png b/awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-bg_flat_75_ffffff_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-bg_flat_75_ffffff_40x100.png rename to awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-bg_flat_75_ffffff_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-bg_glass_55_fbf9ee_1x400.png b/awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-bg_glass_55_fbf9ee_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-bg_glass_55_fbf9ee_1x400.png rename to awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-bg_glass_55_fbf9ee_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-bg_glass_65_ffffff_1x400.png b/awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-bg_glass_65_ffffff_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-bg_glass_65_ffffff_1x400.png rename to awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-bg_glass_65_ffffff_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-bg_glass_75_dadada_1x400.png b/awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-bg_glass_75_dadada_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-bg_glass_75_dadada_1x400.png rename to awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-bg_glass_75_dadada_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-bg_glass_75_e6e6e6_1x400.png b/awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-bg_glass_75_e6e6e6_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-bg_glass_75_e6e6e6_1x400.png rename to awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-bg_glass_75_e6e6e6_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-bg_glass_95_fef1ec_1x400.png b/awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-bg_glass_95_fef1ec_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-bg_glass_95_fef1ec_1x400.png rename to awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-bg_glass_95_fef1ec_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-bg_highlight-soft_75_cccccc_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-bg_highlight-soft_75_cccccc_1x100.png rename to awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-bg_highlight-soft_75_cccccc_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-icons_222222_256x240.png b/awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-icons_222222_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-icons_222222_256x240.png rename to awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-icons_222222_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-icons_2e83ff_256x240.png b/awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-icons_2e83ff_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-icons_2e83ff_256x240.png rename to awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-icons_2e83ff_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-icons_454545_256x240.png b/awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-icons_454545_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-icons_454545_256x240.png rename to awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-icons_454545_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-icons_888888_256x240.png b/awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-icons_888888_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-icons_888888_256x240.png rename to awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-icons_888888_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-icons_cd0a0a_256x240.png b/awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-icons_cd0a0a_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/images/ui-icons_cd0a0a_256x240.png rename to awx/ui/client/lib/jqueryui/themes/base/minified/images/ui-icons_cd0a0a_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/jquery-ui.min.css b/awx/ui/client/lib/jqueryui/themes/base/minified/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/jquery-ui.min.css rename to awx/ui/client/lib/jqueryui/themes/base/minified/jquery-ui.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.accordion.min.css b/awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.accordion.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.accordion.min.css rename to awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.accordion.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.autocomplete.min.css b/awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.autocomplete.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.autocomplete.min.css rename to awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.autocomplete.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.button.min.css b/awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.button.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.button.min.css rename to awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.button.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.core.min.css b/awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.core.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.core.min.css rename to awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.core.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.datepicker.min.css b/awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.datepicker.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.datepicker.min.css rename to awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.datepicker.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.dialog.min.css b/awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.dialog.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.dialog.min.css rename to awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.dialog.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.menu.min.css b/awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.menu.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.menu.min.css rename to awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.menu.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.progressbar.min.css b/awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.progressbar.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.progressbar.min.css rename to awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.progressbar.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.resizable.min.css b/awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.resizable.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.resizable.min.css rename to awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.resizable.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.selectable.min.css b/awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.selectable.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.selectable.min.css rename to awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.selectable.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.slider.min.css b/awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.slider.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.slider.min.css rename to awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.slider.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.spinner.min.css b/awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.spinner.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.spinner.min.css rename to awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.spinner.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.tabs.min.css b/awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.tabs.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.tabs.min.css rename to awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.tabs.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.theme.min.css b/awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.theme.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.theme.min.css rename to awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.theme.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.tooltip.min.css b/awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.tooltip.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/base/minified/jquery.ui.tooltip.min.css rename to awx/ui/client/lib/jqueryui/themes/base/minified/jquery.ui.tooltip.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/black-tie/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/black-tie/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/black-tie/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/black-tie/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-bg_diagonals-thick_8_333333_40x40.png b/awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-bg_diagonals-thick_8_333333_40x40.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-bg_diagonals-thick_8_333333_40x40.png rename to awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-bg_diagonals-thick_8_333333_40x40.png diff --git a/awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-bg_flat_65_ffffff_40x100.png b/awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-bg_flat_65_ffffff_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-bg_flat_65_ffffff_40x100.png rename to awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-bg_flat_65_ffffff_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-bg_glass_40_111111_1x400.png b/awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-bg_glass_40_111111_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-bg_glass_40_111111_1x400.png rename to awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-bg_glass_40_111111_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-bg_glass_55_1c1c1c_1x400.png b/awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-bg_glass_55_1c1c1c_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-bg_glass_55_1c1c1c_1x400.png rename to awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-bg_glass_55_1c1c1c_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-bg_highlight-hard_100_f9f9f9_1x100.png b/awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-bg_highlight-hard_100_f9f9f9_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-bg_highlight-hard_100_f9f9f9_1x100.png rename to awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-bg_highlight-hard_100_f9f9f9_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-bg_highlight-hard_40_aaaaaa_1x100.png b/awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-bg_highlight-hard_40_aaaaaa_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-bg_highlight-hard_40_aaaaaa_1x100.png rename to awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-bg_highlight-hard_40_aaaaaa_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-bg_highlight-soft_50_aaaaaa_1x100.png b/awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-bg_highlight-soft_50_aaaaaa_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-bg_highlight-soft_50_aaaaaa_1x100.png rename to awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-bg_highlight-soft_50_aaaaaa_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-bg_inset-hard_45_cd0a0a_1x100.png b/awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-bg_inset-hard_45_cd0a0a_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-bg_inset-hard_45_cd0a0a_1x100.png rename to awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-bg_inset-hard_45_cd0a0a_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-bg_inset-hard_55_ffeb80_1x100.png b/awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-bg_inset-hard_55_ffeb80_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-bg_inset-hard_55_ffeb80_1x100.png rename to awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-bg_inset-hard_55_ffeb80_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-icons_222222_256x240.png b/awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-icons_222222_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-icons_222222_256x240.png rename to awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-icons_222222_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-icons_4ca300_256x240.png b/awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-icons_4ca300_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-icons_4ca300_256x240.png rename to awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-icons_4ca300_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-icons_bbbbbb_256x240.png b/awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-icons_bbbbbb_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-icons_bbbbbb_256x240.png rename to awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-icons_bbbbbb_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-icons_ededed_256x240.png b/awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-icons_ededed_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-icons_ededed_256x240.png rename to awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-icons_ededed_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-icons_ffcf29_256x240.png b/awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-icons_ffcf29_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-icons_ffcf29_256x240.png rename to awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-icons_ffcf29_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/black-tie/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jqueryui/themes/black-tie/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/black-tie/jquery-ui.css b/awx/ui/client/lib/jqueryui/themes/black-tie/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/black-tie/jquery-ui.css rename to awx/ui/client/lib/jqueryui/themes/black-tie/jquery-ui.css diff --git a/awx/ui/static/lib/jqueryui/themes/black-tie/jquery-ui.min.css b/awx/ui/client/lib/jqueryui/themes/black-tie/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/black-tie/jquery-ui.min.css rename to awx/ui/client/lib/jqueryui/themes/black-tie/jquery-ui.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/black-tie/jquery.ui.theme.css b/awx/ui/client/lib/jqueryui/themes/black-tie/jquery.ui.theme.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/black-tie/jquery.ui.theme.css rename to awx/ui/client/lib/jqueryui/themes/black-tie/jquery.ui.theme.css diff --git a/awx/ui/static/lib/jqueryui/themes/blitzer/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/blitzer/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/blitzer/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/blitzer/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/blitzer/images/ui-bg_diagonals-thick_75_f3d8d8_40x40.png b/awx/ui/client/lib/jqueryui/themes/blitzer/images/ui-bg_diagonals-thick_75_f3d8d8_40x40.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/blitzer/images/ui-bg_diagonals-thick_75_f3d8d8_40x40.png rename to awx/ui/client/lib/jqueryui/themes/blitzer/images/ui-bg_diagonals-thick_75_f3d8d8_40x40.png diff --git a/awx/ui/static/lib/jqueryui/themes/blitzer/images/ui-bg_dots-small_65_a6a6a6_2x2.png b/awx/ui/client/lib/jqueryui/themes/blitzer/images/ui-bg_dots-small_65_a6a6a6_2x2.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/blitzer/images/ui-bg_dots-small_65_a6a6a6_2x2.png rename to awx/ui/client/lib/jqueryui/themes/blitzer/images/ui-bg_dots-small_65_a6a6a6_2x2.png diff --git a/awx/ui/static/lib/jqueryui/themes/blitzer/images/ui-bg_flat_0_333333_40x100.png b/awx/ui/client/lib/jqueryui/themes/blitzer/images/ui-bg_flat_0_333333_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/blitzer/images/ui-bg_flat_0_333333_40x100.png rename to awx/ui/client/lib/jqueryui/themes/blitzer/images/ui-bg_flat_0_333333_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/blitzer/images/ui-bg_flat_65_ffffff_40x100.png b/awx/ui/client/lib/jqueryui/themes/blitzer/images/ui-bg_flat_65_ffffff_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/blitzer/images/ui-bg_flat_65_ffffff_40x100.png rename to awx/ui/client/lib/jqueryui/themes/blitzer/images/ui-bg_flat_65_ffffff_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/blitzer/images/ui-bg_flat_75_ffffff_40x100.png b/awx/ui/client/lib/jqueryui/themes/blitzer/images/ui-bg_flat_75_ffffff_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/blitzer/images/ui-bg_flat_75_ffffff_40x100.png rename to awx/ui/client/lib/jqueryui/themes/blitzer/images/ui-bg_flat_75_ffffff_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/blitzer/images/ui-bg_glass_55_fbf8ee_1x400.png b/awx/ui/client/lib/jqueryui/themes/blitzer/images/ui-bg_glass_55_fbf8ee_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/blitzer/images/ui-bg_glass_55_fbf8ee_1x400.png rename to awx/ui/client/lib/jqueryui/themes/blitzer/images/ui-bg_glass_55_fbf8ee_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/blitzer/images/ui-bg_highlight-hard_100_eeeeee_1x100.png b/awx/ui/client/lib/jqueryui/themes/blitzer/images/ui-bg_highlight-hard_100_eeeeee_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/blitzer/images/ui-bg_highlight-hard_100_eeeeee_1x100.png rename to awx/ui/client/lib/jqueryui/themes/blitzer/images/ui-bg_highlight-hard_100_eeeeee_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/blitzer/images/ui-bg_highlight-hard_100_f6f6f6_1x100.png b/awx/ui/client/lib/jqueryui/themes/blitzer/images/ui-bg_highlight-hard_100_f6f6f6_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/blitzer/images/ui-bg_highlight-hard_100_f6f6f6_1x100.png rename to awx/ui/client/lib/jqueryui/themes/blitzer/images/ui-bg_highlight-hard_100_f6f6f6_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/blitzer/images/ui-bg_highlight-soft_15_cc0000_1x100.png b/awx/ui/client/lib/jqueryui/themes/blitzer/images/ui-bg_highlight-soft_15_cc0000_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/blitzer/images/ui-bg_highlight-soft_15_cc0000_1x100.png rename to awx/ui/client/lib/jqueryui/themes/blitzer/images/ui-bg_highlight-soft_15_cc0000_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/blitzer/images/ui-icons_004276_256x240.png b/awx/ui/client/lib/jqueryui/themes/blitzer/images/ui-icons_004276_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/blitzer/images/ui-icons_004276_256x240.png rename to awx/ui/client/lib/jqueryui/themes/blitzer/images/ui-icons_004276_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/blitzer/images/ui-icons_cc0000_256x240.png b/awx/ui/client/lib/jqueryui/themes/blitzer/images/ui-icons_cc0000_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/blitzer/images/ui-icons_cc0000_256x240.png rename to awx/ui/client/lib/jqueryui/themes/blitzer/images/ui-icons_cc0000_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/blitzer/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jqueryui/themes/blitzer/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/blitzer/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jqueryui/themes/blitzer/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/blitzer/jquery-ui.css b/awx/ui/client/lib/jqueryui/themes/blitzer/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/blitzer/jquery-ui.css rename to awx/ui/client/lib/jqueryui/themes/blitzer/jquery-ui.css diff --git a/awx/ui/static/lib/jqueryui/themes/blitzer/jquery-ui.min.css b/awx/ui/client/lib/jqueryui/themes/blitzer/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/blitzer/jquery-ui.min.css rename to awx/ui/client/lib/jqueryui/themes/blitzer/jquery-ui.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/blitzer/jquery.ui.theme.css b/awx/ui/client/lib/jqueryui/themes/blitzer/jquery.ui.theme.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/blitzer/jquery.ui.theme.css rename to awx/ui/client/lib/jqueryui/themes/blitzer/jquery.ui.theme.css diff --git a/awx/ui/static/lib/jqueryui/themes/cupertino/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/cupertino/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/cupertino/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/cupertino/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png b/awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png rename to awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png diff --git a/awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-bg_flat_15_cd0a0a_40x100.png b/awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-bg_flat_15_cd0a0a_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-bg_flat_15_cd0a0a_40x100.png rename to awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-bg_flat_15_cd0a0a_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-bg_glass_100_e4f1fb_1x400.png b/awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-bg_glass_100_e4f1fb_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-bg_glass_100_e4f1fb_1x400.png rename to awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-bg_glass_100_e4f1fb_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-bg_glass_50_3baae3_1x400.png b/awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-bg_glass_50_3baae3_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-bg_glass_50_3baae3_1x400.png rename to awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-bg_glass_50_3baae3_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-bg_glass_80_d7ebf9_1x400.png b/awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-bg_glass_80_d7ebf9_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-bg_glass_80_d7ebf9_1x400.png rename to awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-bg_glass_80_d7ebf9_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png b/awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png rename to awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-bg_highlight-hard_70_000000_1x100.png b/awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-bg_highlight-hard_70_000000_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-bg_highlight-hard_70_000000_1x100.png rename to awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-bg_highlight-hard_70_000000_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-bg_highlight-soft_100_deedf7_1x100.png b/awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-bg_highlight-soft_100_deedf7_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-bg_highlight-soft_100_deedf7_1x100.png rename to awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-bg_highlight-soft_100_deedf7_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-bg_highlight-soft_25_ffef8f_1x100.png b/awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-bg_highlight-soft_25_ffef8f_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-bg_highlight-soft_25_ffef8f_1x100.png rename to awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-bg_highlight-soft_25_ffef8f_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-icons_2694e8_256x240.png b/awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-icons_2694e8_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-icons_2694e8_256x240.png rename to awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-icons_2694e8_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-icons_2e83ff_256x240.png b/awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-icons_2e83ff_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-icons_2e83ff_256x240.png rename to awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-icons_2e83ff_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-icons_3d80b3_256x240.png b/awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-icons_3d80b3_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-icons_3d80b3_256x240.png rename to awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-icons_3d80b3_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-icons_72a7cf_256x240.png b/awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-icons_72a7cf_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-icons_72a7cf_256x240.png rename to awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-icons_72a7cf_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/cupertino/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jqueryui/themes/cupertino/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/cupertino/jquery-ui.css b/awx/ui/client/lib/jqueryui/themes/cupertino/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/cupertino/jquery-ui.css rename to awx/ui/client/lib/jqueryui/themes/cupertino/jquery-ui.css diff --git a/awx/ui/static/lib/jqueryui/themes/cupertino/jquery-ui.min.css b/awx/ui/client/lib/jqueryui/themes/cupertino/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/cupertino/jquery-ui.min.css rename to awx/ui/client/lib/jqueryui/themes/cupertino/jquery-ui.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/cupertino/jquery.ui.theme.css b/awx/ui/client/lib/jqueryui/themes/cupertino/jquery.ui.theme.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/cupertino/jquery.ui.theme.css rename to awx/ui/client/lib/jqueryui/themes/cupertino/jquery.ui.theme.css diff --git a/awx/ui/static/lib/jqueryui/themes/dark-hive/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/dark-hive/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dark-hive/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/dark-hive/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-bg_flat_30_cccccc_40x100.png b/awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-bg_flat_30_cccccc_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-bg_flat_30_cccccc_40x100.png rename to awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-bg_flat_30_cccccc_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-bg_flat_50_5c5c5c_40x100.png b/awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-bg_flat_50_5c5c5c_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-bg_flat_50_5c5c5c_40x100.png rename to awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-bg_flat_50_5c5c5c_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-bg_glass_40_ffc73d_1x400.png b/awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-bg_glass_40_ffc73d_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-bg_glass_40_ffc73d_1x400.png rename to awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-bg_glass_40_ffc73d_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-bg_highlight-hard_20_0972a5_1x100.png b/awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-bg_highlight-hard_20_0972a5_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-bg_highlight-hard_20_0972a5_1x100.png rename to awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-bg_highlight-hard_20_0972a5_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-bg_highlight-soft_33_003147_1x100.png b/awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-bg_highlight-soft_33_003147_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-bg_highlight-soft_33_003147_1x100.png rename to awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-bg_highlight-soft_33_003147_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-bg_highlight-soft_35_222222_1x100.png b/awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-bg_highlight-soft_35_222222_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-bg_highlight-soft_35_222222_1x100.png rename to awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-bg_highlight-soft_35_222222_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-bg_highlight-soft_44_444444_1x100.png b/awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-bg_highlight-soft_44_444444_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-bg_highlight-soft_44_444444_1x100.png rename to awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-bg_highlight-soft_44_444444_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-bg_highlight-soft_80_eeeeee_1x100.png b/awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-bg_highlight-soft_80_eeeeee_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-bg_highlight-soft_80_eeeeee_1x100.png rename to awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-bg_highlight-soft_80_eeeeee_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-bg_loop_25_000000_21x21.png b/awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-bg_loop_25_000000_21x21.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-bg_loop_25_000000_21x21.png rename to awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-bg_loop_25_000000_21x21.png diff --git a/awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-icons_222222_256x240.png b/awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-icons_222222_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-icons_222222_256x240.png rename to awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-icons_222222_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-icons_4b8e0b_256x240.png b/awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-icons_4b8e0b_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-icons_4b8e0b_256x240.png rename to awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-icons_4b8e0b_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-icons_a83300_256x240.png b/awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-icons_a83300_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-icons_a83300_256x240.png rename to awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-icons_a83300_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-icons_cccccc_256x240.png b/awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-icons_cccccc_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-icons_cccccc_256x240.png rename to awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-icons_cccccc_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dark-hive/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jqueryui/themes/dark-hive/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/dark-hive/jquery-ui.css b/awx/ui/client/lib/jqueryui/themes/dark-hive/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dark-hive/jquery-ui.css rename to awx/ui/client/lib/jqueryui/themes/dark-hive/jquery-ui.css diff --git a/awx/ui/static/lib/jqueryui/themes/dark-hive/jquery-ui.min.css b/awx/ui/client/lib/jqueryui/themes/dark-hive/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dark-hive/jquery-ui.min.css rename to awx/ui/client/lib/jqueryui/themes/dark-hive/jquery-ui.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/dark-hive/jquery.ui.theme.css b/awx/ui/client/lib/jqueryui/themes/dark-hive/jquery.ui.theme.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dark-hive/jquery.ui.theme.css rename to awx/ui/client/lib/jqueryui/themes/dark-hive/jquery.ui.theme.css diff --git a/awx/ui/static/lib/jqueryui/themes/dot-luv/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/dot-luv/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dot-luv/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/dot-luv/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/dot-luv/images/ui-bg_diagonals-thick_15_0b3e6f_40x40.png b/awx/ui/client/lib/jqueryui/themes/dot-luv/images/ui-bg_diagonals-thick_15_0b3e6f_40x40.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dot-luv/images/ui-bg_diagonals-thick_15_0b3e6f_40x40.png rename to awx/ui/client/lib/jqueryui/themes/dot-luv/images/ui-bg_diagonals-thick_15_0b3e6f_40x40.png diff --git a/awx/ui/static/lib/jqueryui/themes/dot-luv/images/ui-bg_dots-medium_30_0b58a2_4x4.png b/awx/ui/client/lib/jqueryui/themes/dot-luv/images/ui-bg_dots-medium_30_0b58a2_4x4.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dot-luv/images/ui-bg_dots-medium_30_0b58a2_4x4.png rename to awx/ui/client/lib/jqueryui/themes/dot-luv/images/ui-bg_dots-medium_30_0b58a2_4x4.png diff --git a/awx/ui/static/lib/jqueryui/themes/dot-luv/images/ui-bg_dots-small_20_333333_2x2.png b/awx/ui/client/lib/jqueryui/themes/dot-luv/images/ui-bg_dots-small_20_333333_2x2.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dot-luv/images/ui-bg_dots-small_20_333333_2x2.png rename to awx/ui/client/lib/jqueryui/themes/dot-luv/images/ui-bg_dots-small_20_333333_2x2.png diff --git a/awx/ui/static/lib/jqueryui/themes/dot-luv/images/ui-bg_dots-small_30_a32d00_2x2.png b/awx/ui/client/lib/jqueryui/themes/dot-luv/images/ui-bg_dots-small_30_a32d00_2x2.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dot-luv/images/ui-bg_dots-small_30_a32d00_2x2.png rename to awx/ui/client/lib/jqueryui/themes/dot-luv/images/ui-bg_dots-small_30_a32d00_2x2.png diff --git a/awx/ui/static/lib/jqueryui/themes/dot-luv/images/ui-bg_dots-small_40_00498f_2x2.png b/awx/ui/client/lib/jqueryui/themes/dot-luv/images/ui-bg_dots-small_40_00498f_2x2.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dot-luv/images/ui-bg_dots-small_40_00498f_2x2.png rename to awx/ui/client/lib/jqueryui/themes/dot-luv/images/ui-bg_dots-small_40_00498f_2x2.png diff --git a/awx/ui/static/lib/jqueryui/themes/dot-luv/images/ui-bg_flat_0_aaaaaa_40x100.png b/awx/ui/client/lib/jqueryui/themes/dot-luv/images/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dot-luv/images/ui-bg_flat_0_aaaaaa_40x100.png rename to awx/ui/client/lib/jqueryui/themes/dot-luv/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/dot-luv/images/ui-bg_flat_40_292929_40x100.png b/awx/ui/client/lib/jqueryui/themes/dot-luv/images/ui-bg_flat_40_292929_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dot-luv/images/ui-bg_flat_40_292929_40x100.png rename to awx/ui/client/lib/jqueryui/themes/dot-luv/images/ui-bg_flat_40_292929_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/dot-luv/images/ui-bg_gloss-wave_20_111111_500x100.png b/awx/ui/client/lib/jqueryui/themes/dot-luv/images/ui-bg_gloss-wave_20_111111_500x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dot-luv/images/ui-bg_gloss-wave_20_111111_500x100.png rename to awx/ui/client/lib/jqueryui/themes/dot-luv/images/ui-bg_gloss-wave_20_111111_500x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/dot-luv/images/ui-icons_00498f_256x240.png b/awx/ui/client/lib/jqueryui/themes/dot-luv/images/ui-icons_00498f_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dot-luv/images/ui-icons_00498f_256x240.png rename to awx/ui/client/lib/jqueryui/themes/dot-luv/images/ui-icons_00498f_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/dot-luv/images/ui-icons_98d2fb_256x240.png b/awx/ui/client/lib/jqueryui/themes/dot-luv/images/ui-icons_98d2fb_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dot-luv/images/ui-icons_98d2fb_256x240.png rename to awx/ui/client/lib/jqueryui/themes/dot-luv/images/ui-icons_98d2fb_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/dot-luv/images/ui-icons_9ccdfc_256x240.png b/awx/ui/client/lib/jqueryui/themes/dot-luv/images/ui-icons_9ccdfc_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dot-luv/images/ui-icons_9ccdfc_256x240.png rename to awx/ui/client/lib/jqueryui/themes/dot-luv/images/ui-icons_9ccdfc_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/dot-luv/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jqueryui/themes/dot-luv/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dot-luv/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jqueryui/themes/dot-luv/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/dot-luv/jquery-ui.css b/awx/ui/client/lib/jqueryui/themes/dot-luv/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dot-luv/jquery-ui.css rename to awx/ui/client/lib/jqueryui/themes/dot-luv/jquery-ui.css diff --git a/awx/ui/static/lib/jqueryui/themes/dot-luv/jquery-ui.min.css b/awx/ui/client/lib/jqueryui/themes/dot-luv/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dot-luv/jquery-ui.min.css rename to awx/ui/client/lib/jqueryui/themes/dot-luv/jquery-ui.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/dot-luv/jquery.ui.theme.css b/awx/ui/client/lib/jqueryui/themes/dot-luv/jquery.ui.theme.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/dot-luv/jquery.ui.theme.css rename to awx/ui/client/lib/jqueryui/themes/dot-luv/jquery.ui.theme.css diff --git a/awx/ui/static/lib/jqueryui/themes/eggplant/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/eggplant/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/eggplant/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/eggplant/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-bg_flat_0_aaaaaa_40x100.png b/awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-bg_flat_0_aaaaaa_40x100.png rename to awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-bg_flat_0_eeeeee_40x100.png b/awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-bg_flat_0_eeeeee_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-bg_flat_0_eeeeee_40x100.png rename to awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-bg_flat_0_eeeeee_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-bg_flat_55_994d53_40x100.png b/awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-bg_flat_55_994d53_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-bg_flat_55_994d53_40x100.png rename to awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-bg_flat_55_994d53_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-bg_flat_55_fafafa_40x100.png b/awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-bg_flat_55_fafafa_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-bg_flat_55_fafafa_40x100.png rename to awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-bg_flat_55_fafafa_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-bg_gloss-wave_30_3d3644_500x100.png b/awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-bg_gloss-wave_30_3d3644_500x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-bg_gloss-wave_30_3d3644_500x100.png rename to awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-bg_gloss-wave_30_3d3644_500x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-bg_highlight-soft_100_dcd9de_1x100.png b/awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-bg_highlight-soft_100_dcd9de_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-bg_highlight-soft_100_dcd9de_1x100.png rename to awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-bg_highlight-soft_100_dcd9de_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-bg_highlight-soft_100_eae6ea_1x100.png b/awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-bg_highlight-soft_100_eae6ea_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-bg_highlight-soft_100_eae6ea_1x100.png rename to awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-bg_highlight-soft_100_eae6ea_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-bg_highlight-soft_25_30273a_1x100.png b/awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-bg_highlight-soft_25_30273a_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-bg_highlight-soft_25_30273a_1x100.png rename to awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-bg_highlight-soft_25_30273a_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-bg_highlight-soft_45_5f5964_1x100.png b/awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-bg_highlight-soft_45_5f5964_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-bg_highlight-soft_45_5f5964_1x100.png rename to awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-bg_highlight-soft_45_5f5964_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-icons_454545_256x240.png b/awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-icons_454545_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-icons_454545_256x240.png rename to awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-icons_454545_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-icons_734d99_256x240.png b/awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-icons_734d99_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-icons_734d99_256x240.png rename to awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-icons_734d99_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-icons_8d78a5_256x240.png b/awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-icons_8d78a5_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-icons_8d78a5_256x240.png rename to awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-icons_8d78a5_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-icons_a8a3ae_256x240.png b/awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-icons_a8a3ae_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-icons_a8a3ae_256x240.png rename to awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-icons_a8a3ae_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-icons_ebccce_256x240.png b/awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-icons_ebccce_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-icons_ebccce_256x240.png rename to awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-icons_ebccce_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/eggplant/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jqueryui/themes/eggplant/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/eggplant/jquery-ui.css b/awx/ui/client/lib/jqueryui/themes/eggplant/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/eggplant/jquery-ui.css rename to awx/ui/client/lib/jqueryui/themes/eggplant/jquery-ui.css diff --git a/awx/ui/static/lib/jqueryui/themes/eggplant/jquery-ui.min.css b/awx/ui/client/lib/jqueryui/themes/eggplant/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/eggplant/jquery-ui.min.css rename to awx/ui/client/lib/jqueryui/themes/eggplant/jquery-ui.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/eggplant/jquery.ui.theme.css b/awx/ui/client/lib/jqueryui/themes/eggplant/jquery.ui.theme.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/eggplant/jquery.ui.theme.css rename to awx/ui/client/lib/jqueryui/themes/eggplant/jquery.ui.theme.css diff --git a/awx/ui/static/lib/jqueryui/themes/excite-bike/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/excite-bike/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/excite-bike/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/excite-bike/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-bg_diagonals-small_25_c5ddfc_40x40.png b/awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-bg_diagonals-small_25_c5ddfc_40x40.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-bg_diagonals-small_25_c5ddfc_40x40.png rename to awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-bg_diagonals-small_25_c5ddfc_40x40.png diff --git a/awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-bg_diagonals-thick_20_e69700_40x40.png b/awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-bg_diagonals-thick_20_e69700_40x40.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-bg_diagonals-thick_20_e69700_40x40.png rename to awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-bg_diagonals-thick_20_e69700_40x40.png diff --git a/awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-bg_diagonals-thick_22_1484e6_40x40.png b/awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-bg_diagonals-thick_22_1484e6_40x40.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-bg_diagonals-thick_22_1484e6_40x40.png rename to awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-bg_diagonals-thick_22_1484e6_40x40.png diff --git a/awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-bg_diagonals-thick_26_2293f7_40x40.png b/awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-bg_diagonals-thick_26_2293f7_40x40.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-bg_diagonals-thick_26_2293f7_40x40.png rename to awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-bg_diagonals-thick_26_2293f7_40x40.png diff --git a/awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-bg_flat_0_e69700_40x100.png b/awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-bg_flat_0_e69700_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-bg_flat_0_e69700_40x100.png rename to awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-bg_flat_0_e69700_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-bg_flat_0_e6b900_40x100.png b/awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-bg_flat_0_e6b900_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-bg_flat_0_e6b900_40x100.png rename to awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-bg_flat_0_e6b900_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-bg_highlight-soft_100_f9f9f9_1x100.png b/awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-bg_highlight-soft_100_f9f9f9_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-bg_highlight-soft_100_f9f9f9_1x100.png rename to awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-bg_highlight-soft_100_f9f9f9_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-bg_inset-hard_100_eeeeee_1x100.png b/awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-bg_inset-hard_100_eeeeee_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-bg_inset-hard_100_eeeeee_1x100.png rename to awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-bg_inset-hard_100_eeeeee_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-icons_0a82eb_256x240.png b/awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-icons_0a82eb_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-icons_0a82eb_256x240.png rename to awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-icons_0a82eb_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-icons_0b54d5_256x240.png b/awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-icons_0b54d5_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-icons_0b54d5_256x240.png rename to awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-icons_0b54d5_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-icons_5fa5e3_256x240.png b/awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-icons_5fa5e3_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-icons_5fa5e3_256x240.png rename to awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-icons_5fa5e3_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-icons_fcdd4a_256x240.png b/awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-icons_fcdd4a_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-icons_fcdd4a_256x240.png rename to awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-icons_fcdd4a_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/excite-bike/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jqueryui/themes/excite-bike/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/excite-bike/jquery-ui.css b/awx/ui/client/lib/jqueryui/themes/excite-bike/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/excite-bike/jquery-ui.css rename to awx/ui/client/lib/jqueryui/themes/excite-bike/jquery-ui.css diff --git a/awx/ui/static/lib/jqueryui/themes/excite-bike/jquery-ui.min.css b/awx/ui/client/lib/jqueryui/themes/excite-bike/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/excite-bike/jquery-ui.min.css rename to awx/ui/client/lib/jqueryui/themes/excite-bike/jquery-ui.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/excite-bike/jquery.ui.theme.css b/awx/ui/client/lib/jqueryui/themes/excite-bike/jquery.ui.theme.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/excite-bike/jquery.ui.theme.css rename to awx/ui/client/lib/jqueryui/themes/excite-bike/jquery.ui.theme.css diff --git a/awx/ui/static/lib/jqueryui/themes/flick/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/flick/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/flick/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/flick/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/flick/images/ui-bg_flat_0_aaaaaa_40x100.png b/awx/ui/client/lib/jqueryui/themes/flick/images/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/flick/images/ui-bg_flat_0_aaaaaa_40x100.png rename to awx/ui/client/lib/jqueryui/themes/flick/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/flick/images/ui-bg_flat_0_eeeeee_40x100.png b/awx/ui/client/lib/jqueryui/themes/flick/images/ui-bg_flat_0_eeeeee_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/flick/images/ui-bg_flat_0_eeeeee_40x100.png rename to awx/ui/client/lib/jqueryui/themes/flick/images/ui-bg_flat_0_eeeeee_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/flick/images/ui-bg_flat_55_ffffff_40x100.png b/awx/ui/client/lib/jqueryui/themes/flick/images/ui-bg_flat_55_ffffff_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/flick/images/ui-bg_flat_55_ffffff_40x100.png rename to awx/ui/client/lib/jqueryui/themes/flick/images/ui-bg_flat_55_ffffff_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/flick/images/ui-bg_flat_75_ffffff_40x100.png b/awx/ui/client/lib/jqueryui/themes/flick/images/ui-bg_flat_75_ffffff_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/flick/images/ui-bg_flat_75_ffffff_40x100.png rename to awx/ui/client/lib/jqueryui/themes/flick/images/ui-bg_flat_75_ffffff_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/flick/images/ui-bg_glass_65_ffffff_1x400.png b/awx/ui/client/lib/jqueryui/themes/flick/images/ui-bg_glass_65_ffffff_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/flick/images/ui-bg_glass_65_ffffff_1x400.png rename to awx/ui/client/lib/jqueryui/themes/flick/images/ui-bg_glass_65_ffffff_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/flick/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png b/awx/ui/client/lib/jqueryui/themes/flick/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/flick/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png rename to awx/ui/client/lib/jqueryui/themes/flick/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/flick/images/ui-bg_highlight-soft_25_0073ea_1x100.png b/awx/ui/client/lib/jqueryui/themes/flick/images/ui-bg_highlight-soft_25_0073ea_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/flick/images/ui-bg_highlight-soft_25_0073ea_1x100.png rename to awx/ui/client/lib/jqueryui/themes/flick/images/ui-bg_highlight-soft_25_0073ea_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/flick/images/ui-bg_highlight-soft_50_dddddd_1x100.png b/awx/ui/client/lib/jqueryui/themes/flick/images/ui-bg_highlight-soft_50_dddddd_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/flick/images/ui-bg_highlight-soft_50_dddddd_1x100.png rename to awx/ui/client/lib/jqueryui/themes/flick/images/ui-bg_highlight-soft_50_dddddd_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/flick/images/ui-icons_0073ea_256x240.png b/awx/ui/client/lib/jqueryui/themes/flick/images/ui-icons_0073ea_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/flick/images/ui-icons_0073ea_256x240.png rename to awx/ui/client/lib/jqueryui/themes/flick/images/ui-icons_0073ea_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/flick/images/ui-icons_454545_256x240.png b/awx/ui/client/lib/jqueryui/themes/flick/images/ui-icons_454545_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/flick/images/ui-icons_454545_256x240.png rename to awx/ui/client/lib/jqueryui/themes/flick/images/ui-icons_454545_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/flick/images/ui-icons_666666_256x240.png b/awx/ui/client/lib/jqueryui/themes/flick/images/ui-icons_666666_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/flick/images/ui-icons_666666_256x240.png rename to awx/ui/client/lib/jqueryui/themes/flick/images/ui-icons_666666_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/flick/images/ui-icons_ff0084_256x240.png b/awx/ui/client/lib/jqueryui/themes/flick/images/ui-icons_ff0084_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/flick/images/ui-icons_ff0084_256x240.png rename to awx/ui/client/lib/jqueryui/themes/flick/images/ui-icons_ff0084_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/flick/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jqueryui/themes/flick/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/flick/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jqueryui/themes/flick/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/flick/jquery-ui.css b/awx/ui/client/lib/jqueryui/themes/flick/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/flick/jquery-ui.css rename to awx/ui/client/lib/jqueryui/themes/flick/jquery-ui.css diff --git a/awx/ui/static/lib/jqueryui/themes/flick/jquery-ui.min.css b/awx/ui/client/lib/jqueryui/themes/flick/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/flick/jquery-ui.min.css rename to awx/ui/client/lib/jqueryui/themes/flick/jquery-ui.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/flick/jquery.ui.theme.css b/awx/ui/client/lib/jqueryui/themes/flick/jquery.ui.theme.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/flick/jquery.ui.theme.css rename to awx/ui/client/lib/jqueryui/themes/flick/jquery.ui.theme.css diff --git a/awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-bg_diagonals-small_40_db4865_40x40.png b/awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-bg_diagonals-small_40_db4865_40x40.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-bg_diagonals-small_40_db4865_40x40.png rename to awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-bg_diagonals-small_40_db4865_40x40.png diff --git a/awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-bg_diagonals-small_50_93c3cd_40x40.png b/awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-bg_diagonals-small_50_93c3cd_40x40.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-bg_diagonals-small_50_93c3cd_40x40.png rename to awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-bg_diagonals-small_50_93c3cd_40x40.png diff --git a/awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-bg_diagonals-small_50_ff3853_40x40.png b/awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-bg_diagonals-small_50_ff3853_40x40.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-bg_diagonals-small_50_ff3853_40x40.png rename to awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-bg_diagonals-small_50_ff3853_40x40.png diff --git a/awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-bg_diagonals-small_75_ccd232_40x40.png b/awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-bg_diagonals-small_75_ccd232_40x40.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-bg_diagonals-small_75_ccd232_40x40.png rename to awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-bg_diagonals-small_75_ccd232_40x40.png diff --git a/awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-bg_dots-medium_80_ffff38_4x4.png b/awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-bg_dots-medium_80_ffff38_4x4.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-bg_dots-medium_80_ffff38_4x4.png rename to awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-bg_dots-medium_80_ffff38_4x4.png diff --git a/awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-bg_dots-small_35_35414f_2x2.png b/awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-bg_dots-small_35_35414f_2x2.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-bg_dots-small_35_35414f_2x2.png rename to awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-bg_dots-small_35_35414f_2x2.png diff --git a/awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-bg_flat_75_ba9217_40x100.png b/awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-bg_flat_75_ba9217_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-bg_flat_75_ba9217_40x100.png rename to awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-bg_flat_75_ba9217_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-bg_flat_75_ffffff_40x100.png b/awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-bg_flat_75_ffffff_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-bg_flat_75_ffffff_40x100.png rename to awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-bg_flat_75_ffffff_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-bg_white-lines_85_f7f7ba_40x100.png b/awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-bg_white-lines_85_f7f7ba_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-bg_white-lines_85_f7f7ba_40x100.png rename to awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-bg_white-lines_85_f7f7ba_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-icons_454545_256x240.png b/awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-icons_454545_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-icons_454545_256x240.png rename to awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-icons_454545_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-icons_88a206_256x240.png b/awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-icons_88a206_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-icons_88a206_256x240.png rename to awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-icons_88a206_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-icons_c02669_256x240.png b/awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-icons_c02669_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-icons_c02669_256x240.png rename to awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-icons_c02669_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-icons_e1e463_256x240.png b/awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-icons_e1e463_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-icons_e1e463_256x240.png rename to awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-icons_e1e463_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-icons_ffeb33_256x240.png b/awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-icons_ffeb33_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-icons_ffeb33_256x240.png rename to awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-icons_ffeb33_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/hot-sneaks/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jqueryui/themes/hot-sneaks/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/hot-sneaks/jquery-ui.css b/awx/ui/client/lib/jqueryui/themes/hot-sneaks/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/hot-sneaks/jquery-ui.css rename to awx/ui/client/lib/jqueryui/themes/hot-sneaks/jquery-ui.css diff --git a/awx/ui/static/lib/jqueryui/themes/hot-sneaks/jquery-ui.min.css b/awx/ui/client/lib/jqueryui/themes/hot-sneaks/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/hot-sneaks/jquery-ui.min.css rename to awx/ui/client/lib/jqueryui/themes/hot-sneaks/jquery-ui.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/hot-sneaks/jquery.ui.theme.css b/awx/ui/client/lib/jqueryui/themes/hot-sneaks/jquery.ui.theme.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/hot-sneaks/jquery.ui.theme.css rename to awx/ui/client/lib/jqueryui/themes/hot-sneaks/jquery.ui.theme.css diff --git a/awx/ui/static/lib/jqueryui/themes/humanity/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/humanity/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/humanity/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/humanity/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/humanity/images/ui-bg_flat_75_aaaaaa_40x100.png b/awx/ui/client/lib/jqueryui/themes/humanity/images/ui-bg_flat_75_aaaaaa_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/humanity/images/ui-bg_flat_75_aaaaaa_40x100.png rename to awx/ui/client/lib/jqueryui/themes/humanity/images/ui-bg_flat_75_aaaaaa_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/humanity/images/ui-bg_glass_100_f5f0e5_1x400.png b/awx/ui/client/lib/jqueryui/themes/humanity/images/ui-bg_glass_100_f5f0e5_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/humanity/images/ui-bg_glass_100_f5f0e5_1x400.png rename to awx/ui/client/lib/jqueryui/themes/humanity/images/ui-bg_glass_100_f5f0e5_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/humanity/images/ui-bg_glass_25_cb842e_1x400.png b/awx/ui/client/lib/jqueryui/themes/humanity/images/ui-bg_glass_25_cb842e_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/humanity/images/ui-bg_glass_25_cb842e_1x400.png rename to awx/ui/client/lib/jqueryui/themes/humanity/images/ui-bg_glass_25_cb842e_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/humanity/images/ui-bg_glass_70_ede4d4_1x400.png b/awx/ui/client/lib/jqueryui/themes/humanity/images/ui-bg_glass_70_ede4d4_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/humanity/images/ui-bg_glass_70_ede4d4_1x400.png rename to awx/ui/client/lib/jqueryui/themes/humanity/images/ui-bg_glass_70_ede4d4_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/humanity/images/ui-bg_highlight-hard_100_f4f0ec_1x100.png b/awx/ui/client/lib/jqueryui/themes/humanity/images/ui-bg_highlight-hard_100_f4f0ec_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/humanity/images/ui-bg_highlight-hard_100_f4f0ec_1x100.png rename to awx/ui/client/lib/jqueryui/themes/humanity/images/ui-bg_highlight-hard_100_f4f0ec_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/humanity/images/ui-bg_highlight-hard_65_fee4bd_1x100.png b/awx/ui/client/lib/jqueryui/themes/humanity/images/ui-bg_highlight-hard_65_fee4bd_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/humanity/images/ui-bg_highlight-hard_65_fee4bd_1x100.png rename to awx/ui/client/lib/jqueryui/themes/humanity/images/ui-bg_highlight-hard_65_fee4bd_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/humanity/images/ui-bg_highlight-hard_75_f5f5b5_1x100.png b/awx/ui/client/lib/jqueryui/themes/humanity/images/ui-bg_highlight-hard_75_f5f5b5_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/humanity/images/ui-bg_highlight-hard_75_f5f5b5_1x100.png rename to awx/ui/client/lib/jqueryui/themes/humanity/images/ui-bg_highlight-hard_75_f5f5b5_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/humanity/images/ui-bg_inset-soft_100_f4f0ec_1x100.png b/awx/ui/client/lib/jqueryui/themes/humanity/images/ui-bg_inset-soft_100_f4f0ec_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/humanity/images/ui-bg_inset-soft_100_f4f0ec_1x100.png rename to awx/ui/client/lib/jqueryui/themes/humanity/images/ui-bg_inset-soft_100_f4f0ec_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/humanity/images/ui-icons_c47a23_256x240.png b/awx/ui/client/lib/jqueryui/themes/humanity/images/ui-icons_c47a23_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/humanity/images/ui-icons_c47a23_256x240.png rename to awx/ui/client/lib/jqueryui/themes/humanity/images/ui-icons_c47a23_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/humanity/images/ui-icons_cb672b_256x240.png b/awx/ui/client/lib/jqueryui/themes/humanity/images/ui-icons_cb672b_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/humanity/images/ui-icons_cb672b_256x240.png rename to awx/ui/client/lib/jqueryui/themes/humanity/images/ui-icons_cb672b_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/humanity/images/ui-icons_f08000_256x240.png b/awx/ui/client/lib/jqueryui/themes/humanity/images/ui-icons_f08000_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/humanity/images/ui-icons_f08000_256x240.png rename to awx/ui/client/lib/jqueryui/themes/humanity/images/ui-icons_f08000_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/humanity/images/ui-icons_f35f07_256x240.png b/awx/ui/client/lib/jqueryui/themes/humanity/images/ui-icons_f35f07_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/humanity/images/ui-icons_f35f07_256x240.png rename to awx/ui/client/lib/jqueryui/themes/humanity/images/ui-icons_f35f07_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/humanity/images/ui-icons_ff7519_256x240.png b/awx/ui/client/lib/jqueryui/themes/humanity/images/ui-icons_ff7519_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/humanity/images/ui-icons_ff7519_256x240.png rename to awx/ui/client/lib/jqueryui/themes/humanity/images/ui-icons_ff7519_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/humanity/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jqueryui/themes/humanity/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/humanity/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jqueryui/themes/humanity/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/humanity/jquery-ui.css b/awx/ui/client/lib/jqueryui/themes/humanity/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/humanity/jquery-ui.css rename to awx/ui/client/lib/jqueryui/themes/humanity/jquery-ui.css diff --git a/awx/ui/static/lib/jqueryui/themes/humanity/jquery-ui.min.css b/awx/ui/client/lib/jqueryui/themes/humanity/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/humanity/jquery-ui.min.css rename to awx/ui/client/lib/jqueryui/themes/humanity/jquery-ui.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/humanity/jquery.ui.theme.css b/awx/ui/client/lib/jqueryui/themes/humanity/jquery.ui.theme.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/humanity/jquery.ui.theme.css rename to awx/ui/client/lib/jqueryui/themes/humanity/jquery.ui.theme.css diff --git a/awx/ui/static/lib/jqueryui/themes/le-frog/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/le-frog/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/le-frog/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/le-frog/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-bg_diagonals-small_0_aaaaaa_40x40.png b/awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-bg_diagonals-small_0_aaaaaa_40x40.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-bg_diagonals-small_0_aaaaaa_40x40.png rename to awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-bg_diagonals-small_0_aaaaaa_40x40.png diff --git a/awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-bg_diagonals-thick_15_444444_40x40.png b/awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-bg_diagonals-thick_15_444444_40x40.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-bg_diagonals-thick_15_444444_40x40.png rename to awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-bg_diagonals-thick_15_444444_40x40.png diff --git a/awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-bg_diagonals-thick_95_ffdc2e_40x40.png b/awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-bg_diagonals-thick_95_ffdc2e_40x40.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-bg_diagonals-thick_95_ffdc2e_40x40.png rename to awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-bg_diagonals-thick_95_ffdc2e_40x40.png diff --git a/awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-bg_glass_55_fbf5d0_1x400.png b/awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-bg_glass_55_fbf5d0_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-bg_glass_55_fbf5d0_1x400.png rename to awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-bg_glass_55_fbf5d0_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-bg_highlight-hard_30_285c00_1x100.png b/awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-bg_highlight-hard_30_285c00_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-bg_highlight-hard_30_285c00_1x100.png rename to awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-bg_highlight-hard_30_285c00_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-bg_highlight-soft_33_3a8104_1x100.png b/awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-bg_highlight-soft_33_3a8104_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-bg_highlight-soft_33_3a8104_1x100.png rename to awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-bg_highlight-soft_33_3a8104_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-bg_highlight-soft_50_4eb305_1x100.png b/awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-bg_highlight-soft_50_4eb305_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-bg_highlight-soft_50_4eb305_1x100.png rename to awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-bg_highlight-soft_50_4eb305_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-bg_highlight-soft_60_4ca20b_1x100.png b/awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-bg_highlight-soft_60_4ca20b_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-bg_highlight-soft_60_4ca20b_1x100.png rename to awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-bg_highlight-soft_60_4ca20b_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-bg_inset-soft_10_285c00_1x100.png b/awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-bg_inset-soft_10_285c00_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-bg_inset-soft_10_285c00_1x100.png rename to awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-bg_inset-soft_10_285c00_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-icons_4eb305_256x240.png b/awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-icons_4eb305_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-icons_4eb305_256x240.png rename to awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-icons_4eb305_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-icons_72b42d_256x240.png b/awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-icons_72b42d_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-icons_72b42d_256x240.png rename to awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-icons_72b42d_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-icons_cd0a0a_256x240.png b/awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-icons_cd0a0a_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-icons_cd0a0a_256x240.png rename to awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-icons_cd0a0a_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/le-frog/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jqueryui/themes/le-frog/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/le-frog/jquery-ui.css b/awx/ui/client/lib/jqueryui/themes/le-frog/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/le-frog/jquery-ui.css rename to awx/ui/client/lib/jqueryui/themes/le-frog/jquery-ui.css diff --git a/awx/ui/static/lib/jqueryui/themes/le-frog/jquery-ui.min.css b/awx/ui/client/lib/jqueryui/themes/le-frog/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/le-frog/jquery-ui.min.css rename to awx/ui/client/lib/jqueryui/themes/le-frog/jquery-ui.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/le-frog/jquery.ui.theme.css b/awx/ui/client/lib/jqueryui/themes/le-frog/jquery.ui.theme.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/le-frog/jquery.ui.theme.css rename to awx/ui/client/lib/jqueryui/themes/le-frog/jquery.ui.theme.css diff --git a/awx/ui/static/lib/jqueryui/themes/mint-choc/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/mint-choc/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/mint-choc/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/mint-choc/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-bg_flat_0_aaaaaa_40x100.png b/awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-bg_flat_0_aaaaaa_40x100.png rename to awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-bg_glass_15_5f391b_1x400.png b/awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-bg_glass_15_5f391b_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-bg_glass_15_5f391b_1x400.png rename to awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-bg_glass_15_5f391b_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-bg_gloss-wave_20_1c160d_500x100.png b/awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-bg_gloss-wave_20_1c160d_500x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-bg_gloss-wave_20_1c160d_500x100.png rename to awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-bg_gloss-wave_20_1c160d_500x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-bg_gloss-wave_25_453326_500x100.png b/awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-bg_gloss-wave_25_453326_500x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-bg_gloss-wave_25_453326_500x100.png rename to awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-bg_gloss-wave_25_453326_500x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-bg_gloss-wave_30_44372c_500x100.png b/awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-bg_gloss-wave_30_44372c_500x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-bg_gloss-wave_30_44372c_500x100.png rename to awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-bg_gloss-wave_30_44372c_500x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-bg_highlight-soft_20_201913_1x100.png b/awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-bg_highlight-soft_20_201913_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-bg_highlight-soft_20_201913_1x100.png rename to awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-bg_highlight-soft_20_201913_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-bg_highlight-soft_20_619226_1x100.png b/awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-bg_highlight-soft_20_619226_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-bg_highlight-soft_20_619226_1x100.png rename to awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-bg_highlight-soft_20_619226_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-bg_inset-soft_10_201913_1x100.png b/awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-bg_inset-soft_10_201913_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-bg_inset-soft_10_201913_1x100.png rename to awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-bg_inset-soft_10_201913_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-icons_222222_256x240.png b/awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-icons_222222_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-icons_222222_256x240.png rename to awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-icons_222222_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-icons_9bcc60_256x240.png b/awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-icons_9bcc60_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-icons_9bcc60_256x240.png rename to awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-icons_9bcc60_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-icons_add978_256x240.png b/awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-icons_add978_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-icons_add978_256x240.png rename to awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-icons_add978_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-icons_e3ddc9_256x240.png b/awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-icons_e3ddc9_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-icons_e3ddc9_256x240.png rename to awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-icons_e3ddc9_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-icons_f1fd86_256x240.png b/awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-icons_f1fd86_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-icons_f1fd86_256x240.png rename to awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-icons_f1fd86_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/mint-choc/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jqueryui/themes/mint-choc/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/mint-choc/jquery-ui.css b/awx/ui/client/lib/jqueryui/themes/mint-choc/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/mint-choc/jquery-ui.css rename to awx/ui/client/lib/jqueryui/themes/mint-choc/jquery-ui.css diff --git a/awx/ui/static/lib/jqueryui/themes/mint-choc/jquery-ui.min.css b/awx/ui/client/lib/jqueryui/themes/mint-choc/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/mint-choc/jquery-ui.min.css rename to awx/ui/client/lib/jqueryui/themes/mint-choc/jquery-ui.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/mint-choc/jquery.ui.theme.css b/awx/ui/client/lib/jqueryui/themes/mint-choc/jquery.ui.theme.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/mint-choc/jquery.ui.theme.css rename to awx/ui/client/lib/jqueryui/themes/mint-choc/jquery.ui.theme.css diff --git a/awx/ui/static/lib/jqueryui/themes/overcast/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/overcast/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/overcast/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/overcast/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/overcast/images/ui-bg_flat_0_aaaaaa_40x100.png b/awx/ui/client/lib/jqueryui/themes/overcast/images/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/overcast/images/ui-bg_flat_0_aaaaaa_40x100.png rename to awx/ui/client/lib/jqueryui/themes/overcast/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/overcast/images/ui-bg_flat_0_eeeeee_40x100.png b/awx/ui/client/lib/jqueryui/themes/overcast/images/ui-bg_flat_0_eeeeee_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/overcast/images/ui-bg_flat_0_eeeeee_40x100.png rename to awx/ui/client/lib/jqueryui/themes/overcast/images/ui-bg_flat_0_eeeeee_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/overcast/images/ui-bg_flat_55_c0402a_40x100.png b/awx/ui/client/lib/jqueryui/themes/overcast/images/ui-bg_flat_55_c0402a_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/overcast/images/ui-bg_flat_55_c0402a_40x100.png rename to awx/ui/client/lib/jqueryui/themes/overcast/images/ui-bg_flat_55_c0402a_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/overcast/images/ui-bg_flat_55_eeeeee_40x100.png b/awx/ui/client/lib/jqueryui/themes/overcast/images/ui-bg_flat_55_eeeeee_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/overcast/images/ui-bg_flat_55_eeeeee_40x100.png rename to awx/ui/client/lib/jqueryui/themes/overcast/images/ui-bg_flat_55_eeeeee_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/overcast/images/ui-bg_glass_100_f8f8f8_1x400.png b/awx/ui/client/lib/jqueryui/themes/overcast/images/ui-bg_glass_100_f8f8f8_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/overcast/images/ui-bg_glass_100_f8f8f8_1x400.png rename to awx/ui/client/lib/jqueryui/themes/overcast/images/ui-bg_glass_100_f8f8f8_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/overcast/images/ui-bg_glass_35_dddddd_1x400.png b/awx/ui/client/lib/jqueryui/themes/overcast/images/ui-bg_glass_35_dddddd_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/overcast/images/ui-bg_glass_35_dddddd_1x400.png rename to awx/ui/client/lib/jqueryui/themes/overcast/images/ui-bg_glass_35_dddddd_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/overcast/images/ui-bg_glass_60_eeeeee_1x400.png b/awx/ui/client/lib/jqueryui/themes/overcast/images/ui-bg_glass_60_eeeeee_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/overcast/images/ui-bg_glass_60_eeeeee_1x400.png rename to awx/ui/client/lib/jqueryui/themes/overcast/images/ui-bg_glass_60_eeeeee_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/overcast/images/ui-bg_inset-hard_75_999999_1x100.png b/awx/ui/client/lib/jqueryui/themes/overcast/images/ui-bg_inset-hard_75_999999_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/overcast/images/ui-bg_inset-hard_75_999999_1x100.png rename to awx/ui/client/lib/jqueryui/themes/overcast/images/ui-bg_inset-hard_75_999999_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/overcast/images/ui-bg_inset-soft_50_c9c9c9_1x100.png b/awx/ui/client/lib/jqueryui/themes/overcast/images/ui-bg_inset-soft_50_c9c9c9_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/overcast/images/ui-bg_inset-soft_50_c9c9c9_1x100.png rename to awx/ui/client/lib/jqueryui/themes/overcast/images/ui-bg_inset-soft_50_c9c9c9_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/overcast/images/ui-icons_3383bb_256x240.png b/awx/ui/client/lib/jqueryui/themes/overcast/images/ui-icons_3383bb_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/overcast/images/ui-icons_3383bb_256x240.png rename to awx/ui/client/lib/jqueryui/themes/overcast/images/ui-icons_3383bb_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/overcast/images/ui-icons_454545_256x240.png b/awx/ui/client/lib/jqueryui/themes/overcast/images/ui-icons_454545_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/overcast/images/ui-icons_454545_256x240.png rename to awx/ui/client/lib/jqueryui/themes/overcast/images/ui-icons_454545_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/overcast/images/ui-icons_70b2e1_256x240.png b/awx/ui/client/lib/jqueryui/themes/overcast/images/ui-icons_70b2e1_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/overcast/images/ui-icons_70b2e1_256x240.png rename to awx/ui/client/lib/jqueryui/themes/overcast/images/ui-icons_70b2e1_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/overcast/images/ui-icons_999999_256x240.png b/awx/ui/client/lib/jqueryui/themes/overcast/images/ui-icons_999999_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/overcast/images/ui-icons_999999_256x240.png rename to awx/ui/client/lib/jqueryui/themes/overcast/images/ui-icons_999999_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/overcast/images/ui-icons_fbc856_256x240.png b/awx/ui/client/lib/jqueryui/themes/overcast/images/ui-icons_fbc856_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/overcast/images/ui-icons_fbc856_256x240.png rename to awx/ui/client/lib/jqueryui/themes/overcast/images/ui-icons_fbc856_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/overcast/jquery-ui.css b/awx/ui/client/lib/jqueryui/themes/overcast/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/overcast/jquery-ui.css rename to awx/ui/client/lib/jqueryui/themes/overcast/jquery-ui.css diff --git a/awx/ui/static/lib/jqueryui/themes/overcast/jquery-ui.min.css b/awx/ui/client/lib/jqueryui/themes/overcast/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/overcast/jquery-ui.min.css rename to awx/ui/client/lib/jqueryui/themes/overcast/jquery-ui.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/overcast/jquery.ui.theme.css b/awx/ui/client/lib/jqueryui/themes/overcast/jquery.ui.theme.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/overcast/jquery.ui.theme.css rename to awx/ui/client/lib/jqueryui/themes/overcast/jquery.ui.theme.css diff --git a/awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-bg_diagonal-maze_20_6e4f1c_10x10.png b/awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-bg_diagonal-maze_20_6e4f1c_10x10.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-bg_diagonal-maze_20_6e4f1c_10x10.png rename to awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-bg_diagonal-maze_20_6e4f1c_10x10.png diff --git a/awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-bg_diagonal-maze_40_000000_10x10.png b/awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-bg_diagonal-maze_40_000000_10x10.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-bg_diagonal-maze_40_000000_10x10.png rename to awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-bg_diagonal-maze_40_000000_10x10.png diff --git a/awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_10_eceadf_60x60.png b/awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_10_eceadf_60x60.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_10_eceadf_60x60.png rename to awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_10_eceadf_60x60.png diff --git a/awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_10_f8f7f6_60x60.png b/awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_10_f8f7f6_60x60.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_10_f8f7f6_60x60.png rename to awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_10_f8f7f6_60x60.png diff --git a/awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_15_eceadf_60x60.png b/awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_15_eceadf_60x60.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_15_eceadf_60x60.png rename to awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_15_eceadf_60x60.png diff --git a/awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_15_f7f3de_60x60.png b/awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_15_f7f3de_60x60.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_15_f7f3de_60x60.png rename to awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_15_f7f3de_60x60.png diff --git a/awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_15_ffffff_60x60.png b/awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_15_ffffff_60x60.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_15_ffffff_60x60.png rename to awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_15_ffffff_60x60.png diff --git a/awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_65_654b24_60x60.png b/awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_65_654b24_60x60.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_65_654b24_60x60.png rename to awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_65_654b24_60x60.png diff --git a/awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_68_b83400_60x60.png b/awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_68_b83400_60x60.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_68_b83400_60x60.png rename to awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-bg_fine-grain_68_b83400_60x60.png diff --git a/awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-icons_222222_256x240.png b/awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-icons_222222_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-icons_222222_256x240.png rename to awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-icons_222222_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-icons_3572ac_256x240.png b/awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-icons_3572ac_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-icons_3572ac_256x240.png rename to awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-icons_3572ac_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-icons_8c291d_256x240.png b/awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-icons_8c291d_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-icons_8c291d_256x240.png rename to awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-icons_8c291d_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-icons_b83400_256x240.png b/awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-icons_b83400_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-icons_b83400_256x240.png rename to awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-icons_b83400_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-icons_fbdb93_256x240.png b/awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-icons_fbdb93_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-icons_fbdb93_256x240.png rename to awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-icons_fbdb93_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/pepper-grinder/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jqueryui/themes/pepper-grinder/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/pepper-grinder/jquery-ui.css b/awx/ui/client/lib/jqueryui/themes/pepper-grinder/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/pepper-grinder/jquery-ui.css rename to awx/ui/client/lib/jqueryui/themes/pepper-grinder/jquery-ui.css diff --git a/awx/ui/static/lib/jqueryui/themes/pepper-grinder/jquery-ui.min.css b/awx/ui/client/lib/jqueryui/themes/pepper-grinder/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/pepper-grinder/jquery-ui.min.css rename to awx/ui/client/lib/jqueryui/themes/pepper-grinder/jquery-ui.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/pepper-grinder/jquery.ui.theme.css b/awx/ui/client/lib/jqueryui/themes/pepper-grinder/jquery.ui.theme.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/pepper-grinder/jquery.ui.theme.css rename to awx/ui/client/lib/jqueryui/themes/pepper-grinder/jquery.ui.theme.css diff --git a/awx/ui/static/lib/jqueryui/themes/redmond/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/redmond/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/redmond/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/redmond/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png b/awx/ui/client/lib/jqueryui/themes/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png rename to awx/ui/client/lib/jqueryui/themes/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/redmond/images/ui-bg_flat_55_fbec88_40x100.png b/awx/ui/client/lib/jqueryui/themes/redmond/images/ui-bg_flat_55_fbec88_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/redmond/images/ui-bg_flat_55_fbec88_40x100.png rename to awx/ui/client/lib/jqueryui/themes/redmond/images/ui-bg_flat_55_fbec88_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png b/awx/ui/client/lib/jqueryui/themes/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png rename to awx/ui/client/lib/jqueryui/themes/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/redmond/images/ui-bg_glass_85_dfeffc_1x400.png b/awx/ui/client/lib/jqueryui/themes/redmond/images/ui-bg_glass_85_dfeffc_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/redmond/images/ui-bg_glass_85_dfeffc_1x400.png rename to awx/ui/client/lib/jqueryui/themes/redmond/images/ui-bg_glass_85_dfeffc_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/redmond/images/ui-bg_glass_95_fef1ec_1x400.png b/awx/ui/client/lib/jqueryui/themes/redmond/images/ui-bg_glass_95_fef1ec_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/redmond/images/ui-bg_glass_95_fef1ec_1x400.png rename to awx/ui/client/lib/jqueryui/themes/redmond/images/ui-bg_glass_95_fef1ec_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png b/awx/ui/client/lib/jqueryui/themes/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png rename to awx/ui/client/lib/jqueryui/themes/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png b/awx/ui/client/lib/jqueryui/themes/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png rename to awx/ui/client/lib/jqueryui/themes/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png b/awx/ui/client/lib/jqueryui/themes/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png rename to awx/ui/client/lib/jqueryui/themes/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/redmond/images/ui-icons_217bc0_256x240.png b/awx/ui/client/lib/jqueryui/themes/redmond/images/ui-icons_217bc0_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/redmond/images/ui-icons_217bc0_256x240.png rename to awx/ui/client/lib/jqueryui/themes/redmond/images/ui-icons_217bc0_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/redmond/images/ui-icons_2e83ff_256x240.png b/awx/ui/client/lib/jqueryui/themes/redmond/images/ui-icons_2e83ff_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/redmond/images/ui-icons_2e83ff_256x240.png rename to awx/ui/client/lib/jqueryui/themes/redmond/images/ui-icons_2e83ff_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/redmond/images/ui-icons_469bdd_256x240.png b/awx/ui/client/lib/jqueryui/themes/redmond/images/ui-icons_469bdd_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/redmond/images/ui-icons_469bdd_256x240.png rename to awx/ui/client/lib/jqueryui/themes/redmond/images/ui-icons_469bdd_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/redmond/images/ui-icons_6da8d5_256x240.png b/awx/ui/client/lib/jqueryui/themes/redmond/images/ui-icons_6da8d5_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/redmond/images/ui-icons_6da8d5_256x240.png rename to awx/ui/client/lib/jqueryui/themes/redmond/images/ui-icons_6da8d5_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/redmond/images/ui-icons_cd0a0a_256x240.png b/awx/ui/client/lib/jqueryui/themes/redmond/images/ui-icons_cd0a0a_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/redmond/images/ui-icons_cd0a0a_256x240.png rename to awx/ui/client/lib/jqueryui/themes/redmond/images/ui-icons_cd0a0a_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/redmond/images/ui-icons_d8e7f3_256x240.png b/awx/ui/client/lib/jqueryui/themes/redmond/images/ui-icons_d8e7f3_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/redmond/images/ui-icons_d8e7f3_256x240.png rename to awx/ui/client/lib/jqueryui/themes/redmond/images/ui-icons_d8e7f3_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/redmond/images/ui-icons_f9bd01_256x240.png b/awx/ui/client/lib/jqueryui/themes/redmond/images/ui-icons_f9bd01_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/redmond/images/ui-icons_f9bd01_256x240.png rename to awx/ui/client/lib/jqueryui/themes/redmond/images/ui-icons_f9bd01_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/redmond/jquery-ui.css b/awx/ui/client/lib/jqueryui/themes/redmond/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/redmond/jquery-ui.css rename to awx/ui/client/lib/jqueryui/themes/redmond/jquery-ui.css diff --git a/awx/ui/static/lib/jqueryui/themes/redmond/jquery-ui.min.css b/awx/ui/client/lib/jqueryui/themes/redmond/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/redmond/jquery-ui.min.css rename to awx/ui/client/lib/jqueryui/themes/redmond/jquery-ui.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/redmond/jquery.ui.theme.css b/awx/ui/client/lib/jqueryui/themes/redmond/jquery.ui.theme.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/redmond/jquery.ui.theme.css rename to awx/ui/client/lib/jqueryui/themes/redmond/jquery.ui.theme.css diff --git a/awx/ui/static/lib/jqueryui/themes/smoothness/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/smoothness/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/smoothness/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/smoothness/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png b/awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png rename to awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-bg_flat_75_ffffff_40x100.png b/awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-bg_flat_75_ffffff_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-bg_flat_75_ffffff_40x100.png rename to awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-bg_flat_75_ffffff_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png b/awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png rename to awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-bg_glass_65_ffffff_1x400.png b/awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-bg_glass_65_ffffff_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-bg_glass_65_ffffff_1x400.png rename to awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-bg_glass_65_ffffff_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-bg_glass_75_dadada_1x400.png b/awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-bg_glass_75_dadada_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-bg_glass_75_dadada_1x400.png rename to awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-bg_glass_75_dadada_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png b/awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png rename to awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png b/awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png rename to awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png rename to awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-icons_222222_256x240.png b/awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-icons_222222_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-icons_222222_256x240.png rename to awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-icons_222222_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-icons_2e83ff_256x240.png b/awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-icons_2e83ff_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-icons_2e83ff_256x240.png rename to awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-icons_2e83ff_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-icons_454545_256x240.png b/awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-icons_454545_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-icons_454545_256x240.png rename to awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-icons_454545_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-icons_888888_256x240.png b/awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-icons_888888_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-icons_888888_256x240.png rename to awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-icons_888888_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-icons_cd0a0a_256x240.png b/awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-icons_cd0a0a_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/smoothness/images/ui-icons_cd0a0a_256x240.png rename to awx/ui/client/lib/jqueryui/themes/smoothness/images/ui-icons_cd0a0a_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/smoothness/jquery-ui.css b/awx/ui/client/lib/jqueryui/themes/smoothness/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/smoothness/jquery-ui.css rename to awx/ui/client/lib/jqueryui/themes/smoothness/jquery-ui.css diff --git a/awx/ui/static/lib/jqueryui/themes/smoothness/jquery-ui.min.css b/awx/ui/client/lib/jqueryui/themes/smoothness/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/smoothness/jquery-ui.min.css rename to awx/ui/client/lib/jqueryui/themes/smoothness/jquery-ui.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/smoothness/jquery.ui.theme.css b/awx/ui/client/lib/jqueryui/themes/smoothness/jquery.ui.theme.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/smoothness/jquery.ui.theme.css rename to awx/ui/client/lib/jqueryui/themes/smoothness/jquery.ui.theme.css diff --git a/awx/ui/static/lib/jqueryui/themes/south-street/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/south-street/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/south-street/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/south-street/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/south-street/images/ui-bg_glass_55_fcf0ba_1x400.png b/awx/ui/client/lib/jqueryui/themes/south-street/images/ui-bg_glass_55_fcf0ba_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/south-street/images/ui-bg_glass_55_fcf0ba_1x400.png rename to awx/ui/client/lib/jqueryui/themes/south-street/images/ui-bg_glass_55_fcf0ba_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/south-street/images/ui-bg_gloss-wave_100_ece8da_500x100.png b/awx/ui/client/lib/jqueryui/themes/south-street/images/ui-bg_gloss-wave_100_ece8da_500x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/south-street/images/ui-bg_gloss-wave_100_ece8da_500x100.png rename to awx/ui/client/lib/jqueryui/themes/south-street/images/ui-bg_gloss-wave_100_ece8da_500x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/south-street/images/ui-bg_highlight-hard_100_f5f3e5_1x100.png b/awx/ui/client/lib/jqueryui/themes/south-street/images/ui-bg_highlight-hard_100_f5f3e5_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/south-street/images/ui-bg_highlight-hard_100_f5f3e5_1x100.png rename to awx/ui/client/lib/jqueryui/themes/south-street/images/ui-bg_highlight-hard_100_f5f3e5_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/south-street/images/ui-bg_highlight-hard_100_fafaf4_1x100.png b/awx/ui/client/lib/jqueryui/themes/south-street/images/ui-bg_highlight-hard_100_fafaf4_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/south-street/images/ui-bg_highlight-hard_100_fafaf4_1x100.png rename to awx/ui/client/lib/jqueryui/themes/south-street/images/ui-bg_highlight-hard_100_fafaf4_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/south-street/images/ui-bg_highlight-hard_15_459e00_1x100.png b/awx/ui/client/lib/jqueryui/themes/south-street/images/ui-bg_highlight-hard_15_459e00_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/south-street/images/ui-bg_highlight-hard_15_459e00_1x100.png rename to awx/ui/client/lib/jqueryui/themes/south-street/images/ui-bg_highlight-hard_15_459e00_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/south-street/images/ui-bg_highlight-hard_95_cccccc_1x100.png b/awx/ui/client/lib/jqueryui/themes/south-street/images/ui-bg_highlight-hard_95_cccccc_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/south-street/images/ui-bg_highlight-hard_95_cccccc_1x100.png rename to awx/ui/client/lib/jqueryui/themes/south-street/images/ui-bg_highlight-hard_95_cccccc_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/south-street/images/ui-bg_highlight-soft_25_67b021_1x100.png b/awx/ui/client/lib/jqueryui/themes/south-street/images/ui-bg_highlight-soft_25_67b021_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/south-street/images/ui-bg_highlight-soft_25_67b021_1x100.png rename to awx/ui/client/lib/jqueryui/themes/south-street/images/ui-bg_highlight-soft_25_67b021_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/south-street/images/ui-bg_highlight-soft_95_ffedad_1x100.png b/awx/ui/client/lib/jqueryui/themes/south-street/images/ui-bg_highlight-soft_95_ffedad_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/south-street/images/ui-bg_highlight-soft_95_ffedad_1x100.png rename to awx/ui/client/lib/jqueryui/themes/south-street/images/ui-bg_highlight-soft_95_ffedad_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/south-street/images/ui-bg_inset-soft_15_2b2922_1x100.png b/awx/ui/client/lib/jqueryui/themes/south-street/images/ui-bg_inset-soft_15_2b2922_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/south-street/images/ui-bg_inset-soft_15_2b2922_1x100.png rename to awx/ui/client/lib/jqueryui/themes/south-street/images/ui-bg_inset-soft_15_2b2922_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/south-street/images/ui-icons_808080_256x240.png b/awx/ui/client/lib/jqueryui/themes/south-street/images/ui-icons_808080_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/south-street/images/ui-icons_808080_256x240.png rename to awx/ui/client/lib/jqueryui/themes/south-street/images/ui-icons_808080_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/south-street/images/ui-icons_847e71_256x240.png b/awx/ui/client/lib/jqueryui/themes/south-street/images/ui-icons_847e71_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/south-street/images/ui-icons_847e71_256x240.png rename to awx/ui/client/lib/jqueryui/themes/south-street/images/ui-icons_847e71_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/south-street/images/ui-icons_8DC262_256x240.png b/awx/ui/client/lib/jqueryui/themes/south-street/images/ui-icons_8DC262_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/south-street/images/ui-icons_8DC262_256x240.png rename to awx/ui/client/lib/jqueryui/themes/south-street/images/ui-icons_8DC262_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/south-street/images/ui-icons_cd0a0a_256x240.png b/awx/ui/client/lib/jqueryui/themes/south-street/images/ui-icons_cd0a0a_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/south-street/images/ui-icons_cd0a0a_256x240.png rename to awx/ui/client/lib/jqueryui/themes/south-street/images/ui-icons_cd0a0a_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/south-street/images/ui-icons_eeeeee_256x240.png b/awx/ui/client/lib/jqueryui/themes/south-street/images/ui-icons_eeeeee_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/south-street/images/ui-icons_eeeeee_256x240.png rename to awx/ui/client/lib/jqueryui/themes/south-street/images/ui-icons_eeeeee_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/south-street/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jqueryui/themes/south-street/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/south-street/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jqueryui/themes/south-street/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/south-street/jquery-ui.css b/awx/ui/client/lib/jqueryui/themes/south-street/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/south-street/jquery-ui.css rename to awx/ui/client/lib/jqueryui/themes/south-street/jquery-ui.css diff --git a/awx/ui/static/lib/jqueryui/themes/south-street/jquery-ui.min.css b/awx/ui/client/lib/jqueryui/themes/south-street/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/south-street/jquery-ui.min.css rename to awx/ui/client/lib/jqueryui/themes/south-street/jquery-ui.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/south-street/jquery.ui.theme.css b/awx/ui/client/lib/jqueryui/themes/south-street/jquery.ui.theme.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/south-street/jquery.ui.theme.css rename to awx/ui/client/lib/jqueryui/themes/south-street/jquery.ui.theme.css diff --git a/awx/ui/static/lib/jqueryui/themes/start/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/start/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/start/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/start/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/start/images/ui-bg_flat_55_999999_40x100.png b/awx/ui/client/lib/jqueryui/themes/start/images/ui-bg_flat_55_999999_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/start/images/ui-bg_flat_55_999999_40x100.png rename to awx/ui/client/lib/jqueryui/themes/start/images/ui-bg_flat_55_999999_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/start/images/ui-bg_flat_75_aaaaaa_40x100.png b/awx/ui/client/lib/jqueryui/themes/start/images/ui-bg_flat_75_aaaaaa_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/start/images/ui-bg_flat_75_aaaaaa_40x100.png rename to awx/ui/client/lib/jqueryui/themes/start/images/ui-bg_flat_75_aaaaaa_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/start/images/ui-bg_glass_45_0078ae_1x400.png b/awx/ui/client/lib/jqueryui/themes/start/images/ui-bg_glass_45_0078ae_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/start/images/ui-bg_glass_45_0078ae_1x400.png rename to awx/ui/client/lib/jqueryui/themes/start/images/ui-bg_glass_45_0078ae_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/start/images/ui-bg_glass_55_f8da4e_1x400.png b/awx/ui/client/lib/jqueryui/themes/start/images/ui-bg_glass_55_f8da4e_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/start/images/ui-bg_glass_55_f8da4e_1x400.png rename to awx/ui/client/lib/jqueryui/themes/start/images/ui-bg_glass_55_f8da4e_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/start/images/ui-bg_glass_75_79c9ec_1x400.png b/awx/ui/client/lib/jqueryui/themes/start/images/ui-bg_glass_75_79c9ec_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/start/images/ui-bg_glass_75_79c9ec_1x400.png rename to awx/ui/client/lib/jqueryui/themes/start/images/ui-bg_glass_75_79c9ec_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/start/images/ui-bg_gloss-wave_45_e14f1c_500x100.png b/awx/ui/client/lib/jqueryui/themes/start/images/ui-bg_gloss-wave_45_e14f1c_500x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/start/images/ui-bg_gloss-wave_45_e14f1c_500x100.png rename to awx/ui/client/lib/jqueryui/themes/start/images/ui-bg_gloss-wave_45_e14f1c_500x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/start/images/ui-bg_gloss-wave_50_6eac2c_500x100.png b/awx/ui/client/lib/jqueryui/themes/start/images/ui-bg_gloss-wave_50_6eac2c_500x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/start/images/ui-bg_gloss-wave_50_6eac2c_500x100.png rename to awx/ui/client/lib/jqueryui/themes/start/images/ui-bg_gloss-wave_50_6eac2c_500x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/start/images/ui-bg_gloss-wave_75_2191c0_500x100.png b/awx/ui/client/lib/jqueryui/themes/start/images/ui-bg_gloss-wave_75_2191c0_500x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/start/images/ui-bg_gloss-wave_75_2191c0_500x100.png rename to awx/ui/client/lib/jqueryui/themes/start/images/ui-bg_gloss-wave_75_2191c0_500x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/start/images/ui-bg_inset-hard_100_fcfdfd_1x100.png b/awx/ui/client/lib/jqueryui/themes/start/images/ui-bg_inset-hard_100_fcfdfd_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/start/images/ui-bg_inset-hard_100_fcfdfd_1x100.png rename to awx/ui/client/lib/jqueryui/themes/start/images/ui-bg_inset-hard_100_fcfdfd_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/start/images/ui-icons_0078ae_256x240.png b/awx/ui/client/lib/jqueryui/themes/start/images/ui-icons_0078ae_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/start/images/ui-icons_0078ae_256x240.png rename to awx/ui/client/lib/jqueryui/themes/start/images/ui-icons_0078ae_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/start/images/ui-icons_056b93_256x240.png b/awx/ui/client/lib/jqueryui/themes/start/images/ui-icons_056b93_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/start/images/ui-icons_056b93_256x240.png rename to awx/ui/client/lib/jqueryui/themes/start/images/ui-icons_056b93_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/start/images/ui-icons_d8e7f3_256x240.png b/awx/ui/client/lib/jqueryui/themes/start/images/ui-icons_d8e7f3_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/start/images/ui-icons_d8e7f3_256x240.png rename to awx/ui/client/lib/jqueryui/themes/start/images/ui-icons_d8e7f3_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/start/images/ui-icons_e0fdff_256x240.png b/awx/ui/client/lib/jqueryui/themes/start/images/ui-icons_e0fdff_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/start/images/ui-icons_e0fdff_256x240.png rename to awx/ui/client/lib/jqueryui/themes/start/images/ui-icons_e0fdff_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/start/images/ui-icons_f5e175_256x240.png b/awx/ui/client/lib/jqueryui/themes/start/images/ui-icons_f5e175_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/start/images/ui-icons_f5e175_256x240.png rename to awx/ui/client/lib/jqueryui/themes/start/images/ui-icons_f5e175_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/start/images/ui-icons_f7a50d_256x240.png b/awx/ui/client/lib/jqueryui/themes/start/images/ui-icons_f7a50d_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/start/images/ui-icons_f7a50d_256x240.png rename to awx/ui/client/lib/jqueryui/themes/start/images/ui-icons_f7a50d_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/start/images/ui-icons_fcd113_256x240.png b/awx/ui/client/lib/jqueryui/themes/start/images/ui-icons_fcd113_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/start/images/ui-icons_fcd113_256x240.png rename to awx/ui/client/lib/jqueryui/themes/start/images/ui-icons_fcd113_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/start/jquery-ui.css b/awx/ui/client/lib/jqueryui/themes/start/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/start/jquery-ui.css rename to awx/ui/client/lib/jqueryui/themes/start/jquery-ui.css diff --git a/awx/ui/static/lib/jqueryui/themes/start/jquery-ui.min.css b/awx/ui/client/lib/jqueryui/themes/start/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/start/jquery-ui.min.css rename to awx/ui/client/lib/jqueryui/themes/start/jquery-ui.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/start/jquery.ui.theme.css b/awx/ui/client/lib/jqueryui/themes/start/jquery.ui.theme.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/start/jquery.ui.theme.css rename to awx/ui/client/lib/jqueryui/themes/start/jquery.ui.theme.css diff --git a/awx/ui/static/lib/jqueryui/themes/sunny/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/sunny/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/sunny/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/sunny/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/sunny/images/ui-bg_diagonals-medium_20_d34d17_40x40.png b/awx/ui/client/lib/jqueryui/themes/sunny/images/ui-bg_diagonals-medium_20_d34d17_40x40.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/sunny/images/ui-bg_diagonals-medium_20_d34d17_40x40.png rename to awx/ui/client/lib/jqueryui/themes/sunny/images/ui-bg_diagonals-medium_20_d34d17_40x40.png diff --git a/awx/ui/static/lib/jqueryui/themes/sunny/images/ui-bg_flat_30_cccccc_40x100.png b/awx/ui/client/lib/jqueryui/themes/sunny/images/ui-bg_flat_30_cccccc_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/sunny/images/ui-bg_flat_30_cccccc_40x100.png rename to awx/ui/client/lib/jqueryui/themes/sunny/images/ui-bg_flat_30_cccccc_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/sunny/images/ui-bg_flat_50_5c5c5c_40x100.png b/awx/ui/client/lib/jqueryui/themes/sunny/images/ui-bg_flat_50_5c5c5c_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/sunny/images/ui-bg_flat_50_5c5c5c_40x100.png rename to awx/ui/client/lib/jqueryui/themes/sunny/images/ui-bg_flat_50_5c5c5c_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/sunny/images/ui-bg_gloss-wave_45_817865_500x100.png b/awx/ui/client/lib/jqueryui/themes/sunny/images/ui-bg_gloss-wave_45_817865_500x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/sunny/images/ui-bg_gloss-wave_45_817865_500x100.png rename to awx/ui/client/lib/jqueryui/themes/sunny/images/ui-bg_gloss-wave_45_817865_500x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/sunny/images/ui-bg_gloss-wave_60_fece2f_500x100.png b/awx/ui/client/lib/jqueryui/themes/sunny/images/ui-bg_gloss-wave_60_fece2f_500x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/sunny/images/ui-bg_gloss-wave_60_fece2f_500x100.png rename to awx/ui/client/lib/jqueryui/themes/sunny/images/ui-bg_gloss-wave_60_fece2f_500x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/sunny/images/ui-bg_gloss-wave_70_ffdd57_500x100.png b/awx/ui/client/lib/jqueryui/themes/sunny/images/ui-bg_gloss-wave_70_ffdd57_500x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/sunny/images/ui-bg_gloss-wave_70_ffdd57_500x100.png rename to awx/ui/client/lib/jqueryui/themes/sunny/images/ui-bg_gloss-wave_70_ffdd57_500x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/sunny/images/ui-bg_gloss-wave_90_fff9e5_500x100.png b/awx/ui/client/lib/jqueryui/themes/sunny/images/ui-bg_gloss-wave_90_fff9e5_500x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/sunny/images/ui-bg_gloss-wave_90_fff9e5_500x100.png rename to awx/ui/client/lib/jqueryui/themes/sunny/images/ui-bg_gloss-wave_90_fff9e5_500x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/sunny/images/ui-bg_highlight-soft_100_feeebd_1x100.png b/awx/ui/client/lib/jqueryui/themes/sunny/images/ui-bg_highlight-soft_100_feeebd_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/sunny/images/ui-bg_highlight-soft_100_feeebd_1x100.png rename to awx/ui/client/lib/jqueryui/themes/sunny/images/ui-bg_highlight-soft_100_feeebd_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/sunny/images/ui-bg_inset-soft_30_ffffff_1x100.png b/awx/ui/client/lib/jqueryui/themes/sunny/images/ui-bg_inset-soft_30_ffffff_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/sunny/images/ui-bg_inset-soft_30_ffffff_1x100.png rename to awx/ui/client/lib/jqueryui/themes/sunny/images/ui-bg_inset-soft_30_ffffff_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/sunny/images/ui-icons_3d3d3d_256x240.png b/awx/ui/client/lib/jqueryui/themes/sunny/images/ui-icons_3d3d3d_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/sunny/images/ui-icons_3d3d3d_256x240.png rename to awx/ui/client/lib/jqueryui/themes/sunny/images/ui-icons_3d3d3d_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/sunny/images/ui-icons_bd7b00_256x240.png b/awx/ui/client/lib/jqueryui/themes/sunny/images/ui-icons_bd7b00_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/sunny/images/ui-icons_bd7b00_256x240.png rename to awx/ui/client/lib/jqueryui/themes/sunny/images/ui-icons_bd7b00_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/sunny/images/ui-icons_d19405_256x240.png b/awx/ui/client/lib/jqueryui/themes/sunny/images/ui-icons_d19405_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/sunny/images/ui-icons_d19405_256x240.png rename to awx/ui/client/lib/jqueryui/themes/sunny/images/ui-icons_d19405_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/sunny/images/ui-icons_eb990f_256x240.png b/awx/ui/client/lib/jqueryui/themes/sunny/images/ui-icons_eb990f_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/sunny/images/ui-icons_eb990f_256x240.png rename to awx/ui/client/lib/jqueryui/themes/sunny/images/ui-icons_eb990f_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/sunny/images/ui-icons_ed9f26_256x240.png b/awx/ui/client/lib/jqueryui/themes/sunny/images/ui-icons_ed9f26_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/sunny/images/ui-icons_ed9f26_256x240.png rename to awx/ui/client/lib/jqueryui/themes/sunny/images/ui-icons_ed9f26_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/sunny/images/ui-icons_fadc7a_256x240.png b/awx/ui/client/lib/jqueryui/themes/sunny/images/ui-icons_fadc7a_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/sunny/images/ui-icons_fadc7a_256x240.png rename to awx/ui/client/lib/jqueryui/themes/sunny/images/ui-icons_fadc7a_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/sunny/images/ui-icons_ffe180_256x240.png b/awx/ui/client/lib/jqueryui/themes/sunny/images/ui-icons_ffe180_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/sunny/images/ui-icons_ffe180_256x240.png rename to awx/ui/client/lib/jqueryui/themes/sunny/images/ui-icons_ffe180_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/sunny/jquery-ui.css b/awx/ui/client/lib/jqueryui/themes/sunny/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/sunny/jquery-ui.css rename to awx/ui/client/lib/jqueryui/themes/sunny/jquery-ui.css diff --git a/awx/ui/static/lib/jqueryui/themes/sunny/jquery-ui.min.css b/awx/ui/client/lib/jqueryui/themes/sunny/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/sunny/jquery-ui.min.css rename to awx/ui/client/lib/jqueryui/themes/sunny/jquery-ui.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/sunny/jquery.ui.theme.css b/awx/ui/client/lib/jqueryui/themes/sunny/jquery.ui.theme.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/sunny/jquery.ui.theme.css rename to awx/ui/client/lib/jqueryui/themes/sunny/jquery.ui.theme.css diff --git a/awx/ui/static/lib/jqueryui/themes/swanky-purse/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/swanky-purse/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/swanky-purse/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/swanky-purse/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-bg_diamond_10_4f4221_10x8.png b/awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-bg_diamond_10_4f4221_10x8.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-bg_diamond_10_4f4221_10x8.png rename to awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-bg_diamond_10_4f4221_10x8.png diff --git a/awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-bg_diamond_20_372806_10x8.png b/awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-bg_diamond_20_372806_10x8.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-bg_diamond_20_372806_10x8.png rename to awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-bg_diamond_20_372806_10x8.png diff --git a/awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-bg_diamond_25_675423_10x8.png b/awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-bg_diamond_25_675423_10x8.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-bg_diamond_25_675423_10x8.png rename to awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-bg_diamond_25_675423_10x8.png diff --git a/awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-bg_diamond_25_d5ac5d_10x8.png b/awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-bg_diamond_25_d5ac5d_10x8.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-bg_diamond_25_d5ac5d_10x8.png rename to awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-bg_diamond_25_d5ac5d_10x8.png diff --git a/awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-bg_diamond_8_261803_10x8.png b/awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-bg_diamond_8_261803_10x8.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-bg_diamond_8_261803_10x8.png rename to awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-bg_diamond_8_261803_10x8.png diff --git a/awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-bg_diamond_8_443113_10x8.png b/awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-bg_diamond_8_443113_10x8.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-bg_diamond_8_443113_10x8.png rename to awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-bg_diamond_8_443113_10x8.png diff --git a/awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-bg_flat_75_ddd4b0_40x100.png b/awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-bg_flat_75_ddd4b0_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-bg_flat_75_ddd4b0_40x100.png rename to awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-bg_flat_75_ddd4b0_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-bg_highlight-hard_65_fee4bd_1x100.png b/awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-bg_highlight-hard_65_fee4bd_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-bg_highlight-hard_65_fee4bd_1x100.png rename to awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-bg_highlight-hard_65_fee4bd_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-icons_070603_256x240.png b/awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-icons_070603_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-icons_070603_256x240.png rename to awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-icons_070603_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-icons_e8e2b5_256x240.png b/awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-icons_e8e2b5_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-icons_e8e2b5_256x240.png rename to awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-icons_e8e2b5_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-icons_e9cd86_256x240.png b/awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-icons_e9cd86_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-icons_e9cd86_256x240.png rename to awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-icons_e9cd86_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-icons_efec9f_256x240.png b/awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-icons_efec9f_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-icons_efec9f_256x240.png rename to awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-icons_efec9f_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-icons_f2ec64_256x240.png b/awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-icons_f2ec64_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-icons_f2ec64_256x240.png rename to awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-icons_f2ec64_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-icons_f9f2bd_256x240.png b/awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-icons_f9f2bd_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-icons_f9f2bd_256x240.png rename to awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-icons_f9f2bd_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-icons_ff7519_256x240.png b/awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-icons_ff7519_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/swanky-purse/images/ui-icons_ff7519_256x240.png rename to awx/ui/client/lib/jqueryui/themes/swanky-purse/images/ui-icons_ff7519_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/swanky-purse/jquery-ui.css b/awx/ui/client/lib/jqueryui/themes/swanky-purse/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/swanky-purse/jquery-ui.css rename to awx/ui/client/lib/jqueryui/themes/swanky-purse/jquery-ui.css diff --git a/awx/ui/static/lib/jqueryui/themes/swanky-purse/jquery-ui.min.css b/awx/ui/client/lib/jqueryui/themes/swanky-purse/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/swanky-purse/jquery-ui.min.css rename to awx/ui/client/lib/jqueryui/themes/swanky-purse/jquery-ui.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/swanky-purse/jquery.ui.theme.css b/awx/ui/client/lib/jqueryui/themes/swanky-purse/jquery.ui.theme.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/swanky-purse/jquery.ui.theme.css rename to awx/ui/client/lib/jqueryui/themes/swanky-purse/jquery.ui.theme.css diff --git a/awx/ui/static/lib/jqueryui/themes/trontastic/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/trontastic/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/trontastic/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/trontastic/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-bg_diagonals-small_50_262626_40x40.png b/awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-bg_diagonals-small_50_262626_40x40.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-bg_diagonals-small_50_262626_40x40.png rename to awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-bg_diagonals-small_50_262626_40x40.png diff --git a/awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-bg_flat_0_303030_40x100.png b/awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-bg_flat_0_303030_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-bg_flat_0_303030_40x100.png rename to awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-bg_flat_0_303030_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-bg_flat_0_4c4c4c_40x100.png b/awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-bg_flat_0_4c4c4c_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-bg_flat_0_4c4c4c_40x100.png rename to awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-bg_flat_0_4c4c4c_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-bg_glass_40_0a0a0a_1x400.png b/awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-bg_glass_40_0a0a0a_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-bg_glass_40_0a0a0a_1x400.png rename to awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-bg_glass_40_0a0a0a_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-bg_glass_55_f1fbe5_1x400.png b/awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-bg_glass_55_f1fbe5_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-bg_glass_55_f1fbe5_1x400.png rename to awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-bg_glass_55_f1fbe5_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-bg_glass_60_000000_1x400.png b/awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-bg_glass_60_000000_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-bg_glass_60_000000_1x400.png rename to awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-bg_glass_60_000000_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-bg_gloss-wave_55_000000_500x100.png b/awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-bg_gloss-wave_55_000000_500x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-bg_gloss-wave_55_000000_500x100.png rename to awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-bg_gloss-wave_55_000000_500x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-bg_gloss-wave_85_9fda58_500x100.png b/awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-bg_gloss-wave_85_9fda58_500x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-bg_gloss-wave_85_9fda58_500x100.png rename to awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-bg_gloss-wave_85_9fda58_500x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-bg_gloss-wave_95_f6ecd5_500x100.png b/awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-bg_gloss-wave_95_f6ecd5_500x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-bg_gloss-wave_95_f6ecd5_500x100.png rename to awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-bg_gloss-wave_95_f6ecd5_500x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-icons_000000_256x240.png b/awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-icons_000000_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-icons_000000_256x240.png rename to awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-icons_000000_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-icons_1f1f1f_256x240.png b/awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-icons_1f1f1f_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-icons_1f1f1f_256x240.png rename to awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-icons_1f1f1f_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-icons_9fda58_256x240.png b/awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-icons_9fda58_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-icons_9fda58_256x240.png rename to awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-icons_9fda58_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-icons_b8ec79_256x240.png b/awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-icons_b8ec79_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-icons_b8ec79_256x240.png rename to awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-icons_b8ec79_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-icons_cd0a0a_256x240.png b/awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-icons_cd0a0a_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-icons_cd0a0a_256x240.png rename to awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-icons_cd0a0a_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/trontastic/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jqueryui/themes/trontastic/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/trontastic/jquery-ui.css b/awx/ui/client/lib/jqueryui/themes/trontastic/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/trontastic/jquery-ui.css rename to awx/ui/client/lib/jqueryui/themes/trontastic/jquery-ui.css diff --git a/awx/ui/static/lib/jqueryui/themes/trontastic/jquery-ui.min.css b/awx/ui/client/lib/jqueryui/themes/trontastic/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/trontastic/jquery-ui.min.css rename to awx/ui/client/lib/jqueryui/themes/trontastic/jquery-ui.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/trontastic/jquery.ui.theme.css b/awx/ui/client/lib/jqueryui/themes/trontastic/jquery.ui.theme.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/trontastic/jquery.ui.theme.css rename to awx/ui/client/lib/jqueryui/themes/trontastic/jquery.ui.theme.css diff --git a/awx/ui/static/lib/jqueryui/themes/ui-darkness/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/ui-darkness/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-darkness/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/ui-darkness/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-bg_flat_30_cccccc_40x100.png b/awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-bg_flat_30_cccccc_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-bg_flat_30_cccccc_40x100.png rename to awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-bg_flat_30_cccccc_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-bg_flat_50_5c5c5c_40x100.png b/awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-bg_flat_50_5c5c5c_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-bg_flat_50_5c5c5c_40x100.png rename to awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-bg_flat_50_5c5c5c_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-bg_glass_20_555555_1x400.png b/awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-bg_glass_20_555555_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-bg_glass_20_555555_1x400.png rename to awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-bg_glass_20_555555_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-bg_glass_40_0078a3_1x400.png b/awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-bg_glass_40_0078a3_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-bg_glass_40_0078a3_1x400.png rename to awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-bg_glass_40_0078a3_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-bg_glass_40_ffc73d_1x400.png b/awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-bg_glass_40_ffc73d_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-bg_glass_40_ffc73d_1x400.png rename to awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-bg_glass_40_ffc73d_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-bg_gloss-wave_25_333333_500x100.png b/awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-bg_gloss-wave_25_333333_500x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-bg_gloss-wave_25_333333_500x100.png rename to awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-bg_gloss-wave_25_333333_500x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-bg_highlight-soft_80_eeeeee_1x100.png b/awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-bg_highlight-soft_80_eeeeee_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-bg_highlight-soft_80_eeeeee_1x100.png rename to awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-bg_highlight-soft_80_eeeeee_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-bg_inset-soft_25_000000_1x100.png b/awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-bg_inset-soft_25_000000_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-bg_inset-soft_25_000000_1x100.png rename to awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-bg_inset-soft_25_000000_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-bg_inset-soft_30_f58400_1x100.png b/awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-bg_inset-soft_30_f58400_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-bg_inset-soft_30_f58400_1x100.png rename to awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-bg_inset-soft_30_f58400_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-icons_222222_256x240.png b/awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-icons_222222_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-icons_222222_256x240.png rename to awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-icons_222222_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-icons_4b8e0b_256x240.png b/awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-icons_4b8e0b_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-icons_4b8e0b_256x240.png rename to awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-icons_4b8e0b_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-icons_a83300_256x240.png b/awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-icons_a83300_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-icons_a83300_256x240.png rename to awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-icons_a83300_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-icons_cccccc_256x240.png b/awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-icons_cccccc_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-icons_cccccc_256x240.png rename to awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-icons_cccccc_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-darkness/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jqueryui/themes/ui-darkness/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-darkness/jquery-ui.css b/awx/ui/client/lib/jqueryui/themes/ui-darkness/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-darkness/jquery-ui.css rename to awx/ui/client/lib/jqueryui/themes/ui-darkness/jquery-ui.css diff --git a/awx/ui/static/lib/jqueryui/themes/ui-darkness/jquery-ui.min.css b/awx/ui/client/lib/jqueryui/themes/ui-darkness/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-darkness/jquery-ui.min.css rename to awx/ui/client/lib/jqueryui/themes/ui-darkness/jquery-ui.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/ui-darkness/jquery.ui.theme.css b/awx/ui/client/lib/jqueryui/themes/ui-darkness/jquery.ui.theme.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-darkness/jquery.ui.theme.css rename to awx/ui/client/lib/jqueryui/themes/ui-darkness/jquery.ui.theme.css diff --git a/awx/ui/static/lib/jqueryui/themes/ui-lightness/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/ui-lightness/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-lightness/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/ui-lightness/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png b/awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png rename to awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png b/awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png rename to awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-bg_flat_10_000000_40x100.png b/awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-bg_flat_10_000000_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-bg_flat_10_000000_40x100.png rename to awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-bg_flat_10_000000_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png b/awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png rename to awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png b/awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png rename to awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png b/awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png rename to awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png b/awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png rename to awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png b/awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png rename to awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png b/awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png rename to awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-icons_222222_256x240.png b/awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-icons_222222_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-icons_222222_256x240.png rename to awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-icons_222222_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-icons_228ef1_256x240.png b/awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-icons_228ef1_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-icons_228ef1_256x240.png rename to awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-icons_228ef1_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-icons_ef8c08_256x240.png b/awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-icons_ef8c08_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-icons_ef8c08_256x240.png rename to awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-icons_ef8c08_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-icons_ffd27a_256x240.png b/awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-icons_ffd27a_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-icons_ffd27a_256x240.png rename to awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-icons_ffd27a_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-icons_ffffff_256x240.png b/awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-icons_ffffff_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-lightness/images/ui-icons_ffffff_256x240.png rename to awx/ui/client/lib/jqueryui/themes/ui-lightness/images/ui-icons_ffffff_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/ui-lightness/jquery-ui.css b/awx/ui/client/lib/jqueryui/themes/ui-lightness/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-lightness/jquery-ui.css rename to awx/ui/client/lib/jqueryui/themes/ui-lightness/jquery-ui.css diff --git a/awx/ui/static/lib/jqueryui/themes/ui-lightness/jquery-ui.min.css b/awx/ui/client/lib/jqueryui/themes/ui-lightness/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-lightness/jquery-ui.min.css rename to awx/ui/client/lib/jqueryui/themes/ui-lightness/jquery-ui.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/ui-lightness/jquery.ui.theme.css b/awx/ui/client/lib/jqueryui/themes/ui-lightness/jquery.ui.theme.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/ui-lightness/jquery.ui.theme.css rename to awx/ui/client/lib/jqueryui/themes/ui-lightness/jquery.ui.theme.css diff --git a/awx/ui/static/lib/jqueryui/themes/vader/images/animated-overlay.gif b/awx/ui/client/lib/jqueryui/themes/vader/images/animated-overlay.gif similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/vader/images/animated-overlay.gif rename to awx/ui/client/lib/jqueryui/themes/vader/images/animated-overlay.gif diff --git a/awx/ui/static/lib/jqueryui/themes/vader/images/ui-bg_flat_0_aaaaaa_40x100.png b/awx/ui/client/lib/jqueryui/themes/vader/images/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/vader/images/ui-bg_flat_0_aaaaaa_40x100.png rename to awx/ui/client/lib/jqueryui/themes/vader/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/vader/images/ui-bg_glass_95_fef1ec_1x400.png b/awx/ui/client/lib/jqueryui/themes/vader/images/ui-bg_glass_95_fef1ec_1x400.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/vader/images/ui-bg_glass_95_fef1ec_1x400.png rename to awx/ui/client/lib/jqueryui/themes/vader/images/ui-bg_glass_95_fef1ec_1x400.png diff --git a/awx/ui/static/lib/jqueryui/themes/vader/images/ui-bg_gloss-wave_16_121212_500x100.png b/awx/ui/client/lib/jqueryui/themes/vader/images/ui-bg_gloss-wave_16_121212_500x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/vader/images/ui-bg_gloss-wave_16_121212_500x100.png rename to awx/ui/client/lib/jqueryui/themes/vader/images/ui-bg_gloss-wave_16_121212_500x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/vader/images/ui-bg_highlight-hard_15_888888_1x100.png b/awx/ui/client/lib/jqueryui/themes/vader/images/ui-bg_highlight-hard_15_888888_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/vader/images/ui-bg_highlight-hard_15_888888_1x100.png rename to awx/ui/client/lib/jqueryui/themes/vader/images/ui-bg_highlight-hard_15_888888_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/vader/images/ui-bg_highlight-hard_55_555555_1x100.png b/awx/ui/client/lib/jqueryui/themes/vader/images/ui-bg_highlight-hard_55_555555_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/vader/images/ui-bg_highlight-hard_55_555555_1x100.png rename to awx/ui/client/lib/jqueryui/themes/vader/images/ui-bg_highlight-hard_55_555555_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/vader/images/ui-bg_highlight-soft_35_adadad_1x100.png b/awx/ui/client/lib/jqueryui/themes/vader/images/ui-bg_highlight-soft_35_adadad_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/vader/images/ui-bg_highlight-soft_35_adadad_1x100.png rename to awx/ui/client/lib/jqueryui/themes/vader/images/ui-bg_highlight-soft_35_adadad_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/vader/images/ui-bg_highlight-soft_60_dddddd_1x100.png b/awx/ui/client/lib/jqueryui/themes/vader/images/ui-bg_highlight-soft_60_dddddd_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/vader/images/ui-bg_highlight-soft_60_dddddd_1x100.png rename to awx/ui/client/lib/jqueryui/themes/vader/images/ui-bg_highlight-soft_60_dddddd_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/vader/images/ui-bg_inset-soft_15_121212_1x100.png b/awx/ui/client/lib/jqueryui/themes/vader/images/ui-bg_inset-soft_15_121212_1x100.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/vader/images/ui-bg_inset-soft_15_121212_1x100.png rename to awx/ui/client/lib/jqueryui/themes/vader/images/ui-bg_inset-soft_15_121212_1x100.png diff --git a/awx/ui/static/lib/jqueryui/themes/vader/images/ui-icons_666666_256x240.png b/awx/ui/client/lib/jqueryui/themes/vader/images/ui-icons_666666_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/vader/images/ui-icons_666666_256x240.png rename to awx/ui/client/lib/jqueryui/themes/vader/images/ui-icons_666666_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/vader/images/ui-icons_aaaaaa_256x240.png b/awx/ui/client/lib/jqueryui/themes/vader/images/ui-icons_aaaaaa_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/vader/images/ui-icons_aaaaaa_256x240.png rename to awx/ui/client/lib/jqueryui/themes/vader/images/ui-icons_aaaaaa_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/vader/images/ui-icons_bbbbbb_256x240.png b/awx/ui/client/lib/jqueryui/themes/vader/images/ui-icons_bbbbbb_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/vader/images/ui-icons_bbbbbb_256x240.png rename to awx/ui/client/lib/jqueryui/themes/vader/images/ui-icons_bbbbbb_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/vader/images/ui-icons_c98000_256x240.png b/awx/ui/client/lib/jqueryui/themes/vader/images/ui-icons_c98000_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/vader/images/ui-icons_c98000_256x240.png rename to awx/ui/client/lib/jqueryui/themes/vader/images/ui-icons_c98000_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/vader/images/ui-icons_cccccc_256x240.png b/awx/ui/client/lib/jqueryui/themes/vader/images/ui-icons_cccccc_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/vader/images/ui-icons_cccccc_256x240.png rename to awx/ui/client/lib/jqueryui/themes/vader/images/ui-icons_cccccc_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/vader/images/ui-icons_cd0a0a_256x240.png b/awx/ui/client/lib/jqueryui/themes/vader/images/ui-icons_cd0a0a_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/vader/images/ui-icons_cd0a0a_256x240.png rename to awx/ui/client/lib/jqueryui/themes/vader/images/ui-icons_cd0a0a_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/vader/images/ui-icons_f29a00_256x240.png b/awx/ui/client/lib/jqueryui/themes/vader/images/ui-icons_f29a00_256x240.png similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/vader/images/ui-icons_f29a00_256x240.png rename to awx/ui/client/lib/jqueryui/themes/vader/images/ui-icons_f29a00_256x240.png diff --git a/awx/ui/static/lib/jqueryui/themes/vader/jquery-ui.css b/awx/ui/client/lib/jqueryui/themes/vader/jquery-ui.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/vader/jquery-ui.css rename to awx/ui/client/lib/jqueryui/themes/vader/jquery-ui.css diff --git a/awx/ui/static/lib/jqueryui/themes/vader/jquery-ui.min.css b/awx/ui/client/lib/jqueryui/themes/vader/jquery-ui.min.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/vader/jquery-ui.min.css rename to awx/ui/client/lib/jqueryui/themes/vader/jquery-ui.min.css diff --git a/awx/ui/static/lib/jqueryui/themes/vader/jquery.ui.theme.css b/awx/ui/client/lib/jqueryui/themes/vader/jquery.ui.theme.css similarity index 100% rename from awx/ui/static/lib/jqueryui/themes/vader/jquery.ui.theme.css rename to awx/ui/client/lib/jqueryui/themes/vader/jquery.ui.theme.css diff --git a/awx/ui/static/lib/jqueryui/ui/.jshintrc b/awx/ui/client/lib/jqueryui/ui/.jshintrc similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/.jshintrc rename to awx/ui/client/lib/jqueryui/ui/.jshintrc diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery-ui-i18n.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery-ui-i18n.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery-ui-i18n.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery-ui-i18n.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-af.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-af.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-af.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-af.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ar-DZ.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ar-DZ.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ar-DZ.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ar-DZ.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ar.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ar.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ar.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ar.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-az.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-az.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-az.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-az.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-be.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-be.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-be.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-be.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-bg.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-bg.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-bg.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-bg.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-bs.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-bs.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-bs.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-bs.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ca.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ca.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ca.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ca.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-cs.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-cs.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-cs.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-cs.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-cy-GB.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-cy-GB.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-cy-GB.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-cy-GB.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-da.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-da.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-da.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-da.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-de.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-de.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-de.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-de.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-el.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-el.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-el.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-el.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-en-AU.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-en-AU.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-en-AU.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-en-AU.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-en-GB.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-en-GB.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-en-GB.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-en-GB.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-en-NZ.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-en-NZ.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-en-NZ.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-en-NZ.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-eo.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-eo.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-eo.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-eo.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-es.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-es.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-es.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-es.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-et.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-et.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-et.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-et.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-eu.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-eu.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-eu.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-eu.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-fa.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-fa.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-fa.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-fa.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-fi.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-fi.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-fi.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-fi.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-fo.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-fo.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-fo.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-fo.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-fr-CA.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-fr-CA.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-fr-CA.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-fr-CA.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-fr-CH.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-fr-CH.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-fr-CH.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-fr-CH.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-fr.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-fr.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-fr.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-fr.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-gl.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-gl.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-gl.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-gl.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-he.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-he.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-he.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-he.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-hi.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-hi.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-hi.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-hi.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-hr.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-hr.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-hr.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-hr.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-hu.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-hu.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-hu.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-hu.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-hy.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-hy.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-hy.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-hy.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-id.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-id.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-id.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-id.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-is.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-is.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-is.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-is.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-it.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-it.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-it.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-it.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ja.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ja.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ja.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ja.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ka.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ka.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ka.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ka.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-kk.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-kk.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-kk.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-kk.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-km.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-km.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-km.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-km.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ko.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ko.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ko.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ko.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ky.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ky.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ky.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ky.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-lb.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-lb.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-lb.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-lb.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-lt.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-lt.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-lt.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-lt.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-lv.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-lv.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-lv.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-lv.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-mk.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-mk.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-mk.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-mk.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ml.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ml.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ml.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ml.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ms.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ms.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ms.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ms.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-nb.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-nb.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-nb.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-nb.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-nl-BE.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-nl-BE.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-nl-BE.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-nl-BE.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-nl.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-nl.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-nl.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-nl.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-nn.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-nn.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-nn.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-nn.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-no.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-no.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-no.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-no.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-pl.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-pl.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-pl.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-pl.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-pt-BR.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-pt-BR.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-pt-BR.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-pt-BR.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-pt.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-pt.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-pt.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-pt.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-rm.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-rm.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-rm.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-rm.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ro.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ro.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ro.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ro.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ru.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ru.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ru.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ru.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-sk.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-sk.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-sk.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-sk.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-sl.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-sl.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-sl.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-sl.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-sq.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-sq.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-sq.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-sq.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-sr-SR.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-sr-SR.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-sr-SR.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-sr-SR.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-sr.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-sr.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-sr.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-sr.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-sv.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-sv.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-sv.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-sv.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ta.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ta.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ta.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-ta.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-th.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-th.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-th.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-th.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-tj.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-tj.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-tj.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-tj.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-tr.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-tr.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-tr.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-tr.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-uk.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-uk.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-uk.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-uk.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-vi.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-vi.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-vi.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-vi.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-zh-CN.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-zh-CN.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-zh-CN.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-zh-CN.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-zh-HK.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-zh-HK.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-zh-HK.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-zh-HK.js diff --git a/awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-zh-TW.js b/awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-zh-TW.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/i18n/jquery.ui.datepicker-zh-TW.js rename to awx/ui/client/lib/jqueryui/ui/i18n/jquery.ui.datepicker-zh-TW.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery-ui.custom.js b/awx/ui/client/lib/jqueryui/ui/jquery-ui.custom.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery-ui.custom.js rename to awx/ui/client/lib/jqueryui/ui/jquery-ui.custom.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery-ui.js b/awx/ui/client/lib/jqueryui/ui/jquery-ui.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery-ui.js rename to awx/ui/client/lib/jqueryui/ui/jquery-ui.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.accordion.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.accordion.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.accordion.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.accordion.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.autocomplete.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.autocomplete.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.autocomplete.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.autocomplete.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.button.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.button.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.button.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.button.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.core.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.core.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.core.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.core.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.datepicker.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.datepicker.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.datepicker.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.datepicker.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.dialog.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.dialog.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.dialog.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.dialog.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.draggable.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.draggable.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.draggable.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.draggable.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.droppable.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.droppable.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.droppable.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.droppable.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-blind.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-blind.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-blind.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-blind.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-bounce.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-bounce.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-bounce.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-bounce.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-clip.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-clip.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-clip.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-clip.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-drop.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-drop.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-drop.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-drop.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-explode.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-explode.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-explode.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-explode.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-fade.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-fade.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-fade.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-fade.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-fold.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-fold.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-fold.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-fold.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-highlight.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-highlight.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-highlight.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-highlight.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-pulsate.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-pulsate.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-pulsate.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-pulsate.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-scale.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-scale.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-scale.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-scale.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-shake.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-shake.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-shake.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-shake.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-slide.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-slide.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-slide.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-slide.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-transfer.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-transfer.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.effect-transfer.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.effect-transfer.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.effect.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.effect.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.effect.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.effect.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.menu.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.menu.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.menu.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.menu.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.mouse.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.mouse.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.mouse.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.mouse.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.position.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.position.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.position.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.position.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.progressbar.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.progressbar.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.progressbar.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.progressbar.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.resizable.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.resizable.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.resizable.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.resizable.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.selectable.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.selectable.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.selectable.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.selectable.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.slider.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.slider.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.slider.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.slider.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.sortable.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.sortable.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.sortable.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.sortable.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.spinner.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.spinner.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.spinner.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.spinner.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.tabs.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.tabs.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.tabs.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.tabs.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.tooltip.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.tooltip.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.tooltip.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.tooltip.js diff --git a/awx/ui/static/lib/jqueryui/ui/jquery.ui.widget.js b/awx/ui/client/lib/jqueryui/ui/jquery.ui.widget.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/jquery.ui.widget.js rename to awx/ui/client/lib/jqueryui/ui/jquery.ui.widget.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery-ui-i18n.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery-ui-i18n.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery-ui-i18n.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery-ui-i18n.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-af.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-af.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-af.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-af.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ar-DZ.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ar-DZ.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ar-DZ.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ar-DZ.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ar.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ar.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ar.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ar.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-az.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-az.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-az.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-az.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-be.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-be.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-be.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-be.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-bg.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-bg.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-bg.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-bg.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-bs.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-bs.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-bs.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-bs.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ca.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ca.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ca.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ca.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-cs.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-cs.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-cs.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-cs.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-cy-GB.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-cy-GB.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-cy-GB.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-cy-GB.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-da.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-da.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-da.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-da.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-de.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-de.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-de.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-de.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-el.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-el.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-el.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-el.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-en-AU.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-en-AU.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-en-AU.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-en-AU.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-en-GB.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-en-GB.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-en-GB.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-en-GB.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-en-NZ.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-en-NZ.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-en-NZ.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-en-NZ.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-eo.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-eo.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-eo.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-eo.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-es.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-es.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-es.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-es.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-et.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-et.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-et.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-et.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-eu.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-eu.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-eu.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-eu.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-fa.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-fa.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-fa.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-fa.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-fi.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-fi.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-fi.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-fi.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-fo.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-fo.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-fo.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-fo.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-fr-CA.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-fr-CA.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-fr-CA.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-fr-CA.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-fr-CH.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-fr-CH.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-fr-CH.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-fr-CH.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-fr.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-fr.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-fr.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-fr.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-gl.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-gl.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-gl.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-gl.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-he.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-he.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-he.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-he.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-hi.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-hi.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-hi.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-hi.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-hr.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-hr.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-hr.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-hr.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-hu.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-hu.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-hu.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-hu.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-hy.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-hy.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-hy.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-hy.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-id.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-id.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-id.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-id.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-is.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-is.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-is.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-is.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-it.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-it.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-it.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-it.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ja.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ja.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ja.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ja.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ka.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ka.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ka.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ka.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-kk.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-kk.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-kk.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-kk.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-km.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-km.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-km.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-km.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ko.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ko.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ko.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ko.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ky.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ky.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ky.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ky.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-lb.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-lb.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-lb.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-lb.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-lt.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-lt.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-lt.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-lt.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-lv.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-lv.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-lv.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-lv.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-mk.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-mk.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-mk.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-mk.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ml.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ml.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ml.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ml.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ms.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ms.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ms.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ms.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-nb.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-nb.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-nb.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-nb.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-nl-BE.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-nl-BE.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-nl-BE.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-nl-BE.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-nl.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-nl.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-nl.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-nl.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-nn.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-nn.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-nn.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-nn.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-no.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-no.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-no.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-no.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-pl.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-pl.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-pl.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-pl.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-pt-BR.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-pt-BR.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-pt-BR.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-pt-BR.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-pt.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-pt.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-pt.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-pt.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-rm.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-rm.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-rm.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-rm.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ro.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ro.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ro.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ro.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ru.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ru.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ru.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ru.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-sk.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-sk.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-sk.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-sk.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-sl.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-sl.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-sl.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-sl.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-sq.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-sq.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-sq.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-sq.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-sr-SR.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-sr-SR.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-sr-SR.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-sr-SR.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-sr.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-sr.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-sr.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-sr.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-sv.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-sv.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-sv.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-sv.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ta.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ta.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ta.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-ta.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-th.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-th.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-th.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-th.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-tj.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-tj.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-tj.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-tj.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-tr.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-tr.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-tr.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-tr.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-uk.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-uk.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-uk.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-uk.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-vi.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-vi.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-vi.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-vi.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-zh-CN.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-zh-CN.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-zh-CN.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-zh-CN.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-zh-HK.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-zh-HK.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-zh-HK.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-zh-HK.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-zh-TW.min.js b/awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-zh-TW.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-zh-TW.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/i18n/jquery.ui.datepicker-zh-TW.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery-ui.custom.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery-ui.custom.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery-ui.custom.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery-ui.custom.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery-ui.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery-ui.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery-ui.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery-ui.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.accordion.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.accordion.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.accordion.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.accordion.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.autocomplete.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.autocomplete.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.autocomplete.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.autocomplete.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.button.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.button.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.button.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.button.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.core.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.core.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.core.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.core.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.datepicker.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.datepicker.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.datepicker.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.datepicker.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.dialog.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.dialog.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.dialog.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.dialog.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.draggable.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.draggable.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.draggable.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.draggable.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.droppable.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.droppable.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.droppable.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.droppable.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-blind.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-blind.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-blind.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-blind.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-bounce.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-bounce.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-bounce.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-bounce.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-clip.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-clip.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-clip.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-clip.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-drop.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-drop.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-drop.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-drop.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-explode.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-explode.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-explode.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-explode.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-fade.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-fade.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-fade.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-fade.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-fold.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-fold.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-fold.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-fold.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-highlight.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-highlight.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-highlight.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-highlight.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-pulsate.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-pulsate.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-pulsate.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-pulsate.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-scale.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-scale.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-scale.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-scale.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-shake.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-shake.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-shake.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-shake.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-slide.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-slide.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-slide.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-slide.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-transfer.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-transfer.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect-transfer.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect-transfer.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.effect.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.effect.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.menu.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.menu.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.menu.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.menu.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.mouse.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.mouse.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.mouse.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.mouse.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.position.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.position.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.position.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.position.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.progressbar.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.progressbar.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.progressbar.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.progressbar.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.resizable.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.resizable.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.resizable.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.resizable.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.selectable.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.selectable.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.selectable.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.selectable.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.slider.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.slider.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.slider.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.slider.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.sortable.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.sortable.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.sortable.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.sortable.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.spinner.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.spinner.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.spinner.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.spinner.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.tabs.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.tabs.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.tabs.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.tabs.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.tooltip.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.tooltip.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.tooltip.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.tooltip.min.js diff --git a/awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.widget.min.js b/awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.widget.min.js similarity index 100% rename from awx/ui/static/lib/jqueryui/ui/minified/jquery.ui.widget.min.js rename to awx/ui/client/lib/jqueryui/ui/minified/jquery.ui.widget.min.js diff --git a/awx/ui/static/lib/js-yaml/.bower.json b/awx/ui/client/lib/js-yaml/.bower.json similarity index 100% rename from awx/ui/static/lib/js-yaml/.bower.json rename to awx/ui/client/lib/js-yaml/.bower.json diff --git a/awx/ui/static/lib/js-yaml/HISTORY.md b/awx/ui/client/lib/js-yaml/HISTORY.md similarity index 100% rename from awx/ui/static/lib/js-yaml/HISTORY.md rename to awx/ui/client/lib/js-yaml/HISTORY.md diff --git a/awx/ui/static/lib/js-yaml/LICENSE b/awx/ui/client/lib/js-yaml/LICENSE similarity index 100% rename from awx/ui/static/lib/js-yaml/LICENSE rename to awx/ui/client/lib/js-yaml/LICENSE diff --git a/awx/ui/static/lib/js-yaml/README.md b/awx/ui/client/lib/js-yaml/README.md similarity index 100% rename from awx/ui/static/lib/js-yaml/README.md rename to awx/ui/client/lib/js-yaml/README.md diff --git a/awx/ui/static/lib/js-yaml/bin/js-yaml.js b/awx/ui/client/lib/js-yaml/bin/js-yaml.js similarity index 100% rename from awx/ui/static/lib/js-yaml/bin/js-yaml.js rename to awx/ui/client/lib/js-yaml/bin/js-yaml.js diff --git a/awx/ui/static/lib/js-yaml/bower.json b/awx/ui/client/lib/js-yaml/bower.json similarity index 100% rename from awx/ui/static/lib/js-yaml/bower.json rename to awx/ui/client/lib/js-yaml/bower.json diff --git a/awx/ui/static/lib/js-yaml/demo/css/codemirror.css b/awx/ui/client/lib/js-yaml/demo/css/codemirror.css similarity index 100% rename from awx/ui/static/lib/js-yaml/demo/css/codemirror.css rename to awx/ui/client/lib/js-yaml/demo/css/codemirror.css diff --git a/awx/ui/static/lib/js-yaml/demo/css/codemirror.default.css b/awx/ui/client/lib/js-yaml/demo/css/codemirror.default.css similarity index 100% rename from awx/ui/static/lib/js-yaml/demo/css/codemirror.default.css rename to awx/ui/client/lib/js-yaml/demo/css/codemirror.default.css diff --git a/awx/ui/static/lib/js-yaml/demo/css/demo.css b/awx/ui/client/lib/js-yaml/demo/css/demo.css similarity index 100% rename from awx/ui/static/lib/js-yaml/demo/css/demo.css rename to awx/ui/client/lib/js-yaml/demo/css/demo.css diff --git a/awx/ui/static/lib/js-yaml/demo/js/base64.js b/awx/ui/client/lib/js-yaml/demo/js/base64.js similarity index 100% rename from awx/ui/static/lib/js-yaml/demo/js/base64.js rename to awx/ui/client/lib/js-yaml/demo/js/base64.js diff --git a/awx/ui/static/lib/js-yaml/demo/js/codemirror.js b/awx/ui/client/lib/js-yaml/demo/js/codemirror.js similarity index 100% rename from awx/ui/static/lib/js-yaml/demo/js/codemirror.js rename to awx/ui/client/lib/js-yaml/demo/js/codemirror.js diff --git a/awx/ui/static/lib/js-yaml/demo/js/codemirror/javascript.js b/awx/ui/client/lib/js-yaml/demo/js/codemirror/javascript.js similarity index 100% rename from awx/ui/static/lib/js-yaml/demo/js/codemirror/javascript.js rename to awx/ui/client/lib/js-yaml/demo/js/codemirror/javascript.js diff --git a/awx/ui/static/lib/js-yaml/demo/js/codemirror/yaml.js b/awx/ui/client/lib/js-yaml/demo/js/codemirror/yaml.js similarity index 100% rename from awx/ui/static/lib/js-yaml/demo/js/codemirror/yaml.js rename to awx/ui/client/lib/js-yaml/demo/js/codemirror/yaml.js diff --git a/awx/ui/static/lib/js-yaml/demo/js/demo.js b/awx/ui/client/lib/js-yaml/demo/js/demo.js similarity index 100% rename from awx/ui/static/lib/js-yaml/demo/js/demo.js rename to awx/ui/client/lib/js-yaml/demo/js/demo.js diff --git a/awx/ui/static/lib/js-yaml/demo/js/es5-shim.js b/awx/ui/client/lib/js-yaml/demo/js/es5-shim.js similarity index 100% rename from awx/ui/static/lib/js-yaml/demo/js/es5-shim.js rename to awx/ui/client/lib/js-yaml/demo/js/es5-shim.js diff --git a/awx/ui/static/lib/js-yaml/demo/js/esprima.js b/awx/ui/client/lib/js-yaml/demo/js/esprima.js similarity index 100% rename from awx/ui/static/lib/js-yaml/demo/js/esprima.js rename to awx/ui/client/lib/js-yaml/demo/js/esprima.js diff --git a/awx/ui/static/lib/js-yaml/demo/js/hasher.min.js b/awx/ui/client/lib/js-yaml/demo/js/hasher.min.js similarity index 100% rename from awx/ui/static/lib/js-yaml/demo/js/hasher.min.js rename to awx/ui/client/lib/js-yaml/demo/js/hasher.min.js diff --git a/awx/ui/static/lib/js-yaml/demo/js/js-yaml.js b/awx/ui/client/lib/js-yaml/demo/js/js-yaml.js similarity index 100% rename from awx/ui/static/lib/js-yaml/demo/js/js-yaml.js rename to awx/ui/client/lib/js-yaml/demo/js/js-yaml.js diff --git a/awx/ui/static/lib/js-yaml/demo/js/json3.js b/awx/ui/client/lib/js-yaml/demo/js/json3.js similarity index 100% rename from awx/ui/static/lib/js-yaml/demo/js/json3.js rename to awx/ui/client/lib/js-yaml/demo/js/json3.js diff --git a/awx/ui/static/lib/js-yaml/demo/js/utils.js b/awx/ui/client/lib/js-yaml/demo/js/utils.js similarity index 100% rename from awx/ui/static/lib/js-yaml/demo/js/utils.js rename to awx/ui/client/lib/js-yaml/demo/js/utils.js diff --git a/awx/ui/static/lib/js-yaml/dist/js-yaml.js b/awx/ui/client/lib/js-yaml/dist/js-yaml.js similarity index 100% rename from awx/ui/static/lib/js-yaml/dist/js-yaml.js rename to awx/ui/client/lib/js-yaml/dist/js-yaml.js diff --git a/awx/ui/static/lib/js-yaml/dist/js-yaml.min.js b/awx/ui/client/lib/js-yaml/dist/js-yaml.min.js similarity index 100% rename from awx/ui/static/lib/js-yaml/dist/js-yaml.min.js rename to awx/ui/client/lib/js-yaml/dist/js-yaml.min.js diff --git a/awx/ui/static/lib/js-yaml/examples/custom_types.js b/awx/ui/client/lib/js-yaml/examples/custom_types.js similarity index 100% rename from awx/ui/static/lib/js-yaml/examples/custom_types.js rename to awx/ui/client/lib/js-yaml/examples/custom_types.js diff --git a/awx/ui/static/lib/js-yaml/examples/custom_types.yml b/awx/ui/client/lib/js-yaml/examples/custom_types.yml similarity index 100% rename from awx/ui/static/lib/js-yaml/examples/custom_types.yml rename to awx/ui/client/lib/js-yaml/examples/custom_types.yml diff --git a/awx/ui/static/lib/js-yaml/examples/dumper.js b/awx/ui/client/lib/js-yaml/examples/dumper.js similarity index 100% rename from awx/ui/static/lib/js-yaml/examples/dumper.js rename to awx/ui/client/lib/js-yaml/examples/dumper.js diff --git a/awx/ui/static/lib/js-yaml/examples/dumper.json b/awx/ui/client/lib/js-yaml/examples/dumper.json similarity index 100% rename from awx/ui/static/lib/js-yaml/examples/dumper.json rename to awx/ui/client/lib/js-yaml/examples/dumper.json diff --git a/awx/ui/static/lib/js-yaml/examples/sample_document.js b/awx/ui/client/lib/js-yaml/examples/sample_document.js similarity index 100% rename from awx/ui/static/lib/js-yaml/examples/sample_document.js rename to awx/ui/client/lib/js-yaml/examples/sample_document.js diff --git a/awx/ui/static/lib/js-yaml/examples/sample_document.yml b/awx/ui/client/lib/js-yaml/examples/sample_document.yml similarity index 100% rename from awx/ui/static/lib/js-yaml/examples/sample_document.yml rename to awx/ui/client/lib/js-yaml/examples/sample_document.yml diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml.js b/awx/ui/client/lib/js-yaml/lib/js-yaml.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/common.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/common.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/common.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/common.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/dumper.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/dumper.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/dumper.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/dumper.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/exception.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/exception.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/exception.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/exception.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/loader.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/loader.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/loader.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/loader.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/mark.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/mark.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/mark.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/mark.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/schema.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/schema.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/schema.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/schema.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/schema/core.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/schema/core.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/schema/core.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/schema/core.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/schema/default_full.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/schema/default_full.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/schema/default_full.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/schema/default_full.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/schema/default_safe.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/schema/default_safe.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/schema/default_safe.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/schema/default_safe.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/schema/failsafe.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/schema/failsafe.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/schema/failsafe.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/schema/failsafe.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/schema/json.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/schema/json.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/schema/json.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/schema/json.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/type.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/type.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/type.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/type.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/type/binary.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/type/binary.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/type/binary.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/type/binary.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/type/bool.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/type/bool.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/type/bool.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/type/bool.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/type/float.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/type/float.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/type/float.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/type/float.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/type/int.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/type/int.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/type/int.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/type/int.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/type/js/function.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/type/js/function.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/type/js/function.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/type/js/function.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/type/js/regexp.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/type/js/regexp.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/type/js/regexp.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/type/js/regexp.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/type/js/undefined.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/type/js/undefined.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/type/js/undefined.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/type/js/undefined.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/type/map.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/type/map.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/type/map.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/type/map.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/type/merge.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/type/merge.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/type/merge.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/type/merge.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/type/null.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/type/null.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/type/null.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/type/null.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/type/omap.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/type/omap.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/type/omap.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/type/omap.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/type/pairs.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/type/pairs.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/type/pairs.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/type/pairs.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/type/seq.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/type/seq.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/type/seq.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/type/seq.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/type/set.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/type/set.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/type/set.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/type/set.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/type/str.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/type/str.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/type/str.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/type/str.js diff --git a/awx/ui/static/lib/js-yaml/lib/js-yaml/type/timestamp.js b/awx/ui/client/lib/js-yaml/lib/js-yaml/type/timestamp.js similarity index 100% rename from awx/ui/static/lib/js-yaml/lib/js-yaml/type/timestamp.js rename to awx/ui/client/lib/js-yaml/lib/js-yaml/type/timestamp.js diff --git a/awx/ui/static/lib/jsonlint/.bower.json b/awx/ui/client/lib/jsonlint/.bower.json similarity index 100% rename from awx/ui/static/lib/jsonlint/.bower.json rename to awx/ui/client/lib/jsonlint/.bower.json diff --git a/awx/ui/static/lib/jsonlint/.gitignore b/awx/ui/client/lib/jsonlint/.gitignore similarity index 100% rename from awx/ui/static/lib/jsonlint/.gitignore rename to awx/ui/client/lib/jsonlint/.gitignore diff --git a/awx/ui/static/lib/jsonlint/Makefile b/awx/ui/client/lib/jsonlint/Makefile similarity index 100% rename from awx/ui/static/lib/jsonlint/Makefile rename to awx/ui/client/lib/jsonlint/Makefile diff --git a/awx/ui/static/lib/jsonlint/README.md b/awx/ui/client/lib/jsonlint/README.md similarity index 100% rename from awx/ui/static/lib/jsonlint/README.md rename to awx/ui/client/lib/jsonlint/README.md diff --git a/awx/ui/static/lib/jsonlint/lib/cli.js b/awx/ui/client/lib/jsonlint/lib/cli.js similarity index 100% rename from awx/ui/static/lib/jsonlint/lib/cli.js rename to awx/ui/client/lib/jsonlint/lib/cli.js diff --git a/awx/ui/static/lib/jsonlint/lib/formatter.js b/awx/ui/client/lib/jsonlint/lib/formatter.js similarity index 100% rename from awx/ui/static/lib/jsonlint/lib/formatter.js rename to awx/ui/client/lib/jsonlint/lib/formatter.js diff --git a/awx/ui/static/lib/jsonlint/lib/jsonlint.js b/awx/ui/client/lib/jsonlint/lib/jsonlint.js similarity index 100% rename from awx/ui/static/lib/jsonlint/lib/jsonlint.js rename to awx/ui/client/lib/jsonlint/lib/jsonlint.js diff --git a/awx/ui/static/lib/jsonlint/package.json b/awx/ui/client/lib/jsonlint/package.json similarity index 100% rename from awx/ui/static/lib/jsonlint/package.json rename to awx/ui/client/lib/jsonlint/package.json diff --git a/awx/ui/static/lib/jsonlint/scripts/bundle.js b/awx/ui/client/lib/jsonlint/scripts/bundle.js similarity index 100% rename from awx/ui/static/lib/jsonlint/scripts/bundle.js rename to awx/ui/client/lib/jsonlint/scripts/bundle.js diff --git a/awx/ui/static/lib/jsonlint/src/jsonlint.l b/awx/ui/client/lib/jsonlint/src/jsonlint.l similarity index 100% rename from awx/ui/static/lib/jsonlint/src/jsonlint.l rename to awx/ui/client/lib/jsonlint/src/jsonlint.l diff --git a/awx/ui/static/lib/jsonlint/src/jsonlint.y b/awx/ui/client/lib/jsonlint/src/jsonlint.y similarity index 100% rename from awx/ui/static/lib/jsonlint/src/jsonlint.y rename to awx/ui/client/lib/jsonlint/src/jsonlint.y diff --git a/awx/ui/static/lib/jsonlint/test/all-tests.js b/awx/ui/client/lib/jsonlint/test/all-tests.js similarity index 100% rename from awx/ui/static/lib/jsonlint/test/all-tests.js rename to awx/ui/client/lib/jsonlint/test/all-tests.js diff --git a/awx/ui/static/lib/jsonlint/test/fails/10.json b/awx/ui/client/lib/jsonlint/test/fails/10.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/10.json rename to awx/ui/client/lib/jsonlint/test/fails/10.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/11.json b/awx/ui/client/lib/jsonlint/test/fails/11.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/11.json rename to awx/ui/client/lib/jsonlint/test/fails/11.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/12.json b/awx/ui/client/lib/jsonlint/test/fails/12.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/12.json rename to awx/ui/client/lib/jsonlint/test/fails/12.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/13.json b/awx/ui/client/lib/jsonlint/test/fails/13.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/13.json rename to awx/ui/client/lib/jsonlint/test/fails/13.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/14.json b/awx/ui/client/lib/jsonlint/test/fails/14.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/14.json rename to awx/ui/client/lib/jsonlint/test/fails/14.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/15.json b/awx/ui/client/lib/jsonlint/test/fails/15.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/15.json rename to awx/ui/client/lib/jsonlint/test/fails/15.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/16.json b/awx/ui/client/lib/jsonlint/test/fails/16.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/16.json rename to awx/ui/client/lib/jsonlint/test/fails/16.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/17.json b/awx/ui/client/lib/jsonlint/test/fails/17.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/17.json rename to awx/ui/client/lib/jsonlint/test/fails/17.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/19.json b/awx/ui/client/lib/jsonlint/test/fails/19.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/19.json rename to awx/ui/client/lib/jsonlint/test/fails/19.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/2.json b/awx/ui/client/lib/jsonlint/test/fails/2.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/2.json rename to awx/ui/client/lib/jsonlint/test/fails/2.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/20.json b/awx/ui/client/lib/jsonlint/test/fails/20.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/20.json rename to awx/ui/client/lib/jsonlint/test/fails/20.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/21.json b/awx/ui/client/lib/jsonlint/test/fails/21.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/21.json rename to awx/ui/client/lib/jsonlint/test/fails/21.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/22.json b/awx/ui/client/lib/jsonlint/test/fails/22.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/22.json rename to awx/ui/client/lib/jsonlint/test/fails/22.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/23.json b/awx/ui/client/lib/jsonlint/test/fails/23.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/23.json rename to awx/ui/client/lib/jsonlint/test/fails/23.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/24.json b/awx/ui/client/lib/jsonlint/test/fails/24.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/24.json rename to awx/ui/client/lib/jsonlint/test/fails/24.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/25.json b/awx/ui/client/lib/jsonlint/test/fails/25.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/25.json rename to awx/ui/client/lib/jsonlint/test/fails/25.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/26.json b/awx/ui/client/lib/jsonlint/test/fails/26.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/26.json rename to awx/ui/client/lib/jsonlint/test/fails/26.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/27.json b/awx/ui/client/lib/jsonlint/test/fails/27.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/27.json rename to awx/ui/client/lib/jsonlint/test/fails/27.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/28.json b/awx/ui/client/lib/jsonlint/test/fails/28.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/28.json rename to awx/ui/client/lib/jsonlint/test/fails/28.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/29.json b/awx/ui/client/lib/jsonlint/test/fails/29.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/29.json rename to awx/ui/client/lib/jsonlint/test/fails/29.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/3.json b/awx/ui/client/lib/jsonlint/test/fails/3.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/3.json rename to awx/ui/client/lib/jsonlint/test/fails/3.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/30.json b/awx/ui/client/lib/jsonlint/test/fails/30.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/30.json rename to awx/ui/client/lib/jsonlint/test/fails/30.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/31.json b/awx/ui/client/lib/jsonlint/test/fails/31.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/31.json rename to awx/ui/client/lib/jsonlint/test/fails/31.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/32.json b/awx/ui/client/lib/jsonlint/test/fails/32.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/32.json rename to awx/ui/client/lib/jsonlint/test/fails/32.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/33.json b/awx/ui/client/lib/jsonlint/test/fails/33.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/33.json rename to awx/ui/client/lib/jsonlint/test/fails/33.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/34.json b/awx/ui/client/lib/jsonlint/test/fails/34.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/34.json rename to awx/ui/client/lib/jsonlint/test/fails/34.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/4.json b/awx/ui/client/lib/jsonlint/test/fails/4.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/4.json rename to awx/ui/client/lib/jsonlint/test/fails/4.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/5.json b/awx/ui/client/lib/jsonlint/test/fails/5.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/5.json rename to awx/ui/client/lib/jsonlint/test/fails/5.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/6.json b/awx/ui/client/lib/jsonlint/test/fails/6.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/6.json rename to awx/ui/client/lib/jsonlint/test/fails/6.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/7.json b/awx/ui/client/lib/jsonlint/test/fails/7.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/7.json rename to awx/ui/client/lib/jsonlint/test/fails/7.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/8.json b/awx/ui/client/lib/jsonlint/test/fails/8.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/8.json rename to awx/ui/client/lib/jsonlint/test/fails/8.json diff --git a/awx/ui/static/lib/jsonlint/test/fails/9.json b/awx/ui/client/lib/jsonlint/test/fails/9.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/fails/9.json rename to awx/ui/client/lib/jsonlint/test/fails/9.json diff --git a/awx/ui/static/lib/jsonlint/test/passes/1.json b/awx/ui/client/lib/jsonlint/test/passes/1.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/passes/1.json rename to awx/ui/client/lib/jsonlint/test/passes/1.json diff --git a/awx/ui/static/lib/jsonlint/test/passes/2.json b/awx/ui/client/lib/jsonlint/test/passes/2.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/passes/2.json rename to awx/ui/client/lib/jsonlint/test/passes/2.json diff --git a/awx/ui/static/lib/jsonlint/test/passes/3.json b/awx/ui/client/lib/jsonlint/test/passes/3.json similarity index 100% rename from awx/ui/static/lib/jsonlint/test/passes/3.json rename to awx/ui/client/lib/jsonlint/test/passes/3.json diff --git a/awx/ui/static/lib/jsonlint/web/json2.js b/awx/ui/client/lib/jsonlint/web/json2.js similarity index 100% rename from awx/ui/static/lib/jsonlint/web/json2.js rename to awx/ui/client/lib/jsonlint/web/json2.js diff --git a/awx/ui/static/lib/jsonlint/web/jsonlint.html b/awx/ui/client/lib/jsonlint/web/jsonlint.html similarity index 100% rename from awx/ui/static/lib/jsonlint/web/jsonlint.html rename to awx/ui/client/lib/jsonlint/web/jsonlint.html diff --git a/awx/ui/static/lib/jsonlint/web/jsonlint.js b/awx/ui/client/lib/jsonlint/web/jsonlint.js similarity index 100% rename from awx/ui/static/lib/jsonlint/web/jsonlint.js rename to awx/ui/client/lib/jsonlint/web/jsonlint.js diff --git a/awx/ui/static/lib/kapusta-jquery.sparkline/.bower.json b/awx/ui/client/lib/kapusta-jquery.sparkline/.bower.json similarity index 100% rename from awx/ui/static/lib/kapusta-jquery.sparkline/.bower.json rename to awx/ui/client/lib/kapusta-jquery.sparkline/.bower.json diff --git a/awx/ui/static/lib/kapusta-jquery.sparkline/README.md b/awx/ui/client/lib/kapusta-jquery.sparkline/README.md similarity index 100% rename from awx/ui/static/lib/kapusta-jquery.sparkline/README.md rename to awx/ui/client/lib/kapusta-jquery.sparkline/README.md diff --git a/awx/ui/static/lib/kapusta-jquery.sparkline/bower.json b/awx/ui/client/lib/kapusta-jquery.sparkline/bower.json similarity index 100% rename from awx/ui/static/lib/kapusta-jquery.sparkline/bower.json rename to awx/ui/client/lib/kapusta-jquery.sparkline/bower.json diff --git a/awx/ui/static/lib/kapusta-jquery.sparkline/dist/jquery.sparkline.js b/awx/ui/client/lib/kapusta-jquery.sparkline/dist/jquery.sparkline.js similarity index 100% rename from awx/ui/static/lib/kapusta-jquery.sparkline/dist/jquery.sparkline.js rename to awx/ui/client/lib/kapusta-jquery.sparkline/dist/jquery.sparkline.js diff --git a/awx/ui/static/lib/kapusta-jquery.sparkline/dist/jquery.sparkline.min.js b/awx/ui/client/lib/kapusta-jquery.sparkline/dist/jquery.sparkline.min.js similarity index 100% rename from awx/ui/static/lib/kapusta-jquery.sparkline/dist/jquery.sparkline.min.js rename to awx/ui/client/lib/kapusta-jquery.sparkline/dist/jquery.sparkline.min.js diff --git a/awx/ui/client/lib/loader.js/.bower.json b/awx/ui/client/lib/loader.js/.bower.json new file mode 100644 index 0000000000..3c840396ab --- /dev/null +++ b/awx/ui/client/lib/loader.js/.bower.json @@ -0,0 +1,29 @@ +{ + "name": "loader.js", + "main": "loader.js", + "version": "3.2.1", + "homepage": "https://github.com/ember-cli/loader.js", + "authors": [ + "Stefan Penner " + ], + "license": "MIT", + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests" + ], + "devDependencies": { + "qunit": "~1.14.0" + }, + "_release": "3.2.1", + "_resolution": { + "type": "version", + "tag": "v3.2.1", + "commit": "0133801b954773bab68e67cbb477774d1de197e8" + }, + "_source": "git://github.com/stefanpenner/loader.js.git", + "_target": "~3.2.1", + "_originalSource": "loader.js" +} \ No newline at end of file diff --git a/awx/ui/client/lib/loader.js/LICENSE.md b/awx/ui/client/lib/loader.js/LICENSE.md new file mode 100644 index 0000000000..2c12a340e4 --- /dev/null +++ b/awx/ui/client/lib/loader.js/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Yehuda Katz, Stefan Penner, and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/awx/ui/client/lib/loader.js/README.md b/awx/ui/client/lib/loader.js/README.md new file mode 100644 index 0000000000..c21facf12f --- /dev/null +++ b/awx/ui/client/lib/loader.js/README.md @@ -0,0 +1,27 @@ +loader.js [![Build Status](https://travis-ci.org/ember-cli/loader.js.png?branch=master)](https://travis-ci.org/ember-cli/loader.js) +========= + +Minimal AMD loader mostly stolen from [@wycats](https://github.com/wycats). + +## Tests + +To run the test you'll need to have +[testem](https://github.com/airportyh/testem) installed. Install it with `npm +install -g testem`. + +_(You'll also have to install the bower components, which you can do by running +`bower install`)_ + +You may run them with: +```bash +testem ci +``` + +You can also launch testem development mode with: +```bash +testem +``` + +## License + +loader.js is [MIT Licensed](https://github.com/ember-cli/loader.js/blob/master/LICENSE.md). diff --git a/awx/ui/static/lib/loader.js/bower.json b/awx/ui/client/lib/loader.js/bower.json similarity index 63% rename from awx/ui/static/lib/loader.js/bower.json rename to awx/ui/client/lib/loader.js/bower.json index d90ee21eca..0cee189a4a 100644 --- a/awx/ui/static/lib/loader.js/bower.json +++ b/awx/ui/client/lib/loader.js/bower.json @@ -1,8 +1,8 @@ { "name": "loader.js", "main": "loader.js", - "version": "0.0.0", - "homepage": "https://github.com/stefanpenner/loader.js", + "version": "3.2.1", + "homepage": "https://github.com/ember-cli/loader.js", "authors": [ "Stefan Penner " ], @@ -13,5 +13,8 @@ "bower_components", "test", "tests" - ] + ], + "devDependencies": { + "qunit": "~1.14.0" + } } diff --git a/awx/ui/client/lib/loader.js/loader.js b/awx/ui/client/lib/loader.js/loader.js new file mode 100644 index 0000000000..f2bfb832dc --- /dev/null +++ b/awx/ui/client/lib/loader.js/loader.js @@ -0,0 +1,198 @@ +var define, requireModule, require, requirejs; + +(function() { + + var _isArray; + if (!Array.isArray) { + _isArray = function (x) { + return Object.prototype.toString.call(x) === "[object Array]"; + }; + } else { + _isArray = Array.isArray; + } + + var registry = {}, seen = {}; + var FAILED = false; + + var uuid = 0; + + function tryFinally(tryable, finalizer) { + try { + return tryable(); + } finally { + finalizer(); + } + } + + function unsupportedModule(length) { + throw new Error("an unsupported module was defined, expected `define(name, deps, module)` instead got: `" + length + "` arguments to define`"); + } + + var defaultDeps = ['require', 'exports', 'module']; + + function Module(name, deps, callback, exports) { + this.id = uuid++; + this.name = name; + this.deps = !deps.length && callback.length ? defaultDeps : deps; + this.exports = exports || { }; + this.callback = callback; + this.state = undefined; + this._require = undefined; + } + + + Module.prototype.makeRequire = function() { + var name = this.name; + + return this._require || (this._require = function(dep) { + return require(resolve(dep, name)); + }); + } + + define = function(name, deps, callback) { + if (arguments.length < 2) { + unsupportedModule(arguments.length); + } + + if (!_isArray(deps)) { + callback = deps; + deps = []; + } + + registry[name] = new Module(name, deps, callback); + }; + + // we don't support all of AMD + // define.amd = {}; + // we will support petals... + define.petal = { }; + + function Alias(path) { + this.name = path; + } + + define.alias = function(path) { + return new Alias(path); + }; + + function reify(mod, name, seen) { + var deps = mod.deps; + var length = deps.length; + var reified = new Array(length); + var dep; + // TODO: new Module + // TODO: seen refactor + var module = { }; + + for (var i = 0, l = length; i < l; i++) { + dep = deps[i]; + if (dep === 'exports') { + module.exports = reified[i] = seen; + } else if (dep === 'require') { + reified[i] = mod.makeRequire(); + } else if (dep === 'module') { + mod.exports = seen; + module = reified[i] = mod; + } else { + reified[i] = requireFrom(resolve(dep, name), name); + } + } + + return { + deps: reified, + module: module + }; + } + + function requireFrom(name, origin) { + + if (!registry[name]) { + name = name + '/index'; + } + + var mod = registry[name]; + + if (!mod) { + throw new Error('Could not find module `' + name + '` imported from `' + origin + '`'); + } + return require(name); + } + + function missingModule(name) { + throw new Error('Could not find module ' + name); + } + requirejs = require = requireModule = function(name) { + var mod = registry[name]; + + + if (mod && mod.callback instanceof Alias) { + mod = registry[mod.callback.name]; + } + + if (!mod) { missingModule(name); } + + if (mod.state !== FAILED && + seen.hasOwnProperty(name)) { + return seen[name]; + } + + var reified; + var module; + var loaded = false; + + seen[name] = { }; // placeholder for run-time cycles + + tryFinally(function() { + reified = reify(mod, name, seen[name]); + module = mod.callback.apply(this, reified.deps); + loaded = true; + }, function() { + if (!loaded) { + mod.state = FAILED; + } + }); + + var obj; + if (module === undefined && reified.module.exports) { + obj = reified.module.exports; + } else { + obj = seen[name] = module; + } + + if (obj !== null && + (typeof obj === 'object' || typeof obj === 'function') && + obj['default'] === undefined) { + obj['default'] = obj; + } + + return (seen[name] = obj); + }; + + function resolve(child, name) { + if (child.charAt(0) !== '.') { return child; } + + var parts = child.split('/'); + var nameParts = name.split('/'); + var parentBase = nameParts.slice(0, -1); + + for (var i = 0, l = parts.length; i < l; i++) { + var part = parts[i]; + + if (part === '..') { + if (parentBase.length === 0) { + throw new Error('Cannot access parent module of root'); + } + parentBase.pop(); + } else if (part === '.') { continue; } + else { parentBase.push(part); } + } + + return parentBase.join('/'); + } + + requirejs.entries = requirejs._eak_seen = registry; + requirejs.clear = function(){ + requirejs.entries = requirejs._eak_seen = registry = {}; + seen = state = {}; + }; +})(); diff --git a/awx/ui/client/lib/loader.js/package.json b/awx/ui/client/lib/loader.js/package.json new file mode 100644 index 0000000000..a08bd89973 --- /dev/null +++ b/awx/ui/client/lib/loader.js/package.json @@ -0,0 +1,24 @@ +{ + "name": "loader.js", + "version": "3.2.1", + "description": "loader.js =========", + "main": "loader.js", + "directories": { + "test": "tests" + }, + "dependencies": { + }, + "devDependencies": { + "testem": "^0.6.16", + "bower": "^1.3.5" + }, + "scripts": { + "test": "testem ci" + }, + "author": "", + "license": "MIT", + "bugs": { + "url": "https://github.com/ember-cli/loader.js/issues" + }, + "homepage": "https://github.com/ember-cli/loader.js" +} diff --git a/awx/ui/client/lib/loader.js/testem.json b/awx/ui/client/lib/loader.js/testem.json new file mode 100644 index 0000000000..396e226713 --- /dev/null +++ b/awx/ui/client/lib/loader.js/testem.json @@ -0,0 +1,14 @@ +{ + "framework": "qunit", + "src_files": [ + "loader.js" + ], + "test_page": "tests/index.html", + "launch_in_dev": [ + "PhantomJS", + "Chrome" + ], + "launch_in_ci": [ + "PhantomJS" + ] +} diff --git a/awx/ui/static/lib/lodash/.bower.json b/awx/ui/client/lib/lodash/.bower.json similarity index 100% rename from awx/ui/static/lib/lodash/.bower.json rename to awx/ui/client/lib/lodash/.bower.json diff --git a/awx/ui/static/lib/lodash/LICENSE.txt b/awx/ui/client/lib/lodash/LICENSE.txt similarity index 100% rename from awx/ui/static/lib/lodash/LICENSE.txt rename to awx/ui/client/lib/lodash/LICENSE.txt diff --git a/awx/ui/static/lib/lodash/bower.json b/awx/ui/client/lib/lodash/bower.json similarity index 100% rename from awx/ui/static/lib/lodash/bower.json rename to awx/ui/client/lib/lodash/bower.json diff --git a/awx/ui/static/lib/lodash/lodash.js b/awx/ui/client/lib/lodash/lodash.js similarity index 100% rename from awx/ui/static/lib/lodash/lodash.js rename to awx/ui/client/lib/lodash/lodash.js diff --git a/awx/ui/static/lib/lodash/lodash.min.js b/awx/ui/client/lib/lodash/lodash.min.js similarity index 100% rename from awx/ui/static/lib/lodash/lodash.min.js rename to awx/ui/client/lib/lodash/lodash.min.js diff --git a/awx/ui/static/lib/lrInfiniteScroll/bower.json b/awx/ui/client/lib/lrInfiniteScroll/bower.json similarity index 100% rename from awx/ui/static/lib/lrInfiniteScroll/bower.json rename to awx/ui/client/lib/lrInfiniteScroll/bower.json diff --git a/awx/ui/static/lib/lrInfiniteScroll/lrInfiniteScroll.js b/awx/ui/client/lib/lrInfiniteScroll/lrInfiniteScroll.js similarity index 100% rename from awx/ui/static/lib/lrInfiniteScroll/lrInfiniteScroll.js rename to awx/ui/client/lib/lrInfiniteScroll/lrInfiniteScroll.js diff --git a/awx/ui/static/lib/moment/.bower.json b/awx/ui/client/lib/moment/.bower.json similarity index 100% rename from awx/ui/static/lib/moment/.bower.json rename to awx/ui/client/lib/moment/.bower.json diff --git a/awx/ui/static/lib/moment/CHANGELOG.md b/awx/ui/client/lib/moment/CHANGELOG.md similarity index 100% rename from awx/ui/static/lib/moment/CHANGELOG.md rename to awx/ui/client/lib/moment/CHANGELOG.md diff --git a/awx/ui/static/lib/moment/LICENSE b/awx/ui/client/lib/moment/LICENSE similarity index 100% rename from awx/ui/static/lib/moment/LICENSE rename to awx/ui/client/lib/moment/LICENSE diff --git a/awx/ui/static/lib/moment/Moment.js.nuspec b/awx/ui/client/lib/moment/Moment.js.nuspec similarity index 100% rename from awx/ui/static/lib/moment/Moment.js.nuspec rename to awx/ui/client/lib/moment/Moment.js.nuspec diff --git a/awx/ui/static/lib/moment/README.md b/awx/ui/client/lib/moment/README.md similarity index 100% rename from awx/ui/static/lib/moment/README.md rename to awx/ui/client/lib/moment/README.md diff --git a/awx/ui/static/lib/moment/benchmarks/clone.js b/awx/ui/client/lib/moment/benchmarks/clone.js similarity index 100% rename from awx/ui/static/lib/moment/benchmarks/clone.js rename to awx/ui/client/lib/moment/benchmarks/clone.js diff --git a/awx/ui/static/lib/moment/bower.json b/awx/ui/client/lib/moment/bower.json similarity index 100% rename from awx/ui/static/lib/moment/bower.json rename to awx/ui/client/lib/moment/bower.json diff --git a/awx/ui/static/lib/moment/locale/af.js b/awx/ui/client/lib/moment/locale/af.js similarity index 100% rename from awx/ui/static/lib/moment/locale/af.js rename to awx/ui/client/lib/moment/locale/af.js diff --git a/awx/ui/static/lib/moment/locale/ar-ma.js b/awx/ui/client/lib/moment/locale/ar-ma.js similarity index 100% rename from awx/ui/static/lib/moment/locale/ar-ma.js rename to awx/ui/client/lib/moment/locale/ar-ma.js diff --git a/awx/ui/static/lib/moment/locale/ar-sa.js b/awx/ui/client/lib/moment/locale/ar-sa.js similarity index 100% rename from awx/ui/static/lib/moment/locale/ar-sa.js rename to awx/ui/client/lib/moment/locale/ar-sa.js diff --git a/awx/ui/static/lib/moment/locale/ar-tn.js b/awx/ui/client/lib/moment/locale/ar-tn.js similarity index 100% rename from awx/ui/static/lib/moment/locale/ar-tn.js rename to awx/ui/client/lib/moment/locale/ar-tn.js diff --git a/awx/ui/static/lib/moment/locale/ar.js b/awx/ui/client/lib/moment/locale/ar.js similarity index 100% rename from awx/ui/static/lib/moment/locale/ar.js rename to awx/ui/client/lib/moment/locale/ar.js diff --git a/awx/ui/static/lib/moment/locale/az.js b/awx/ui/client/lib/moment/locale/az.js similarity index 100% rename from awx/ui/static/lib/moment/locale/az.js rename to awx/ui/client/lib/moment/locale/az.js diff --git a/awx/ui/static/lib/moment/locale/be.js b/awx/ui/client/lib/moment/locale/be.js similarity index 100% rename from awx/ui/static/lib/moment/locale/be.js rename to awx/ui/client/lib/moment/locale/be.js diff --git a/awx/ui/static/lib/moment/locale/bg.js b/awx/ui/client/lib/moment/locale/bg.js similarity index 100% rename from awx/ui/static/lib/moment/locale/bg.js rename to awx/ui/client/lib/moment/locale/bg.js diff --git a/awx/ui/static/lib/moment/locale/bn.js b/awx/ui/client/lib/moment/locale/bn.js similarity index 100% rename from awx/ui/static/lib/moment/locale/bn.js rename to awx/ui/client/lib/moment/locale/bn.js diff --git a/awx/ui/static/lib/moment/locale/bo.js b/awx/ui/client/lib/moment/locale/bo.js similarity index 100% rename from awx/ui/static/lib/moment/locale/bo.js rename to awx/ui/client/lib/moment/locale/bo.js diff --git a/awx/ui/static/lib/moment/locale/br.js b/awx/ui/client/lib/moment/locale/br.js similarity index 100% rename from awx/ui/static/lib/moment/locale/br.js rename to awx/ui/client/lib/moment/locale/br.js diff --git a/awx/ui/static/lib/moment/locale/bs.js b/awx/ui/client/lib/moment/locale/bs.js similarity index 100% rename from awx/ui/static/lib/moment/locale/bs.js rename to awx/ui/client/lib/moment/locale/bs.js diff --git a/awx/ui/static/lib/moment/locale/ca.js b/awx/ui/client/lib/moment/locale/ca.js similarity index 100% rename from awx/ui/static/lib/moment/locale/ca.js rename to awx/ui/client/lib/moment/locale/ca.js diff --git a/awx/ui/static/lib/moment/locale/cs.js b/awx/ui/client/lib/moment/locale/cs.js similarity index 100% rename from awx/ui/static/lib/moment/locale/cs.js rename to awx/ui/client/lib/moment/locale/cs.js diff --git a/awx/ui/static/lib/moment/locale/cv.js b/awx/ui/client/lib/moment/locale/cv.js similarity index 100% rename from awx/ui/static/lib/moment/locale/cv.js rename to awx/ui/client/lib/moment/locale/cv.js diff --git a/awx/ui/static/lib/moment/locale/cy.js b/awx/ui/client/lib/moment/locale/cy.js similarity index 100% rename from awx/ui/static/lib/moment/locale/cy.js rename to awx/ui/client/lib/moment/locale/cy.js diff --git a/awx/ui/static/lib/moment/locale/da.js b/awx/ui/client/lib/moment/locale/da.js similarity index 100% rename from awx/ui/static/lib/moment/locale/da.js rename to awx/ui/client/lib/moment/locale/da.js diff --git a/awx/ui/static/lib/moment/locale/de-at.js b/awx/ui/client/lib/moment/locale/de-at.js similarity index 100% rename from awx/ui/static/lib/moment/locale/de-at.js rename to awx/ui/client/lib/moment/locale/de-at.js diff --git a/awx/ui/static/lib/moment/locale/de.js b/awx/ui/client/lib/moment/locale/de.js similarity index 100% rename from awx/ui/static/lib/moment/locale/de.js rename to awx/ui/client/lib/moment/locale/de.js diff --git a/awx/ui/static/lib/moment/locale/el.js b/awx/ui/client/lib/moment/locale/el.js similarity index 100% rename from awx/ui/static/lib/moment/locale/el.js rename to awx/ui/client/lib/moment/locale/el.js diff --git a/awx/ui/static/lib/moment/locale/en-au.js b/awx/ui/client/lib/moment/locale/en-au.js similarity index 100% rename from awx/ui/static/lib/moment/locale/en-au.js rename to awx/ui/client/lib/moment/locale/en-au.js diff --git a/awx/ui/static/lib/moment/locale/en-ca.js b/awx/ui/client/lib/moment/locale/en-ca.js similarity index 100% rename from awx/ui/static/lib/moment/locale/en-ca.js rename to awx/ui/client/lib/moment/locale/en-ca.js diff --git a/awx/ui/static/lib/moment/locale/en-gb.js b/awx/ui/client/lib/moment/locale/en-gb.js similarity index 100% rename from awx/ui/static/lib/moment/locale/en-gb.js rename to awx/ui/client/lib/moment/locale/en-gb.js diff --git a/awx/ui/static/lib/moment/locale/eo.js b/awx/ui/client/lib/moment/locale/eo.js similarity index 100% rename from awx/ui/static/lib/moment/locale/eo.js rename to awx/ui/client/lib/moment/locale/eo.js diff --git a/awx/ui/static/lib/moment/locale/es.js b/awx/ui/client/lib/moment/locale/es.js similarity index 100% rename from awx/ui/static/lib/moment/locale/es.js rename to awx/ui/client/lib/moment/locale/es.js diff --git a/awx/ui/static/lib/moment/locale/et.js b/awx/ui/client/lib/moment/locale/et.js similarity index 100% rename from awx/ui/static/lib/moment/locale/et.js rename to awx/ui/client/lib/moment/locale/et.js diff --git a/awx/ui/static/lib/moment/locale/eu.js b/awx/ui/client/lib/moment/locale/eu.js similarity index 100% rename from awx/ui/static/lib/moment/locale/eu.js rename to awx/ui/client/lib/moment/locale/eu.js diff --git a/awx/ui/static/lib/moment/locale/fa.js b/awx/ui/client/lib/moment/locale/fa.js similarity index 100% rename from awx/ui/static/lib/moment/locale/fa.js rename to awx/ui/client/lib/moment/locale/fa.js diff --git a/awx/ui/static/lib/moment/locale/fi.js b/awx/ui/client/lib/moment/locale/fi.js similarity index 100% rename from awx/ui/static/lib/moment/locale/fi.js rename to awx/ui/client/lib/moment/locale/fi.js diff --git a/awx/ui/static/lib/moment/locale/fo.js b/awx/ui/client/lib/moment/locale/fo.js similarity index 100% rename from awx/ui/static/lib/moment/locale/fo.js rename to awx/ui/client/lib/moment/locale/fo.js diff --git a/awx/ui/static/lib/moment/locale/fr-ca.js b/awx/ui/client/lib/moment/locale/fr-ca.js similarity index 100% rename from awx/ui/static/lib/moment/locale/fr-ca.js rename to awx/ui/client/lib/moment/locale/fr-ca.js diff --git a/awx/ui/static/lib/moment/locale/fr.js b/awx/ui/client/lib/moment/locale/fr.js similarity index 100% rename from awx/ui/static/lib/moment/locale/fr.js rename to awx/ui/client/lib/moment/locale/fr.js diff --git a/awx/ui/static/lib/moment/locale/fy.js b/awx/ui/client/lib/moment/locale/fy.js similarity index 100% rename from awx/ui/static/lib/moment/locale/fy.js rename to awx/ui/client/lib/moment/locale/fy.js diff --git a/awx/ui/static/lib/moment/locale/gl.js b/awx/ui/client/lib/moment/locale/gl.js similarity index 100% rename from awx/ui/static/lib/moment/locale/gl.js rename to awx/ui/client/lib/moment/locale/gl.js diff --git a/awx/ui/static/lib/moment/locale/he.js b/awx/ui/client/lib/moment/locale/he.js similarity index 100% rename from awx/ui/static/lib/moment/locale/he.js rename to awx/ui/client/lib/moment/locale/he.js diff --git a/awx/ui/static/lib/moment/locale/hi.js b/awx/ui/client/lib/moment/locale/hi.js similarity index 100% rename from awx/ui/static/lib/moment/locale/hi.js rename to awx/ui/client/lib/moment/locale/hi.js diff --git a/awx/ui/static/lib/moment/locale/hr.js b/awx/ui/client/lib/moment/locale/hr.js similarity index 100% rename from awx/ui/static/lib/moment/locale/hr.js rename to awx/ui/client/lib/moment/locale/hr.js diff --git a/awx/ui/static/lib/moment/locale/hu.js b/awx/ui/client/lib/moment/locale/hu.js similarity index 100% rename from awx/ui/static/lib/moment/locale/hu.js rename to awx/ui/client/lib/moment/locale/hu.js diff --git a/awx/ui/static/lib/moment/locale/hy-am.js b/awx/ui/client/lib/moment/locale/hy-am.js similarity index 100% rename from awx/ui/static/lib/moment/locale/hy-am.js rename to awx/ui/client/lib/moment/locale/hy-am.js diff --git a/awx/ui/static/lib/moment/locale/id.js b/awx/ui/client/lib/moment/locale/id.js similarity index 100% rename from awx/ui/static/lib/moment/locale/id.js rename to awx/ui/client/lib/moment/locale/id.js diff --git a/awx/ui/static/lib/moment/locale/is.js b/awx/ui/client/lib/moment/locale/is.js similarity index 100% rename from awx/ui/static/lib/moment/locale/is.js rename to awx/ui/client/lib/moment/locale/is.js diff --git a/awx/ui/static/lib/moment/locale/it.js b/awx/ui/client/lib/moment/locale/it.js similarity index 100% rename from awx/ui/static/lib/moment/locale/it.js rename to awx/ui/client/lib/moment/locale/it.js diff --git a/awx/ui/static/lib/moment/locale/ja.js b/awx/ui/client/lib/moment/locale/ja.js similarity index 100% rename from awx/ui/static/lib/moment/locale/ja.js rename to awx/ui/client/lib/moment/locale/ja.js diff --git a/awx/ui/static/lib/moment/locale/ka.js b/awx/ui/client/lib/moment/locale/ka.js similarity index 100% rename from awx/ui/static/lib/moment/locale/ka.js rename to awx/ui/client/lib/moment/locale/ka.js diff --git a/awx/ui/static/lib/moment/locale/km.js b/awx/ui/client/lib/moment/locale/km.js similarity index 100% rename from awx/ui/static/lib/moment/locale/km.js rename to awx/ui/client/lib/moment/locale/km.js diff --git a/awx/ui/static/lib/moment/locale/ko.js b/awx/ui/client/lib/moment/locale/ko.js similarity index 100% rename from awx/ui/static/lib/moment/locale/ko.js rename to awx/ui/client/lib/moment/locale/ko.js diff --git a/awx/ui/static/lib/moment/locale/lb.js b/awx/ui/client/lib/moment/locale/lb.js similarity index 100% rename from awx/ui/static/lib/moment/locale/lb.js rename to awx/ui/client/lib/moment/locale/lb.js diff --git a/awx/ui/static/lib/moment/locale/lt.js b/awx/ui/client/lib/moment/locale/lt.js similarity index 100% rename from awx/ui/static/lib/moment/locale/lt.js rename to awx/ui/client/lib/moment/locale/lt.js diff --git a/awx/ui/static/lib/moment/locale/lv.js b/awx/ui/client/lib/moment/locale/lv.js similarity index 100% rename from awx/ui/static/lib/moment/locale/lv.js rename to awx/ui/client/lib/moment/locale/lv.js diff --git a/awx/ui/static/lib/moment/locale/mk.js b/awx/ui/client/lib/moment/locale/mk.js similarity index 100% rename from awx/ui/static/lib/moment/locale/mk.js rename to awx/ui/client/lib/moment/locale/mk.js diff --git a/awx/ui/static/lib/moment/locale/ml.js b/awx/ui/client/lib/moment/locale/ml.js similarity index 100% rename from awx/ui/static/lib/moment/locale/ml.js rename to awx/ui/client/lib/moment/locale/ml.js diff --git a/awx/ui/static/lib/moment/locale/mr.js b/awx/ui/client/lib/moment/locale/mr.js similarity index 100% rename from awx/ui/static/lib/moment/locale/mr.js rename to awx/ui/client/lib/moment/locale/mr.js diff --git a/awx/ui/static/lib/moment/locale/ms-my.js b/awx/ui/client/lib/moment/locale/ms-my.js similarity index 100% rename from awx/ui/static/lib/moment/locale/ms-my.js rename to awx/ui/client/lib/moment/locale/ms-my.js diff --git a/awx/ui/static/lib/moment/locale/my.js b/awx/ui/client/lib/moment/locale/my.js similarity index 100% rename from awx/ui/static/lib/moment/locale/my.js rename to awx/ui/client/lib/moment/locale/my.js diff --git a/awx/ui/static/lib/moment/locale/nb.js b/awx/ui/client/lib/moment/locale/nb.js similarity index 100% rename from awx/ui/static/lib/moment/locale/nb.js rename to awx/ui/client/lib/moment/locale/nb.js diff --git a/awx/ui/static/lib/moment/locale/ne.js b/awx/ui/client/lib/moment/locale/ne.js similarity index 100% rename from awx/ui/static/lib/moment/locale/ne.js rename to awx/ui/client/lib/moment/locale/ne.js diff --git a/awx/ui/static/lib/moment/locale/nl.js b/awx/ui/client/lib/moment/locale/nl.js similarity index 100% rename from awx/ui/static/lib/moment/locale/nl.js rename to awx/ui/client/lib/moment/locale/nl.js diff --git a/awx/ui/static/lib/moment/locale/nn.js b/awx/ui/client/lib/moment/locale/nn.js similarity index 100% rename from awx/ui/static/lib/moment/locale/nn.js rename to awx/ui/client/lib/moment/locale/nn.js diff --git a/awx/ui/static/lib/moment/locale/pl.js b/awx/ui/client/lib/moment/locale/pl.js similarity index 100% rename from awx/ui/static/lib/moment/locale/pl.js rename to awx/ui/client/lib/moment/locale/pl.js diff --git a/awx/ui/static/lib/moment/locale/pt-br.js b/awx/ui/client/lib/moment/locale/pt-br.js similarity index 100% rename from awx/ui/static/lib/moment/locale/pt-br.js rename to awx/ui/client/lib/moment/locale/pt-br.js diff --git a/awx/ui/static/lib/moment/locale/pt.js b/awx/ui/client/lib/moment/locale/pt.js similarity index 100% rename from awx/ui/static/lib/moment/locale/pt.js rename to awx/ui/client/lib/moment/locale/pt.js diff --git a/awx/ui/static/lib/moment/locale/ro.js b/awx/ui/client/lib/moment/locale/ro.js similarity index 100% rename from awx/ui/static/lib/moment/locale/ro.js rename to awx/ui/client/lib/moment/locale/ro.js diff --git a/awx/ui/static/lib/moment/locale/ru.js b/awx/ui/client/lib/moment/locale/ru.js similarity index 100% rename from awx/ui/static/lib/moment/locale/ru.js rename to awx/ui/client/lib/moment/locale/ru.js diff --git a/awx/ui/static/lib/moment/locale/sk.js b/awx/ui/client/lib/moment/locale/sk.js similarity index 100% rename from awx/ui/static/lib/moment/locale/sk.js rename to awx/ui/client/lib/moment/locale/sk.js diff --git a/awx/ui/static/lib/moment/locale/sl.js b/awx/ui/client/lib/moment/locale/sl.js similarity index 100% rename from awx/ui/static/lib/moment/locale/sl.js rename to awx/ui/client/lib/moment/locale/sl.js diff --git a/awx/ui/static/lib/moment/locale/sq.js b/awx/ui/client/lib/moment/locale/sq.js similarity index 100% rename from awx/ui/static/lib/moment/locale/sq.js rename to awx/ui/client/lib/moment/locale/sq.js diff --git a/awx/ui/static/lib/moment/locale/sr-cyrl.js b/awx/ui/client/lib/moment/locale/sr-cyrl.js similarity index 100% rename from awx/ui/static/lib/moment/locale/sr-cyrl.js rename to awx/ui/client/lib/moment/locale/sr-cyrl.js diff --git a/awx/ui/static/lib/moment/locale/sr.js b/awx/ui/client/lib/moment/locale/sr.js similarity index 100% rename from awx/ui/static/lib/moment/locale/sr.js rename to awx/ui/client/lib/moment/locale/sr.js diff --git a/awx/ui/static/lib/moment/locale/sv.js b/awx/ui/client/lib/moment/locale/sv.js similarity index 100% rename from awx/ui/static/lib/moment/locale/sv.js rename to awx/ui/client/lib/moment/locale/sv.js diff --git a/awx/ui/static/lib/moment/locale/ta.js b/awx/ui/client/lib/moment/locale/ta.js similarity index 100% rename from awx/ui/static/lib/moment/locale/ta.js rename to awx/ui/client/lib/moment/locale/ta.js diff --git a/awx/ui/static/lib/moment/locale/th.js b/awx/ui/client/lib/moment/locale/th.js similarity index 100% rename from awx/ui/static/lib/moment/locale/th.js rename to awx/ui/client/lib/moment/locale/th.js diff --git a/awx/ui/static/lib/moment/locale/tl-ph.js b/awx/ui/client/lib/moment/locale/tl-ph.js similarity index 100% rename from awx/ui/static/lib/moment/locale/tl-ph.js rename to awx/ui/client/lib/moment/locale/tl-ph.js diff --git a/awx/ui/static/lib/moment/locale/tr.js b/awx/ui/client/lib/moment/locale/tr.js similarity index 100% rename from awx/ui/static/lib/moment/locale/tr.js rename to awx/ui/client/lib/moment/locale/tr.js diff --git a/awx/ui/static/lib/moment/locale/tzm-latn.js b/awx/ui/client/lib/moment/locale/tzm-latn.js similarity index 100% rename from awx/ui/static/lib/moment/locale/tzm-latn.js rename to awx/ui/client/lib/moment/locale/tzm-latn.js diff --git a/awx/ui/static/lib/moment/locale/tzm.js b/awx/ui/client/lib/moment/locale/tzm.js similarity index 100% rename from awx/ui/static/lib/moment/locale/tzm.js rename to awx/ui/client/lib/moment/locale/tzm.js diff --git a/awx/ui/static/lib/moment/locale/uk.js b/awx/ui/client/lib/moment/locale/uk.js similarity index 100% rename from awx/ui/static/lib/moment/locale/uk.js rename to awx/ui/client/lib/moment/locale/uk.js diff --git a/awx/ui/static/lib/moment/locale/uz.js b/awx/ui/client/lib/moment/locale/uz.js similarity index 100% rename from awx/ui/static/lib/moment/locale/uz.js rename to awx/ui/client/lib/moment/locale/uz.js diff --git a/awx/ui/static/lib/moment/locale/vi.js b/awx/ui/client/lib/moment/locale/vi.js similarity index 100% rename from awx/ui/static/lib/moment/locale/vi.js rename to awx/ui/client/lib/moment/locale/vi.js diff --git a/awx/ui/static/lib/moment/locale/zh-cn.js b/awx/ui/client/lib/moment/locale/zh-cn.js similarity index 100% rename from awx/ui/static/lib/moment/locale/zh-cn.js rename to awx/ui/client/lib/moment/locale/zh-cn.js diff --git a/awx/ui/static/lib/moment/locale/zh-tw.js b/awx/ui/client/lib/moment/locale/zh-tw.js similarity index 100% rename from awx/ui/static/lib/moment/locale/zh-tw.js rename to awx/ui/client/lib/moment/locale/zh-tw.js diff --git a/awx/ui/static/lib/moment/meteor/README.md b/awx/ui/client/lib/moment/meteor/README.md similarity index 100% rename from awx/ui/static/lib/moment/meteor/README.md rename to awx/ui/client/lib/moment/meteor/README.md diff --git a/awx/ui/static/lib/moment/meteor/export.js b/awx/ui/client/lib/moment/meteor/export.js similarity index 100% rename from awx/ui/static/lib/moment/meteor/export.js rename to awx/ui/client/lib/moment/meteor/export.js diff --git a/awx/ui/static/lib/moment/meteor/test.js b/awx/ui/client/lib/moment/meteor/test.js similarity index 100% rename from awx/ui/static/lib/moment/meteor/test.js rename to awx/ui/client/lib/moment/meteor/test.js diff --git a/awx/ui/static/lib/moment/min/locales.js b/awx/ui/client/lib/moment/min/locales.js similarity index 100% rename from awx/ui/static/lib/moment/min/locales.js rename to awx/ui/client/lib/moment/min/locales.js diff --git a/awx/ui/static/lib/moment/min/locales.min.js b/awx/ui/client/lib/moment/min/locales.min.js similarity index 100% rename from awx/ui/static/lib/moment/min/locales.min.js rename to awx/ui/client/lib/moment/min/locales.min.js diff --git a/awx/ui/static/lib/moment/min/moment-with-locales.js b/awx/ui/client/lib/moment/min/moment-with-locales.js similarity index 100% rename from awx/ui/static/lib/moment/min/moment-with-locales.js rename to awx/ui/client/lib/moment/min/moment-with-locales.js diff --git a/awx/ui/static/lib/moment/min/moment-with-locales.min.js b/awx/ui/client/lib/moment/min/moment-with-locales.min.js similarity index 100% rename from awx/ui/static/lib/moment/min/moment-with-locales.min.js rename to awx/ui/client/lib/moment/min/moment-with-locales.min.js diff --git a/awx/ui/static/lib/moment/min/moment.min.js b/awx/ui/client/lib/moment/min/moment.min.js similarity index 100% rename from awx/ui/static/lib/moment/min/moment.min.js rename to awx/ui/client/lib/moment/min/moment.min.js diff --git a/awx/ui/static/lib/moment/min/tests.js b/awx/ui/client/lib/moment/min/tests.js similarity index 100% rename from awx/ui/static/lib/moment/min/tests.js rename to awx/ui/client/lib/moment/min/tests.js diff --git a/awx/ui/static/lib/moment/moment.js b/awx/ui/client/lib/moment/moment.js similarity index 100% rename from awx/ui/static/lib/moment/moment.js rename to awx/ui/client/lib/moment/moment.js diff --git a/awx/ui/static/lib/moment/scripts/npm_prepublish.sh b/awx/ui/client/lib/moment/scripts/npm_prepublish.sh similarity index 100% rename from awx/ui/static/lib/moment/scripts/npm_prepublish.sh rename to awx/ui/client/lib/moment/scripts/npm_prepublish.sh diff --git a/awx/ui/static/lib/moment/src/lib/create/check-overflow.js b/awx/ui/client/lib/moment/src/lib/create/check-overflow.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/create/check-overflow.js rename to awx/ui/client/lib/moment/src/lib/create/check-overflow.js diff --git a/awx/ui/static/lib/moment/src/lib/create/date-from-array.js b/awx/ui/client/lib/moment/src/lib/create/date-from-array.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/create/date-from-array.js rename to awx/ui/client/lib/moment/src/lib/create/date-from-array.js diff --git a/awx/ui/static/lib/moment/src/lib/create/default-parsing-flags.js b/awx/ui/client/lib/moment/src/lib/create/default-parsing-flags.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/create/default-parsing-flags.js rename to awx/ui/client/lib/moment/src/lib/create/default-parsing-flags.js diff --git a/awx/ui/static/lib/moment/src/lib/create/from-anything.js b/awx/ui/client/lib/moment/src/lib/create/from-anything.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/create/from-anything.js rename to awx/ui/client/lib/moment/src/lib/create/from-anything.js diff --git a/awx/ui/static/lib/moment/src/lib/create/from-array.js b/awx/ui/client/lib/moment/src/lib/create/from-array.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/create/from-array.js rename to awx/ui/client/lib/moment/src/lib/create/from-array.js diff --git a/awx/ui/static/lib/moment/src/lib/create/from-object.js b/awx/ui/client/lib/moment/src/lib/create/from-object.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/create/from-object.js rename to awx/ui/client/lib/moment/src/lib/create/from-object.js diff --git a/awx/ui/static/lib/moment/src/lib/create/from-string-and-array.js b/awx/ui/client/lib/moment/src/lib/create/from-string-and-array.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/create/from-string-and-array.js rename to awx/ui/client/lib/moment/src/lib/create/from-string-and-array.js diff --git a/awx/ui/static/lib/moment/src/lib/create/from-string-and-format.js b/awx/ui/client/lib/moment/src/lib/create/from-string-and-format.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/create/from-string-and-format.js rename to awx/ui/client/lib/moment/src/lib/create/from-string-and-format.js diff --git a/awx/ui/static/lib/moment/src/lib/create/from-string.js b/awx/ui/client/lib/moment/src/lib/create/from-string.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/create/from-string.js rename to awx/ui/client/lib/moment/src/lib/create/from-string.js diff --git a/awx/ui/static/lib/moment/src/lib/create/local.js b/awx/ui/client/lib/moment/src/lib/create/local.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/create/local.js rename to awx/ui/client/lib/moment/src/lib/create/local.js diff --git a/awx/ui/static/lib/moment/src/lib/create/utc.js b/awx/ui/client/lib/moment/src/lib/create/utc.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/create/utc.js rename to awx/ui/client/lib/moment/src/lib/create/utc.js diff --git a/awx/ui/static/lib/moment/src/lib/create/valid.js b/awx/ui/client/lib/moment/src/lib/create/valid.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/create/valid.js rename to awx/ui/client/lib/moment/src/lib/create/valid.js diff --git a/awx/ui/static/lib/moment/src/lib/duration/abs.js b/awx/ui/client/lib/moment/src/lib/duration/abs.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/duration/abs.js rename to awx/ui/client/lib/moment/src/lib/duration/abs.js diff --git a/awx/ui/static/lib/moment/src/lib/duration/add-subtract.js b/awx/ui/client/lib/moment/src/lib/duration/add-subtract.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/duration/add-subtract.js rename to awx/ui/client/lib/moment/src/lib/duration/add-subtract.js diff --git a/awx/ui/static/lib/moment/src/lib/duration/as.js b/awx/ui/client/lib/moment/src/lib/duration/as.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/duration/as.js rename to awx/ui/client/lib/moment/src/lib/duration/as.js diff --git a/awx/ui/static/lib/moment/src/lib/duration/bubble.js b/awx/ui/client/lib/moment/src/lib/duration/bubble.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/duration/bubble.js rename to awx/ui/client/lib/moment/src/lib/duration/bubble.js diff --git a/awx/ui/static/lib/moment/src/lib/duration/constructor.js b/awx/ui/client/lib/moment/src/lib/duration/constructor.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/duration/constructor.js rename to awx/ui/client/lib/moment/src/lib/duration/constructor.js diff --git a/awx/ui/static/lib/moment/src/lib/duration/create.js b/awx/ui/client/lib/moment/src/lib/duration/create.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/duration/create.js rename to awx/ui/client/lib/moment/src/lib/duration/create.js diff --git a/awx/ui/static/lib/moment/src/lib/duration/duration.js b/awx/ui/client/lib/moment/src/lib/duration/duration.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/duration/duration.js rename to awx/ui/client/lib/moment/src/lib/duration/duration.js diff --git a/awx/ui/static/lib/moment/src/lib/duration/get.js b/awx/ui/client/lib/moment/src/lib/duration/get.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/duration/get.js rename to awx/ui/client/lib/moment/src/lib/duration/get.js diff --git a/awx/ui/static/lib/moment/src/lib/duration/humanize.js b/awx/ui/client/lib/moment/src/lib/duration/humanize.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/duration/humanize.js rename to awx/ui/client/lib/moment/src/lib/duration/humanize.js diff --git a/awx/ui/static/lib/moment/src/lib/duration/iso-string.js b/awx/ui/client/lib/moment/src/lib/duration/iso-string.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/duration/iso-string.js rename to awx/ui/client/lib/moment/src/lib/duration/iso-string.js diff --git a/awx/ui/static/lib/moment/src/lib/duration/prototype.js b/awx/ui/client/lib/moment/src/lib/duration/prototype.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/duration/prototype.js rename to awx/ui/client/lib/moment/src/lib/duration/prototype.js diff --git a/awx/ui/static/lib/moment/src/lib/format/format.js b/awx/ui/client/lib/moment/src/lib/format/format.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/format/format.js rename to awx/ui/client/lib/moment/src/lib/format/format.js diff --git a/awx/ui/static/lib/moment/src/lib/locale/calendar.js b/awx/ui/client/lib/moment/src/lib/locale/calendar.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/locale/calendar.js rename to awx/ui/client/lib/moment/src/lib/locale/calendar.js diff --git a/awx/ui/static/lib/moment/src/lib/locale/constructor.js b/awx/ui/client/lib/moment/src/lib/locale/constructor.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/locale/constructor.js rename to awx/ui/client/lib/moment/src/lib/locale/constructor.js diff --git a/awx/ui/static/lib/moment/src/lib/locale/en.js b/awx/ui/client/lib/moment/src/lib/locale/en.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/locale/en.js rename to awx/ui/client/lib/moment/src/lib/locale/en.js diff --git a/awx/ui/static/lib/moment/src/lib/locale/formats.js b/awx/ui/client/lib/moment/src/lib/locale/formats.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/locale/formats.js rename to awx/ui/client/lib/moment/src/lib/locale/formats.js diff --git a/awx/ui/static/lib/moment/src/lib/locale/invalid.js b/awx/ui/client/lib/moment/src/lib/locale/invalid.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/locale/invalid.js rename to awx/ui/client/lib/moment/src/lib/locale/invalid.js diff --git a/awx/ui/static/lib/moment/src/lib/locale/lists.js b/awx/ui/client/lib/moment/src/lib/locale/lists.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/locale/lists.js rename to awx/ui/client/lib/moment/src/lib/locale/lists.js diff --git a/awx/ui/static/lib/moment/src/lib/locale/locale.js b/awx/ui/client/lib/moment/src/lib/locale/locale.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/locale/locale.js rename to awx/ui/client/lib/moment/src/lib/locale/locale.js diff --git a/awx/ui/static/lib/moment/src/lib/locale/locales.js b/awx/ui/client/lib/moment/src/lib/locale/locales.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/locale/locales.js rename to awx/ui/client/lib/moment/src/lib/locale/locales.js diff --git a/awx/ui/static/lib/moment/src/lib/locale/ordinal.js b/awx/ui/client/lib/moment/src/lib/locale/ordinal.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/locale/ordinal.js rename to awx/ui/client/lib/moment/src/lib/locale/ordinal.js diff --git a/awx/ui/static/lib/moment/src/lib/locale/pre-post-format.js b/awx/ui/client/lib/moment/src/lib/locale/pre-post-format.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/locale/pre-post-format.js rename to awx/ui/client/lib/moment/src/lib/locale/pre-post-format.js diff --git a/awx/ui/static/lib/moment/src/lib/locale/prototype.js b/awx/ui/client/lib/moment/src/lib/locale/prototype.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/locale/prototype.js rename to awx/ui/client/lib/moment/src/lib/locale/prototype.js diff --git a/awx/ui/static/lib/moment/src/lib/locale/relative.js b/awx/ui/client/lib/moment/src/lib/locale/relative.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/locale/relative.js rename to awx/ui/client/lib/moment/src/lib/locale/relative.js diff --git a/awx/ui/static/lib/moment/src/lib/locale/set.js b/awx/ui/client/lib/moment/src/lib/locale/set.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/locale/set.js rename to awx/ui/client/lib/moment/src/lib/locale/set.js diff --git a/awx/ui/static/lib/moment/src/lib/moment/add-subtract.js b/awx/ui/client/lib/moment/src/lib/moment/add-subtract.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/moment/add-subtract.js rename to awx/ui/client/lib/moment/src/lib/moment/add-subtract.js diff --git a/awx/ui/static/lib/moment/src/lib/moment/calendar.js b/awx/ui/client/lib/moment/src/lib/moment/calendar.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/moment/calendar.js rename to awx/ui/client/lib/moment/src/lib/moment/calendar.js diff --git a/awx/ui/static/lib/moment/src/lib/moment/clone.js b/awx/ui/client/lib/moment/src/lib/moment/clone.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/moment/clone.js rename to awx/ui/client/lib/moment/src/lib/moment/clone.js diff --git a/awx/ui/static/lib/moment/src/lib/moment/compare.js b/awx/ui/client/lib/moment/src/lib/moment/compare.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/moment/compare.js rename to awx/ui/client/lib/moment/src/lib/moment/compare.js diff --git a/awx/ui/static/lib/moment/src/lib/moment/constructor.js b/awx/ui/client/lib/moment/src/lib/moment/constructor.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/moment/constructor.js rename to awx/ui/client/lib/moment/src/lib/moment/constructor.js diff --git a/awx/ui/static/lib/moment/src/lib/moment/diff.js b/awx/ui/client/lib/moment/src/lib/moment/diff.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/moment/diff.js rename to awx/ui/client/lib/moment/src/lib/moment/diff.js diff --git a/awx/ui/static/lib/moment/src/lib/moment/format.js b/awx/ui/client/lib/moment/src/lib/moment/format.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/moment/format.js rename to awx/ui/client/lib/moment/src/lib/moment/format.js diff --git a/awx/ui/static/lib/moment/src/lib/moment/from.js b/awx/ui/client/lib/moment/src/lib/moment/from.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/moment/from.js rename to awx/ui/client/lib/moment/src/lib/moment/from.js diff --git a/awx/ui/static/lib/moment/src/lib/moment/get-set.js b/awx/ui/client/lib/moment/src/lib/moment/get-set.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/moment/get-set.js rename to awx/ui/client/lib/moment/src/lib/moment/get-set.js diff --git a/awx/ui/static/lib/moment/src/lib/moment/locale.js b/awx/ui/client/lib/moment/src/lib/moment/locale.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/moment/locale.js rename to awx/ui/client/lib/moment/src/lib/moment/locale.js diff --git a/awx/ui/static/lib/moment/src/lib/moment/min-max.js b/awx/ui/client/lib/moment/src/lib/moment/min-max.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/moment/min-max.js rename to awx/ui/client/lib/moment/src/lib/moment/min-max.js diff --git a/awx/ui/static/lib/moment/src/lib/moment/moment.js b/awx/ui/client/lib/moment/src/lib/moment/moment.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/moment/moment.js rename to awx/ui/client/lib/moment/src/lib/moment/moment.js diff --git a/awx/ui/static/lib/moment/src/lib/moment/prototype.js b/awx/ui/client/lib/moment/src/lib/moment/prototype.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/moment/prototype.js rename to awx/ui/client/lib/moment/src/lib/moment/prototype.js diff --git a/awx/ui/static/lib/moment/src/lib/moment/start-end-of.js b/awx/ui/client/lib/moment/src/lib/moment/start-end-of.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/moment/start-end-of.js rename to awx/ui/client/lib/moment/src/lib/moment/start-end-of.js diff --git a/awx/ui/static/lib/moment/src/lib/moment/to-type.js b/awx/ui/client/lib/moment/src/lib/moment/to-type.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/moment/to-type.js rename to awx/ui/client/lib/moment/src/lib/moment/to-type.js diff --git a/awx/ui/static/lib/moment/src/lib/moment/valid.js b/awx/ui/client/lib/moment/src/lib/moment/valid.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/moment/valid.js rename to awx/ui/client/lib/moment/src/lib/moment/valid.js diff --git a/awx/ui/static/lib/moment/src/lib/parse/regex.js b/awx/ui/client/lib/moment/src/lib/parse/regex.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/parse/regex.js rename to awx/ui/client/lib/moment/src/lib/parse/regex.js diff --git a/awx/ui/static/lib/moment/src/lib/parse/token.js b/awx/ui/client/lib/moment/src/lib/parse/token.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/parse/token.js rename to awx/ui/client/lib/moment/src/lib/parse/token.js diff --git a/awx/ui/static/lib/moment/src/lib/units/aliases.js b/awx/ui/client/lib/moment/src/lib/units/aliases.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/units/aliases.js rename to awx/ui/client/lib/moment/src/lib/units/aliases.js diff --git a/awx/ui/static/lib/moment/src/lib/units/constants.js b/awx/ui/client/lib/moment/src/lib/units/constants.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/units/constants.js rename to awx/ui/client/lib/moment/src/lib/units/constants.js diff --git a/awx/ui/static/lib/moment/src/lib/units/day-of-month.js b/awx/ui/client/lib/moment/src/lib/units/day-of-month.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/units/day-of-month.js rename to awx/ui/client/lib/moment/src/lib/units/day-of-month.js diff --git a/awx/ui/static/lib/moment/src/lib/units/day-of-week.js b/awx/ui/client/lib/moment/src/lib/units/day-of-week.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/units/day-of-week.js rename to awx/ui/client/lib/moment/src/lib/units/day-of-week.js diff --git a/awx/ui/static/lib/moment/src/lib/units/day-of-year.js b/awx/ui/client/lib/moment/src/lib/units/day-of-year.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/units/day-of-year.js rename to awx/ui/client/lib/moment/src/lib/units/day-of-year.js diff --git a/awx/ui/static/lib/moment/src/lib/units/hour.js b/awx/ui/client/lib/moment/src/lib/units/hour.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/units/hour.js rename to awx/ui/client/lib/moment/src/lib/units/hour.js diff --git a/awx/ui/static/lib/moment/src/lib/units/millisecond.js b/awx/ui/client/lib/moment/src/lib/units/millisecond.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/units/millisecond.js rename to awx/ui/client/lib/moment/src/lib/units/millisecond.js diff --git a/awx/ui/static/lib/moment/src/lib/units/minute.js b/awx/ui/client/lib/moment/src/lib/units/minute.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/units/minute.js rename to awx/ui/client/lib/moment/src/lib/units/minute.js diff --git a/awx/ui/static/lib/moment/src/lib/units/month.js b/awx/ui/client/lib/moment/src/lib/units/month.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/units/month.js rename to awx/ui/client/lib/moment/src/lib/units/month.js diff --git a/awx/ui/static/lib/moment/src/lib/units/offset.js b/awx/ui/client/lib/moment/src/lib/units/offset.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/units/offset.js rename to awx/ui/client/lib/moment/src/lib/units/offset.js diff --git a/awx/ui/static/lib/moment/src/lib/units/quarter.js b/awx/ui/client/lib/moment/src/lib/units/quarter.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/units/quarter.js rename to awx/ui/client/lib/moment/src/lib/units/quarter.js diff --git a/awx/ui/static/lib/moment/src/lib/units/second.js b/awx/ui/client/lib/moment/src/lib/units/second.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/units/second.js rename to awx/ui/client/lib/moment/src/lib/units/second.js diff --git a/awx/ui/static/lib/moment/src/lib/units/timestamp.js b/awx/ui/client/lib/moment/src/lib/units/timestamp.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/units/timestamp.js rename to awx/ui/client/lib/moment/src/lib/units/timestamp.js diff --git a/awx/ui/static/lib/moment/src/lib/units/timezone.js b/awx/ui/client/lib/moment/src/lib/units/timezone.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/units/timezone.js rename to awx/ui/client/lib/moment/src/lib/units/timezone.js diff --git a/awx/ui/static/lib/moment/src/lib/units/units.js b/awx/ui/client/lib/moment/src/lib/units/units.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/units/units.js rename to awx/ui/client/lib/moment/src/lib/units/units.js diff --git a/awx/ui/static/lib/moment/src/lib/units/week-year.js b/awx/ui/client/lib/moment/src/lib/units/week-year.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/units/week-year.js rename to awx/ui/client/lib/moment/src/lib/units/week-year.js diff --git a/awx/ui/static/lib/moment/src/lib/units/week.js b/awx/ui/client/lib/moment/src/lib/units/week.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/units/week.js rename to awx/ui/client/lib/moment/src/lib/units/week.js diff --git a/awx/ui/static/lib/moment/src/lib/units/year.js b/awx/ui/client/lib/moment/src/lib/units/year.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/units/year.js rename to awx/ui/client/lib/moment/src/lib/units/year.js diff --git a/awx/ui/static/lib/moment/src/lib/utils/abs-floor.js b/awx/ui/client/lib/moment/src/lib/utils/abs-floor.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/utils/abs-floor.js rename to awx/ui/client/lib/moment/src/lib/utils/abs-floor.js diff --git a/awx/ui/static/lib/moment/src/lib/utils/compare-arrays.js b/awx/ui/client/lib/moment/src/lib/utils/compare-arrays.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/utils/compare-arrays.js rename to awx/ui/client/lib/moment/src/lib/utils/compare-arrays.js diff --git a/awx/ui/static/lib/moment/src/lib/utils/defaults.js b/awx/ui/client/lib/moment/src/lib/utils/defaults.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/utils/defaults.js rename to awx/ui/client/lib/moment/src/lib/utils/defaults.js diff --git a/awx/ui/static/lib/moment/src/lib/utils/deprecate.js b/awx/ui/client/lib/moment/src/lib/utils/deprecate.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/utils/deprecate.js rename to awx/ui/client/lib/moment/src/lib/utils/deprecate.js diff --git a/awx/ui/static/lib/moment/src/lib/utils/extend.js b/awx/ui/client/lib/moment/src/lib/utils/extend.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/utils/extend.js rename to awx/ui/client/lib/moment/src/lib/utils/extend.js diff --git a/awx/ui/static/lib/moment/src/lib/utils/has-own-prop.js b/awx/ui/client/lib/moment/src/lib/utils/has-own-prop.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/utils/has-own-prop.js rename to awx/ui/client/lib/moment/src/lib/utils/has-own-prop.js diff --git a/awx/ui/static/lib/moment/src/lib/utils/hooks.js b/awx/ui/client/lib/moment/src/lib/utils/hooks.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/utils/hooks.js rename to awx/ui/client/lib/moment/src/lib/utils/hooks.js diff --git a/awx/ui/static/lib/moment/src/lib/utils/is-array.js b/awx/ui/client/lib/moment/src/lib/utils/is-array.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/utils/is-array.js rename to awx/ui/client/lib/moment/src/lib/utils/is-array.js diff --git a/awx/ui/static/lib/moment/src/lib/utils/is-date.js b/awx/ui/client/lib/moment/src/lib/utils/is-date.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/utils/is-date.js rename to awx/ui/client/lib/moment/src/lib/utils/is-date.js diff --git a/awx/ui/static/lib/moment/src/lib/utils/map.js b/awx/ui/client/lib/moment/src/lib/utils/map.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/utils/map.js rename to awx/ui/client/lib/moment/src/lib/utils/map.js diff --git a/awx/ui/static/lib/moment/src/lib/utils/to-int.js b/awx/ui/client/lib/moment/src/lib/utils/to-int.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/utils/to-int.js rename to awx/ui/client/lib/moment/src/lib/utils/to-int.js diff --git a/awx/ui/static/lib/moment/src/lib/utils/zero-fill.js b/awx/ui/client/lib/moment/src/lib/utils/zero-fill.js similarity index 100% rename from awx/ui/static/lib/moment/src/lib/utils/zero-fill.js rename to awx/ui/client/lib/moment/src/lib/utils/zero-fill.js diff --git a/awx/ui/static/lib/moment/src/locale/af.js b/awx/ui/client/lib/moment/src/locale/af.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/af.js rename to awx/ui/client/lib/moment/src/locale/af.js diff --git a/awx/ui/static/lib/moment/src/locale/ar-ma.js b/awx/ui/client/lib/moment/src/locale/ar-ma.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/ar-ma.js rename to awx/ui/client/lib/moment/src/locale/ar-ma.js diff --git a/awx/ui/static/lib/moment/src/locale/ar-sa.js b/awx/ui/client/lib/moment/src/locale/ar-sa.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/ar-sa.js rename to awx/ui/client/lib/moment/src/locale/ar-sa.js diff --git a/awx/ui/static/lib/moment/src/locale/ar-tn.js b/awx/ui/client/lib/moment/src/locale/ar-tn.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/ar-tn.js rename to awx/ui/client/lib/moment/src/locale/ar-tn.js diff --git a/awx/ui/static/lib/moment/src/locale/ar.js b/awx/ui/client/lib/moment/src/locale/ar.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/ar.js rename to awx/ui/client/lib/moment/src/locale/ar.js diff --git a/awx/ui/static/lib/moment/src/locale/az.js b/awx/ui/client/lib/moment/src/locale/az.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/az.js rename to awx/ui/client/lib/moment/src/locale/az.js diff --git a/awx/ui/static/lib/moment/src/locale/be.js b/awx/ui/client/lib/moment/src/locale/be.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/be.js rename to awx/ui/client/lib/moment/src/locale/be.js diff --git a/awx/ui/static/lib/moment/src/locale/bg.js b/awx/ui/client/lib/moment/src/locale/bg.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/bg.js rename to awx/ui/client/lib/moment/src/locale/bg.js diff --git a/awx/ui/static/lib/moment/src/locale/bn.js b/awx/ui/client/lib/moment/src/locale/bn.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/bn.js rename to awx/ui/client/lib/moment/src/locale/bn.js diff --git a/awx/ui/static/lib/moment/src/locale/bo.js b/awx/ui/client/lib/moment/src/locale/bo.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/bo.js rename to awx/ui/client/lib/moment/src/locale/bo.js diff --git a/awx/ui/static/lib/moment/src/locale/br.js b/awx/ui/client/lib/moment/src/locale/br.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/br.js rename to awx/ui/client/lib/moment/src/locale/br.js diff --git a/awx/ui/static/lib/moment/src/locale/bs.js b/awx/ui/client/lib/moment/src/locale/bs.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/bs.js rename to awx/ui/client/lib/moment/src/locale/bs.js diff --git a/awx/ui/static/lib/moment/src/locale/ca.js b/awx/ui/client/lib/moment/src/locale/ca.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/ca.js rename to awx/ui/client/lib/moment/src/locale/ca.js diff --git a/awx/ui/static/lib/moment/src/locale/cs.js b/awx/ui/client/lib/moment/src/locale/cs.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/cs.js rename to awx/ui/client/lib/moment/src/locale/cs.js diff --git a/awx/ui/static/lib/moment/src/locale/cv.js b/awx/ui/client/lib/moment/src/locale/cv.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/cv.js rename to awx/ui/client/lib/moment/src/locale/cv.js diff --git a/awx/ui/static/lib/moment/src/locale/cy.js b/awx/ui/client/lib/moment/src/locale/cy.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/cy.js rename to awx/ui/client/lib/moment/src/locale/cy.js diff --git a/awx/ui/static/lib/moment/src/locale/da.js b/awx/ui/client/lib/moment/src/locale/da.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/da.js rename to awx/ui/client/lib/moment/src/locale/da.js diff --git a/awx/ui/static/lib/moment/src/locale/de-at.js b/awx/ui/client/lib/moment/src/locale/de-at.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/de-at.js rename to awx/ui/client/lib/moment/src/locale/de-at.js diff --git a/awx/ui/static/lib/moment/src/locale/de.js b/awx/ui/client/lib/moment/src/locale/de.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/de.js rename to awx/ui/client/lib/moment/src/locale/de.js diff --git a/awx/ui/static/lib/moment/src/locale/el.js b/awx/ui/client/lib/moment/src/locale/el.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/el.js rename to awx/ui/client/lib/moment/src/locale/el.js diff --git a/awx/ui/static/lib/moment/src/locale/en-au.js b/awx/ui/client/lib/moment/src/locale/en-au.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/en-au.js rename to awx/ui/client/lib/moment/src/locale/en-au.js diff --git a/awx/ui/static/lib/moment/src/locale/en-ca.js b/awx/ui/client/lib/moment/src/locale/en-ca.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/en-ca.js rename to awx/ui/client/lib/moment/src/locale/en-ca.js diff --git a/awx/ui/static/lib/moment/src/locale/en-gb.js b/awx/ui/client/lib/moment/src/locale/en-gb.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/en-gb.js rename to awx/ui/client/lib/moment/src/locale/en-gb.js diff --git a/awx/ui/static/lib/moment/src/locale/eo.js b/awx/ui/client/lib/moment/src/locale/eo.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/eo.js rename to awx/ui/client/lib/moment/src/locale/eo.js diff --git a/awx/ui/static/lib/moment/src/locale/es.js b/awx/ui/client/lib/moment/src/locale/es.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/es.js rename to awx/ui/client/lib/moment/src/locale/es.js diff --git a/awx/ui/static/lib/moment/src/locale/et.js b/awx/ui/client/lib/moment/src/locale/et.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/et.js rename to awx/ui/client/lib/moment/src/locale/et.js diff --git a/awx/ui/static/lib/moment/src/locale/eu.js b/awx/ui/client/lib/moment/src/locale/eu.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/eu.js rename to awx/ui/client/lib/moment/src/locale/eu.js diff --git a/awx/ui/static/lib/moment/src/locale/fa.js b/awx/ui/client/lib/moment/src/locale/fa.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/fa.js rename to awx/ui/client/lib/moment/src/locale/fa.js diff --git a/awx/ui/static/lib/moment/src/locale/fi.js b/awx/ui/client/lib/moment/src/locale/fi.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/fi.js rename to awx/ui/client/lib/moment/src/locale/fi.js diff --git a/awx/ui/static/lib/moment/src/locale/fo.js b/awx/ui/client/lib/moment/src/locale/fo.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/fo.js rename to awx/ui/client/lib/moment/src/locale/fo.js diff --git a/awx/ui/static/lib/moment/src/locale/fr-ca.js b/awx/ui/client/lib/moment/src/locale/fr-ca.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/fr-ca.js rename to awx/ui/client/lib/moment/src/locale/fr-ca.js diff --git a/awx/ui/static/lib/moment/src/locale/fr.js b/awx/ui/client/lib/moment/src/locale/fr.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/fr.js rename to awx/ui/client/lib/moment/src/locale/fr.js diff --git a/awx/ui/static/lib/moment/src/locale/fy.js b/awx/ui/client/lib/moment/src/locale/fy.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/fy.js rename to awx/ui/client/lib/moment/src/locale/fy.js diff --git a/awx/ui/static/lib/moment/src/locale/gl.js b/awx/ui/client/lib/moment/src/locale/gl.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/gl.js rename to awx/ui/client/lib/moment/src/locale/gl.js diff --git a/awx/ui/static/lib/moment/src/locale/he.js b/awx/ui/client/lib/moment/src/locale/he.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/he.js rename to awx/ui/client/lib/moment/src/locale/he.js diff --git a/awx/ui/static/lib/moment/src/locale/hi.js b/awx/ui/client/lib/moment/src/locale/hi.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/hi.js rename to awx/ui/client/lib/moment/src/locale/hi.js diff --git a/awx/ui/static/lib/moment/src/locale/hr.js b/awx/ui/client/lib/moment/src/locale/hr.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/hr.js rename to awx/ui/client/lib/moment/src/locale/hr.js diff --git a/awx/ui/static/lib/moment/src/locale/hu.js b/awx/ui/client/lib/moment/src/locale/hu.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/hu.js rename to awx/ui/client/lib/moment/src/locale/hu.js diff --git a/awx/ui/static/lib/moment/src/locale/hy-am.js b/awx/ui/client/lib/moment/src/locale/hy-am.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/hy-am.js rename to awx/ui/client/lib/moment/src/locale/hy-am.js diff --git a/awx/ui/static/lib/moment/src/locale/id.js b/awx/ui/client/lib/moment/src/locale/id.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/id.js rename to awx/ui/client/lib/moment/src/locale/id.js diff --git a/awx/ui/static/lib/moment/src/locale/is.js b/awx/ui/client/lib/moment/src/locale/is.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/is.js rename to awx/ui/client/lib/moment/src/locale/is.js diff --git a/awx/ui/static/lib/moment/src/locale/it.js b/awx/ui/client/lib/moment/src/locale/it.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/it.js rename to awx/ui/client/lib/moment/src/locale/it.js diff --git a/awx/ui/static/lib/moment/src/locale/ja.js b/awx/ui/client/lib/moment/src/locale/ja.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/ja.js rename to awx/ui/client/lib/moment/src/locale/ja.js diff --git a/awx/ui/static/lib/moment/src/locale/ka.js b/awx/ui/client/lib/moment/src/locale/ka.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/ka.js rename to awx/ui/client/lib/moment/src/locale/ka.js diff --git a/awx/ui/static/lib/moment/src/locale/km.js b/awx/ui/client/lib/moment/src/locale/km.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/km.js rename to awx/ui/client/lib/moment/src/locale/km.js diff --git a/awx/ui/static/lib/moment/src/locale/ko.js b/awx/ui/client/lib/moment/src/locale/ko.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/ko.js rename to awx/ui/client/lib/moment/src/locale/ko.js diff --git a/awx/ui/static/lib/moment/src/locale/lb.js b/awx/ui/client/lib/moment/src/locale/lb.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/lb.js rename to awx/ui/client/lib/moment/src/locale/lb.js diff --git a/awx/ui/static/lib/moment/src/locale/lt.js b/awx/ui/client/lib/moment/src/locale/lt.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/lt.js rename to awx/ui/client/lib/moment/src/locale/lt.js diff --git a/awx/ui/static/lib/moment/src/locale/lv.js b/awx/ui/client/lib/moment/src/locale/lv.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/lv.js rename to awx/ui/client/lib/moment/src/locale/lv.js diff --git a/awx/ui/static/lib/moment/src/locale/mk.js b/awx/ui/client/lib/moment/src/locale/mk.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/mk.js rename to awx/ui/client/lib/moment/src/locale/mk.js diff --git a/awx/ui/static/lib/moment/src/locale/ml.js b/awx/ui/client/lib/moment/src/locale/ml.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/ml.js rename to awx/ui/client/lib/moment/src/locale/ml.js diff --git a/awx/ui/static/lib/moment/src/locale/mr.js b/awx/ui/client/lib/moment/src/locale/mr.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/mr.js rename to awx/ui/client/lib/moment/src/locale/mr.js diff --git a/awx/ui/static/lib/moment/src/locale/ms-my.js b/awx/ui/client/lib/moment/src/locale/ms-my.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/ms-my.js rename to awx/ui/client/lib/moment/src/locale/ms-my.js diff --git a/awx/ui/static/lib/moment/src/locale/my.js b/awx/ui/client/lib/moment/src/locale/my.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/my.js rename to awx/ui/client/lib/moment/src/locale/my.js diff --git a/awx/ui/static/lib/moment/src/locale/nb.js b/awx/ui/client/lib/moment/src/locale/nb.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/nb.js rename to awx/ui/client/lib/moment/src/locale/nb.js diff --git a/awx/ui/static/lib/moment/src/locale/ne.js b/awx/ui/client/lib/moment/src/locale/ne.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/ne.js rename to awx/ui/client/lib/moment/src/locale/ne.js diff --git a/awx/ui/static/lib/moment/src/locale/nl.js b/awx/ui/client/lib/moment/src/locale/nl.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/nl.js rename to awx/ui/client/lib/moment/src/locale/nl.js diff --git a/awx/ui/static/lib/moment/src/locale/nn.js b/awx/ui/client/lib/moment/src/locale/nn.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/nn.js rename to awx/ui/client/lib/moment/src/locale/nn.js diff --git a/awx/ui/static/lib/moment/src/locale/pl.js b/awx/ui/client/lib/moment/src/locale/pl.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/pl.js rename to awx/ui/client/lib/moment/src/locale/pl.js diff --git a/awx/ui/static/lib/moment/src/locale/pt-br.js b/awx/ui/client/lib/moment/src/locale/pt-br.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/pt-br.js rename to awx/ui/client/lib/moment/src/locale/pt-br.js diff --git a/awx/ui/static/lib/moment/src/locale/pt.js b/awx/ui/client/lib/moment/src/locale/pt.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/pt.js rename to awx/ui/client/lib/moment/src/locale/pt.js diff --git a/awx/ui/static/lib/moment/src/locale/ro.js b/awx/ui/client/lib/moment/src/locale/ro.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/ro.js rename to awx/ui/client/lib/moment/src/locale/ro.js diff --git a/awx/ui/static/lib/moment/src/locale/ru.js b/awx/ui/client/lib/moment/src/locale/ru.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/ru.js rename to awx/ui/client/lib/moment/src/locale/ru.js diff --git a/awx/ui/static/lib/moment/src/locale/sk.js b/awx/ui/client/lib/moment/src/locale/sk.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/sk.js rename to awx/ui/client/lib/moment/src/locale/sk.js diff --git a/awx/ui/static/lib/moment/src/locale/sl.js b/awx/ui/client/lib/moment/src/locale/sl.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/sl.js rename to awx/ui/client/lib/moment/src/locale/sl.js diff --git a/awx/ui/static/lib/moment/src/locale/sq.js b/awx/ui/client/lib/moment/src/locale/sq.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/sq.js rename to awx/ui/client/lib/moment/src/locale/sq.js diff --git a/awx/ui/static/lib/moment/src/locale/sr-cyrl.js b/awx/ui/client/lib/moment/src/locale/sr-cyrl.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/sr-cyrl.js rename to awx/ui/client/lib/moment/src/locale/sr-cyrl.js diff --git a/awx/ui/static/lib/moment/src/locale/sr.js b/awx/ui/client/lib/moment/src/locale/sr.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/sr.js rename to awx/ui/client/lib/moment/src/locale/sr.js diff --git a/awx/ui/static/lib/moment/src/locale/sv.js b/awx/ui/client/lib/moment/src/locale/sv.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/sv.js rename to awx/ui/client/lib/moment/src/locale/sv.js diff --git a/awx/ui/static/lib/moment/src/locale/ta.js b/awx/ui/client/lib/moment/src/locale/ta.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/ta.js rename to awx/ui/client/lib/moment/src/locale/ta.js diff --git a/awx/ui/static/lib/moment/src/locale/th.js b/awx/ui/client/lib/moment/src/locale/th.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/th.js rename to awx/ui/client/lib/moment/src/locale/th.js diff --git a/awx/ui/static/lib/moment/src/locale/tl-ph.js b/awx/ui/client/lib/moment/src/locale/tl-ph.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/tl-ph.js rename to awx/ui/client/lib/moment/src/locale/tl-ph.js diff --git a/awx/ui/static/lib/moment/src/locale/tr.js b/awx/ui/client/lib/moment/src/locale/tr.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/tr.js rename to awx/ui/client/lib/moment/src/locale/tr.js diff --git a/awx/ui/static/lib/moment/src/locale/tzm-latn.js b/awx/ui/client/lib/moment/src/locale/tzm-latn.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/tzm-latn.js rename to awx/ui/client/lib/moment/src/locale/tzm-latn.js diff --git a/awx/ui/static/lib/moment/src/locale/tzm.js b/awx/ui/client/lib/moment/src/locale/tzm.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/tzm.js rename to awx/ui/client/lib/moment/src/locale/tzm.js diff --git a/awx/ui/static/lib/moment/src/locale/uk.js b/awx/ui/client/lib/moment/src/locale/uk.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/uk.js rename to awx/ui/client/lib/moment/src/locale/uk.js diff --git a/awx/ui/static/lib/moment/src/locale/uz.js b/awx/ui/client/lib/moment/src/locale/uz.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/uz.js rename to awx/ui/client/lib/moment/src/locale/uz.js diff --git a/awx/ui/static/lib/moment/src/locale/vi.js b/awx/ui/client/lib/moment/src/locale/vi.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/vi.js rename to awx/ui/client/lib/moment/src/locale/vi.js diff --git a/awx/ui/static/lib/moment/src/locale/zh-cn.js b/awx/ui/client/lib/moment/src/locale/zh-cn.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/zh-cn.js rename to awx/ui/client/lib/moment/src/locale/zh-cn.js diff --git a/awx/ui/static/lib/moment/src/locale/zh-tw.js b/awx/ui/client/lib/moment/src/locale/zh-tw.js similarity index 100% rename from awx/ui/static/lib/moment/src/locale/zh-tw.js rename to awx/ui/client/lib/moment/src/locale/zh-tw.js diff --git a/awx/ui/static/lib/moment/src/moment.js b/awx/ui/client/lib/moment/src/moment.js similarity index 100% rename from awx/ui/static/lib/moment/src/moment.js rename to awx/ui/client/lib/moment/src/moment.js diff --git a/awx/ui/static/lib/moment/templates/amd-named.js b/awx/ui/client/lib/moment/templates/amd-named.js similarity index 100% rename from awx/ui/static/lib/moment/templates/amd-named.js rename to awx/ui/client/lib/moment/templates/amd-named.js diff --git a/awx/ui/static/lib/moment/templates/amd.js b/awx/ui/client/lib/moment/templates/amd.js similarity index 100% rename from awx/ui/static/lib/moment/templates/amd.js rename to awx/ui/client/lib/moment/templates/amd.js diff --git a/awx/ui/static/lib/moment/templates/globals.js b/awx/ui/client/lib/moment/templates/globals.js similarity index 100% rename from awx/ui/static/lib/moment/templates/globals.js rename to awx/ui/client/lib/moment/templates/globals.js diff --git a/awx/ui/static/lib/moment/templates/locale-header.js b/awx/ui/client/lib/moment/templates/locale-header.js similarity index 100% rename from awx/ui/static/lib/moment/templates/locale-header.js rename to awx/ui/client/lib/moment/templates/locale-header.js diff --git a/awx/ui/static/lib/moment/templates/test-header.js b/awx/ui/client/lib/moment/templates/test-header.js similarity index 100% rename from awx/ui/static/lib/moment/templates/test-header.js rename to awx/ui/client/lib/moment/templates/test-header.js diff --git a/awx/ui/static/lib/nvd3/.bower.json b/awx/ui/client/lib/nvd3/.bower.json similarity index 100% rename from awx/ui/static/lib/nvd3/.bower.json rename to awx/ui/client/lib/nvd3/.bower.json diff --git a/awx/ui/static/lib/nvd3/bower.json b/awx/ui/client/lib/nvd3/bower.json similarity index 100% rename from awx/ui/static/lib/nvd3/bower.json rename to awx/ui/client/lib/nvd3/bower.json diff --git a/awx/ui/static/lib/nvd3/build/nv.d3.css b/awx/ui/client/lib/nvd3/build/nv.d3.css similarity index 100% rename from awx/ui/static/lib/nvd3/build/nv.d3.css rename to awx/ui/client/lib/nvd3/build/nv.d3.css diff --git a/awx/ui/static/lib/nvd3/build/nv.d3.js b/awx/ui/client/lib/nvd3/build/nv.d3.js similarity index 100% rename from awx/ui/static/lib/nvd3/build/nv.d3.js rename to awx/ui/client/lib/nvd3/build/nv.d3.js diff --git a/awx/ui/static/lib/nvd3/build/nv.d3.min.css b/awx/ui/client/lib/nvd3/build/nv.d3.min.css similarity index 100% rename from awx/ui/static/lib/nvd3/build/nv.d3.min.css rename to awx/ui/client/lib/nvd3/build/nv.d3.min.css diff --git a/awx/ui/static/lib/nvd3/build/nv.d3.min.js b/awx/ui/client/lib/nvd3/build/nv.d3.min.js similarity index 100% rename from awx/ui/static/lib/nvd3/build/nv.d3.min.js rename to awx/ui/client/lib/nvd3/build/nv.d3.min.js diff --git a/awx/ui/static/lib/rrule/.bower.json b/awx/ui/client/lib/rrule/.bower.json similarity index 100% rename from awx/ui/static/lib/rrule/.bower.json rename to awx/ui/client/lib/rrule/.bower.json diff --git a/awx/ui/static/lib/rrule/.gitignore b/awx/ui/client/lib/rrule/.gitignore similarity index 100% rename from awx/ui/static/lib/rrule/.gitignore rename to awx/ui/client/lib/rrule/.gitignore diff --git a/awx/ui/static/lib/rrule/.npmignore b/awx/ui/client/lib/rrule/.npmignore similarity index 100% rename from awx/ui/static/lib/rrule/.npmignore rename to awx/ui/client/lib/rrule/.npmignore diff --git a/awx/ui/static/lib/rrule/LICENCE b/awx/ui/client/lib/rrule/LICENCE similarity index 100% rename from awx/ui/static/lib/rrule/LICENCE rename to awx/ui/client/lib/rrule/LICENCE diff --git a/awx/ui/static/lib/rrule/README.md b/awx/ui/client/lib/rrule/README.md similarity index 100% rename from awx/ui/static/lib/rrule/README.md rename to awx/ui/client/lib/rrule/README.md diff --git a/awx/ui/static/lib/rrule/index.html b/awx/ui/client/lib/rrule/index.html similarity index 100% rename from awx/ui/static/lib/rrule/index.html rename to awx/ui/client/lib/rrule/index.html diff --git a/awx/ui/static/lib/rrule/lib/nlp.js b/awx/ui/client/lib/rrule/lib/nlp.js similarity index 100% rename from awx/ui/static/lib/rrule/lib/nlp.js rename to awx/ui/client/lib/rrule/lib/nlp.js diff --git a/awx/ui/static/lib/rrule/lib/rrule.js b/awx/ui/client/lib/rrule/lib/rrule.js similarity index 100% rename from awx/ui/static/lib/rrule/lib/rrule.js rename to awx/ui/client/lib/rrule/lib/rrule.js diff --git a/awx/ui/static/lib/rrule/tests/demo/demo.coffee b/awx/ui/client/lib/rrule/tests/demo/demo.coffee similarity index 100% rename from awx/ui/static/lib/rrule/tests/demo/demo.coffee rename to awx/ui/client/lib/rrule/tests/demo/demo.coffee diff --git a/awx/ui/static/lib/rrule/tests/demo/demo.css b/awx/ui/client/lib/rrule/tests/demo/demo.css similarity index 100% rename from awx/ui/static/lib/rrule/tests/demo/demo.css rename to awx/ui/client/lib/rrule/tests/demo/demo.css diff --git a/awx/ui/static/lib/rrule/tests/demo/demo.js b/awx/ui/client/lib/rrule/tests/demo/demo.js similarity index 100% rename from awx/ui/static/lib/rrule/tests/demo/demo.js rename to awx/ui/client/lib/rrule/tests/demo/demo.js diff --git a/awx/ui/static/lib/rrule/tests/index.html b/awx/ui/client/lib/rrule/tests/index.html similarity index 100% rename from awx/ui/static/lib/rrule/tests/index.html rename to awx/ui/client/lib/rrule/tests/index.html diff --git a/awx/ui/static/lib/rrule/tests/tests.js b/awx/ui/client/lib/rrule/tests/tests.js similarity index 100% rename from awx/ui/static/lib/rrule/tests/tests.js rename to awx/ui/client/lib/rrule/tests/tests.js diff --git a/awx/ui/static/lib/rrule/tests/utils.js b/awx/ui/client/lib/rrule/tests/utils.js similarity index 100% rename from awx/ui/static/lib/rrule/tests/utils.js rename to awx/ui/client/lib/rrule/tests/utils.js diff --git a/awx/ui/static/lib/rrule/tests/vendor/jquery.js b/awx/ui/client/lib/rrule/tests/vendor/jquery.js similarity index 100% rename from awx/ui/static/lib/rrule/tests/vendor/jquery.js rename to awx/ui/client/lib/rrule/tests/vendor/jquery.js diff --git a/awx/ui/static/lib/rrule/tests/vendor/qunit.css b/awx/ui/client/lib/rrule/tests/vendor/qunit.css similarity index 100% rename from awx/ui/static/lib/rrule/tests/vendor/qunit.css rename to awx/ui/client/lib/rrule/tests/vendor/qunit.css diff --git a/awx/ui/static/lib/rrule/tests/vendor/qunit.js b/awx/ui/client/lib/rrule/tests/vendor/qunit.js similarity index 100% rename from awx/ui/static/lib/rrule/tests/vendor/qunit.js rename to awx/ui/client/lib/rrule/tests/vendor/qunit.js diff --git a/awx/ui/static/lib/rrule/tests/vendor/underscore.js b/awx/ui/client/lib/rrule/tests/vendor/underscore.js similarity index 100% rename from awx/ui/static/lib/rrule/tests/vendor/underscore.js rename to awx/ui/client/lib/rrule/tests/vendor/underscore.js diff --git a/awx/ui/static/lib/scrollto/demo/index.html b/awx/ui/client/lib/scrollto/demo/index.html similarity index 100% rename from awx/ui/static/lib/scrollto/demo/index.html rename to awx/ui/client/lib/scrollto/demo/index.html diff --git a/awx/ui/static/lib/scrollto/index.html b/awx/ui/client/lib/scrollto/index.html similarity index 100% rename from awx/ui/static/lib/scrollto/index.html rename to awx/ui/client/lib/scrollto/index.html diff --git a/awx/ui/static/lib/scrollto/lib/jquery-scrollto.js b/awx/ui/client/lib/scrollto/lib/jquery-scrollto.js similarity index 100% rename from awx/ui/static/lib/scrollto/lib/jquery-scrollto.js rename to awx/ui/client/lib/scrollto/lib/jquery-scrollto.js diff --git a/awx/ui/static/lib/scrollto/styles/generic.css b/awx/ui/client/lib/scrollto/styles/generic.css similarity index 100% rename from awx/ui/static/lib/scrollto/styles/generic.css rename to awx/ui/client/lib/scrollto/styles/generic.css diff --git a/awx/ui/static/lib/scrollto/styles/style.css b/awx/ui/client/lib/scrollto/styles/style.css similarity index 100% rename from awx/ui/static/lib/scrollto/styles/style.css rename to awx/ui/client/lib/scrollto/styles/style.css diff --git a/awx/ui/static/lib/scrollto/vendor/highlight.css b/awx/ui/client/lib/scrollto/vendor/highlight.css similarity index 100% rename from awx/ui/static/lib/scrollto/vendor/highlight.css rename to awx/ui/client/lib/scrollto/vendor/highlight.css diff --git a/awx/ui/static/lib/scrollto/vendor/jquery.js b/awx/ui/client/lib/scrollto/vendor/jquery.js similarity index 100% rename from awx/ui/static/lib/scrollto/vendor/jquery.js rename to awx/ui/client/lib/scrollto/vendor/jquery.js diff --git a/awx/ui/static/lib/scrollto/vendor/modernizr.js b/awx/ui/client/lib/scrollto/vendor/modernizr.js similarity index 100% rename from awx/ui/static/lib/scrollto/vendor/modernizr.js rename to awx/ui/client/lib/scrollto/vendor/modernizr.js diff --git a/awx/ui/static/lib/scrollto/vendor/yui-cssreset.css b/awx/ui/client/lib/scrollto/vendor/yui-cssreset.css similarity index 100% rename from awx/ui/static/lib/scrollto/vendor/yui-cssreset.css rename to awx/ui/client/lib/scrollto/vendor/yui-cssreset.css diff --git a/awx/ui/client/lib/select2-bootstrap-theme/.bower.json b/awx/ui/client/lib/select2-bootstrap-theme/.bower.json new file mode 100644 index 0000000000..545b43c759 --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/.bower.json @@ -0,0 +1,30 @@ +{ + "name": "select2-bootstrap-theme", + "version": "0.1.0-beta.4", + "main": [ + "dist/select2-bootstrap.css", + "dist/select2-bootstrap.min.css" + ], + "ignore": [ + "**/.*", + "node_modules", + "components" + ], + "devDependencies": { + "bootstrap": "~3.3.5", + "bootstrap-sass-official": "~3.3.5", + "respond": "~1.4.2", + "anchor-js": "~1.1.1" + }, + "homepage": "https://github.com/fk/select2-bootstrap-theme", + "_release": "0.1.0-beta.4", + "_resolution": { + "type": "version", + "tag": "0.1.0-beta.4", + "commit": "2fe20fd58120bf323fb6846d99ca91e6dbf11109" + }, + "_source": "git://github.com/fk/select2-bootstrap-theme.git", + "_target": "~0.1.0-beta.4", + "_originalSource": "select2-bootstrap-theme", + "_direct": true +} \ No newline at end of file diff --git a/awx/ui/client/lib/select2-bootstrap-theme/Gruntfile.js b/awx/ui/client/lib/select2-bootstrap-theme/Gruntfile.js new file mode 100755 index 0000000000..d2c9b9bfe5 --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/Gruntfile.js @@ -0,0 +1,128 @@ +module.exports = function(grunt) { + // Load all grunt tasks. + require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks); + + // Project configuration. + grunt.initConfig({ + nodeunit: { + all: ['tests/*_test.js'] + }, + + sass: { + options: { + style: 'expanded', + sourcemap: 'none', + // Increase Sass' default (5) precision to 9 to match Less output. + // + // @see https://github.com/twbs/bootstrap-sass#sass-number-precision + // @see https://github.com/sass/node-sass/issues/673#issue-57581701 + // @see https://github.com/sass/sass/issues/1122 + precision: 9 + }, + dist: { + files: { + 'docs/css/select2-bootstrap.css': 'src/build.scss', + 'dist/select2-bootstrap.css': 'src/build.scss' + } + }, + test: { + files: { + 'tmp/select2-bootstrap.css': 'src/build.scss' + } + } + }, + + cssmin: { + target: { + files: { + 'dist/select2-bootstrap.min.css': 'dist/select2-bootstrap.css' + } + } + }, + + jshint: { + all: ['Gruntfile.js', '*.json'] + }, + + bump: { + options: { + files: [ + 'package.json', + 'bower.json' + ], + push: false, + createTag: false + } + }, + + copy: { + main: { + files: [ + { + src: 'bower_components/bootstrap/dist/css/bootstrap.min.css', + dest: 'docs/css/bootstrap.min.css', + expand: false + }, + { + src: 'bower_components/bootstrap/dist/js/bootstrap.min.js', + dest: 'docs/js/bootstrap.min.js', + expand: false + }, + { + src: 'bower_components/respond/dest/respond.min.js', + dest: 'docs/js/respond.min.js', + expand: false + }, + { + cwd: 'bower_components/bootstrap/dist/fonts', + src: ['**/*'], + dest: 'docs/fonts', + expand: true + }, + { + src: 'bower_components/anchor-js/anchor.min.js', + dest: 'docs/js/anchor.min.js', + expand: false + } + ] + } + }, + + 'gh-pages': { + options: { + base: 'docs/_site', + message: 'Update gh-pages.' + }, + src: ['**/*'] + }, + + jekyll: { + options: { + src: 'docs', + dest: 'docs/_site', + sourcemaps: false + }, + build: { + d: null + }, + serve: { + options: { + serve: true, + watch: true + } + } + }, + + watch: { + files: 'src/select2-bootstrap.scss', + tasks: ['sass'], + options: { + livereload: true + } + } + }); + + // Default tasks. + grunt.registerTask('build', ['sass', 'cssmin', 'copy', 'jekyll:build']); + grunt.registerTask('serve', ['jekyll:serve']); +}; diff --git a/awx/ui/client/lib/select2-bootstrap-theme/LICENSE b/awx/ui/client/lib/select2-bootstrap-theme/LICENSE new file mode 100755 index 0000000000..406d19a3c3 --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2012-2015 Florian Kissling and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/awx/ui/client/lib/select2-bootstrap-theme/README.md b/awx/ui/client/lib/select2-bootstrap-theme/README.md new file mode 100755 index 0000000000..52a4793dff --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/README.md @@ -0,0 +1,58 @@ +A Select2 v4 [Theme](https://select2.github.io/examples.html#themes) for Bootstrap 3 + +**Note: Work in progress – depending on your use case, select2-bootstrap-theme might not be production-ready yet!** + +Demonstrations available at +http://select2.github.io/select2-bootstrap-theme/ + +Tested with Bootstrap v3.3.5 and Select2 v4.0.0 +in latest Chrome. + +##### Installation + +The Select2 Bootstrap Theme only works with Select2 v4.x. Applying the theme requires `select2-bootstrap.css` referenced after the default `select2.css` that comes with Select2: + + + + +To apply the theme, tell Select2 to do so by passing `bootstrap` to the [`theme`](https://select2.github.io/examples.html#themes) option when initializing Select2: + + $( "#dropdown" ).select2({ + theme: "bootstrap" + }); + +##### Changelog + +###### 0.1.0-beta.4 + + * Added missing styles for `.select2-container--focus`. [[#18](https://github.com/select2/select2-bootstrap-theme/issues/18)] + * Added support for Bootstrap's [`.form-inline`](http://getbootstrap.com/css/#forms-inline). [[#13](https://github.com/select2/select2-bootstrap-theme/pull/13)] + * Added basic styles for `.select2-selection__clear` in `.select2-selection--multiple`. [[#11](https://github.com/select2/select2-bootstrap-theme/issues/11)] + * Brought Less source in line with the Sass version and fixed Less patch file and test. [[`3e86f34](https://github.com/select2/select2-bootstrap-theme/commit/3e86f34f6c94302cd8b4d6c3d751c5fb70fe61f6)] + +###### 0.1.0-beta.3 + + * Fixed specifity problems with `.form-control.select2-hidden-accessible`. + +###### 0.1.0-beta.2 + + * Added Less version. + +###### 0.1.0-beta.1 + +##### Contributing + +The project offers [Less](http://lesscss.org/) and [Sass](http://sass-lang.com/) sources for building `select2-bootstrap.css`; both make use of variables from either [Bootstrap](https://github.com/twbs/bootstrap) (Less) or [Bootstrap for Sass](https://github.com/twbs/bootstrap-sass). The demo pages are built using [Jekyll](http://jekyllrb.com/) and there are a bunch of [Grunt](http://gruntjs.com/) tasks to ease development. + +With [Ruby](https://www.ruby-lang.org/en/downloads/) and [RubyGems](http://rubygems.org/pages/download), [Jekyll](http://jekyllrb.com/), [Bower](http://bower.io/), [node.js](http://nodejs.org/), [Less](http://lesscss.org/) and [Sass](http://sass-lang.com/) installed, run + + npm install && bower install + +to install all necessary development dependencies. + + * `grunt copy` copies assets from `components` to `_jekyll` – use this in case a new version of Twitter Bootstrap or Select2 are out and need to be tested + * `grunt build` builds `docs` + * `grunt serve` builds `docs` and serves them via Jekyll's `--watch` flag on http://localhost:4000 + * `grunt watch` watches for changes in `src/select2-bootstrap.scss` ([livereload](https://github.com/gruntjs/grunt-contrib-watch#optionslivereload) is enabled) + +Develop in `src/select2-bootstrap.scss` and test your changes using `grunt watch` and `grunt serve`. Ideally, port your changes to `lib/select2-bootstrap.less` and make sure tests are passing to verify that Less and Sass compile down to the target CSS via `npm test`. diff --git a/awx/ui/client/lib/select2-bootstrap-theme/bower.json b/awx/ui/client/lib/select2-bootstrap-theme/bower.json new file mode 100755 index 0000000000..a1933febec --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/bower.json @@ -0,0 +1,19 @@ +{ + "name": "select2-bootstrap-theme", + "version": "0.1.0-beta.4", + "main": [ + "dist/select2-bootstrap.css", + "dist/select2-bootstrap.min.css" + ], + "ignore": [ + "**/.*", + "node_modules", + "components" + ], + "devDependencies": { + "bootstrap": "~3.3.5", + "bootstrap-sass-official": "~3.3.5", + "respond": "~1.4.2", + "anchor-js": "~1.1.1" + } +} diff --git a/awx/ui/static/lib/select2/dist/css/select2-bootstrap.css b/awx/ui/client/lib/select2-bootstrap-theme/dist/select2-bootstrap.css old mode 100644 new mode 100755 similarity index 89% rename from awx/ui/static/lib/select2/dist/css/select2-bootstrap.css rename to awx/ui/client/lib/select2-bootstrap-theme/dist/select2-bootstrap.css index 019f5ea914..a2385b5440 --- a/awx/ui/static/lib/select2/dist/css/select2-bootstrap.css +++ b/awx/ui/client/lib/select2-bootstrap-theme/dist/select2-bootstrap.css @@ -1,4 +1,4 @@ -/*! Select2 Bootstrap Theme v0.1.0-beta.1 | MIT License | github.com/fk/select2-bootstrap-theme */ +/*! Select2 Bootstrap Theme v0.1.0-beta.4 | MIT License | github.com/select2/select2-bootstrap-theme */ .select2-container--bootstrap { display: block; /*------------------------------------*\ @@ -17,6 +17,9 @@ * * @see http://getbootstrap.com/components/#dropdowns */ + /** + * Clear the selection. + */ /** * Address disabled Select2 styles. * @@ -153,24 +156,24 @@ display: block; padding: 6px 12px; font-size: 12px; - line-height: 1.42857143; + line-height: 1.428571429; white-space: nowrap; } -.select2-container--bootstrap.select2-container--open { - /** - * Handle border radii of the container when the dropdown is showing. - */ -} -.select2-container--bootstrap.select2-container--open .select2-selection { +.select2-container--bootstrap.select2-container--focus .select2-selection, .select2-container--bootstrap.select2-container--open .select2-selection { -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; border-color: #66afe9; +} +.select2-container--bootstrap.select2-container--open { /** * Make the dropdown arrow point up while the dropdown is visible. */ + /** + * Handle border radii of the container when the dropdown is showing. + */ } .select2-container--bootstrap.select2-container--open .select2-selection .select2-selection__arrow b { border-color: transparent transparent #999 transparent; @@ -186,6 +189,21 @@ border-top-left-radius: 0; border-top-color: transparent; } +.select2-container--bootstrap .select2-selection__clear { + color: #999; + cursor: pointer; + float: right; + font-weight: bold; + margin-right: 10px; +} +.select2-container--bootstrap .select2-selection__clear:hover { + color: #333; +} +.select2-container--bootstrap.select2-container--disabled .select2-selection { + border-color: #ccc; + -webkit-box-shadow: none; + box-shadow: none; +} .select2-container--bootstrap.select2-container--disabled .select2-selection, .select2-container--bootstrap.select2-container--disabled .select2-search__field { cursor: not-allowed; @@ -214,25 +232,12 @@ } .select2-container--bootstrap .select2-selection--single { height: 34px; - line-height: 1.42857143; + line-height: 1.428571429; padding: 6px 24px 6px 12px; - /** - * Clear the selection. - */ /** * Adjust the single Select2's dropdown arrow button appearance. */ } -.select2-container--bootstrap .select2-selection--single .select2-selection__clear { - color: #999; - cursor: pointer; - float: right; - font-weight: bold; - margin-right: 10px; -} -.select2-container--bootstrap .select2-selection--single .select2-selection__clear:hover { - color: #333; -} .select2-container--bootstrap .select2-selection--single .select2-selection__arrow { position: absolute; bottom: 0; @@ -267,11 +272,14 @@ /** * Minus 2px borders. */ + /** + * Clear the selection. + */ } .select2-container--bootstrap .select2-selection--multiple .select2-selection__rendered { box-sizing: border-box; display: block; - line-height: 1.42857143; + line-height: 1.428571429; list-style: none; margin: 0; overflow: hidden; @@ -299,7 +307,7 @@ background: transparent; padding: 0 12px; height: 32px; - line-height: 1.42857143; + line-height: 1.428571429; margin-top: 0; min-width: 5em; } @@ -313,6 +321,9 @@ .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice__remove:hover { color: #333; } +.select2-container--bootstrap .select2-selection--multiple .select2-selection__clear { + margin-top: 6px; +} .select2-container--bootstrap.input-sm, .select2-container--bootstrap.input-lg { border-radius: 0; font-size: 12px; @@ -346,6 +357,9 @@ height: 28px; line-height: 1.5; } +.select2-container--bootstrap.input-sm .select2-selection--multiple .select2-selection__clear, .input-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear, .form-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear { + margin-top: 5px; +} .select2-container--bootstrap.input-lg .select2-selection--single, .input-group-lg .select2-container--bootstrap .select2-selection--single, .form-group-lg .select2-container--bootstrap .select2-selection--single { border-radius: 6px; font-size: 18px; @@ -379,6 +393,9 @@ height: 44px; line-height: 1.3333333; } +.select2-container--bootstrap.input-lg .select2-selection--multiple .select2-selection__clear, .input-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear, .form-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear { + margin-top: 10px; +} .select2-container--bootstrap.input-lg.select2-container--open .select2-selection--single { /** * Make the dropdown arrow point up while the dropdown is visible. @@ -458,6 +475,7 @@ .has-warning .select2-selection { border-color: #8a6d3b; } +.has-warning .select2-container--focus .select2-selection, .has-warning .select2-container--open .select2-selection { -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; @@ -474,6 +492,7 @@ .has-error .select2-selection { border-color: #a94442; } +.has-error .select2-container--focus .select2-selection, .has-error .select2-container--open .select2-selection { -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; @@ -490,6 +509,7 @@ .has-success .select2-selection { border-color: #3c763d; } +.has-success .select2-container--focus .select2-selection, .has-success .select2-container--open .select2-selection { -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; @@ -543,7 +563,7 @@ /** * Adjust alignment of Bootstrap buttons in Bootstrap Input Groups to address * Multi Select2's height which - depending on how many elements have been selected - - * may grown higher than their initial size. + * may grow taller than its initial size. * * @see http://getbootstrap.com/components/#input-groups */ @@ -555,3 +575,24 @@ .select2-bootstrap-prepend .input-group-btn .btn { vertical-align: top; } + +/** + * Temporary fix for https://github.com/select2/select2-bootstrap-theme/issues/9 + * + * Provides `!important` for certain properties of the class applied to the + * original ` +
+ +
+ + +
+ +
+ + +
+ + + +

To let the Select2 widget know if any elements are directly being appended, prepended or both in the context of a Bootstrap Input Group, add .select2-bootstrap-prepend and/or .select2-bootstrap-append to the .input-group wrapper element to address Select2's corresponding border-radii.

+ +
+ +
+ + + + +
+
+ +
+ +
+ + + + +
+
+ +
+ +
+ + + + +
+
+ +
+ +
+ + + + +
+
+ +
+ +
+ + + + +
+
+ +
+ +
+ + + + +
+
+ + + +

The theme offers styles to display "small" and "large" Select2 widgets in Bootstrap Input Groups with Bootstrap Control Sizing classes applied (e. g. Select2 in .input-group.input-group-sm or .input-group.input-group-lg). You may also apply the Bootstrap Control Sizing classes directly to the .select2-container to alter its appearance.

+ + + +
+
+ + +

RTL support via dir="rtl"

+
+
+ + +
+
+ + +
+
+
+ +
+ + + + +
+
+
+
+ + + +
+
+ + +

Example block-level help text.

+
+
+ + +
+
+ + +
+
+
+ +
+ + + + +
+
+
+
+ + + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+ + + + +
+
+
+
+ +

+ Horizontal form group sizes +

+ +

The theme's styles work in Bootstrap's Horizontal Forms and offers support for Horizontal Form Group Sizes, too.

+ +
+
+ + +
+ +
+ +
+ +
+
+ +
+ + +
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ + +
+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ +
+
+
+ + + +
+
+
+
+ +
+
$
+ +
.00
+
+
+ +
+
+
+ +
+
+
+
+ + +
+
+ + +
+ +
+ +
+ +
+
+
+ + + +

Tests for Select2 widgets used in context with Bootstrap's Button Addons.

+ +
+
+ +
+
+ +
+ +
+
+
+ +
+ + + + +
+
+
+ + + +
+
+ +
+ + +
+
+
+ +
+ + + + +
+
+
+ + + +
+
+ +
+ + + + +
+
+
+ +
+ + + + +
+
+
+ + + +

The theme applies Bootstrap's styles for disabled input elements and for disabled dropdown options to the Select2 widgets and its options. Also see Select2's documentation on its "Disabled mode".

+ +
+
+
+ +
+ + + + +
+
+
+
+
+ +
+ + + + +
+
+
+
+ +
+ + {% include footer.html %} + + {% include scripts.html %} + + + + + diff --git a/awx/ui/client/lib/select2-bootstrap-theme/docs/_layouts/minimal.html b/awx/ui/client/lib/select2-bootstrap-theme/docs/_layouts/minimal.html new file mode 100755 index 0000000000..9f63c182f6 --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/docs/_layouts/minimal.html @@ -0,0 +1,7 @@ + + + {% include head.html %} + + {{ content }} + + diff --git a/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_alert.sass b/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_alert.sass new file mode 100644 index 0000000000..ce89228001 --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_alert.sass @@ -0,0 +1,17 @@ +.alert + padding: 20px + margin: 20px 0 + border: 1px solid #EEE + border-left-width: 5px + border-radius: 3px + .btn-set-scaling-classes + margin-top: 5px + &-info + border-left-color: #CE4844 + background: white + color: #333 + h4 + color: #CE4844 + margin-top: 0 + margin-bottom: 5px + font-size: 18px diff --git a/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_anchorjs.sass b/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_anchorjs.sass new file mode 100644 index 0000000000..be1c0a8ec0 --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_anchorjs.sass @@ -0,0 +1,6 @@ +.anchorjs-link + color: inherit + transition: all .25s linear + +*:hover > .anchorjs-link + margin-left: -1.125em !important diff --git a/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_buttons.sass b/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_buttons.sass new file mode 100644 index 0000000000..3bf6890e22 --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_buttons.sass @@ -0,0 +1,8 @@ +.btn-outline + border-color: $component-active-bg + color: $component-active-bg + background-color: transparent + &:hover, + &:active + color: $component-active-color + background-color: $component-active-bg diff --git a/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_common.sass b/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_common.sass new file mode 100644 index 0000000000..93ff58116d --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_common.sass @@ -0,0 +1,25 @@ +a + &:hover, + &:focus + text-decoration: none + +h1[id] + padding-top: 20px + margin-top: 0 + +.row + padding-bottom: 20px + +@media (min-width: $screen-sm) + .jumbotron + padding-top: 60px + padding-bottom: 60px + font-size: $lead-font-size + h1 + font-size: 32px + .lead + font-size: $lead-font-size + .btn-lg + margin: 20px 0 + padding: 18px 24px + font-size: $lead-font-size diff --git a/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_extends.sass b/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_extends.sass new file mode 100755 index 0000000000..c5c38ed627 --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_extends.sass @@ -0,0 +1,4 @@ +%background-image + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAwoAAAJ1CAYAAAB5OweBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAABpxhJREFUeNrsnQe0FFX29cs46lAGRDBgFnPCMCLmwCAiomMgKRkFFFERUBCQpKKgmBgwYUCUIIgJs6hjAhzBiHHMCjqmMo8zfvd3Pm7/6zWdw0vsvdZZr193VXWFW9Xn3LPPPqv88ccfgSAIgiAIgiAIQhyr6hQIgiAIgiAIgqBAQRAEQRAEQRAEBQqCIAiCIAiCIChQEARBEARBEARBgYIgCIIgCIIgCAoUBEEQBEEQBEFQoLAy4+OPPw6//PLLUGdCEARBEARBUKAgJLB06dIgiiKdCEEQBEEQBKFKsIoargmCIAiCIAiCkAxlFARBEARBEARBUKAgCIIgCIIgCIICBUEQBEEQBEEQFCgIgiAIgiAIgqBAQRAEQRAEQRAEBQqCIAiCIAiCIChQEARBEARBEARBgYIgCIIgCIIgCAoUBEEQBEEQBEFQoCAIgiAIgiAIggIFQRAEQRAEQRAUKAiCIAiCIAiCoEBBEARBEARBEAQFCoIgCIIgCIIgKFAQBEEQBEEQBEGBgiAIgiAIgiAIggIFQRAEQRAEQRAUKAiCIAiCIAiCoEBBEARBEARBEAQFCoIgCIIgCIIgKFAQBEEQBEEQBEGBgiAIgiAIgiAIChQEQRAEQRAEQVCgIAiCIAiCIAiCAoWC8fnnn4e6VIIgCIIgCIKgQKECPvvss+Ddd99VsCAIgiAIgiAIlYRV/vjjD50FQRAEQRAEQRAqQDUKgiAIgiAIgiAoUBAEQRAEQRAEQYGCIAiCIAiCIAgKFARBEARBEARBUKAgCIIgCIIgCIICBUEQBEEQBEEQFCgIgiAIgiAIgqBAQRAEQRAEQRAEBQqCINQqfPLJJ+qeLgiCIAgKFARBEP4Py5YtCz/44AOdCEEQBEGoRVjljz/+0FkQBEEQBEEQBKEClFEQBEEQBEEQBEGBgiAIgiAIgiAIChSEGoL58+erEFYQBEEQBEGBgiBUxIYbbqiTIAiCIAiCUI2gYmZBEARBEARBEFaAMgqCIAiCIAiCIChQEARBEARBEAQhO1bXKRCE2oWrr746/Oqrr4IJEyYE//73vxPvH3fcccFuu+0WdOvWLdhyyy0jnSlBEARBEDJBNQqCUIPx7LPPhrNmzQq++eabYPLkyRU+23TTTYMWLVoEu+++e/DLL7/Y50uWLLHPbrjhhqB79+4KFgRBEARBUKAgCLUFL7/8cnj++ecHjzzyiP2/5pprBn/961+DunXr2us+ffoEG2+8cVC/fv0VAoEvv/wy7NmzZ0BwMXXq1KBdu3YKFgRBEARBUKAgCDUdnTt3Dm+99dYgDMPg5JNPDrp27Ro0bdo0b2ffrRM+//zzgbv/FSgIgiAIgqBAQRBqKl577bVwv/32C1ZfffVg9OjRwZlnnlmUg//FF1+Em2yySbDddtsF77zzjoIFQRAEQRBWgFSPBKGaY8CAASFFyPvss0/w3XffRcUGCWDjjTeOFixYELz77rvUMKgrtiAIgiAIChQEoSZhwoQJ4eWXXx40aNAgeOqpp0o68+8Cjwj60auvvhqMGjVKwYIgCIIgCBUg6pEgFIjx48eHqA2tuuqqwSqrrBJEURSMHTvWnPrTTz+dQuFgxx13LMi579ixY3j77bfb6w4dOgRTpkwpGz1oww03DOvVqxe89dZboiAJgiAIgqBAQRAy4YknngjfeOON4F//+lew2mqrUfQbXHPNNcGvv/5qn9evXz9YtmxZhXXWWGMNKy5euHBh8NJLLwU43/QziAPJUr/sTjvtFKy99tomX/rzzz8HZA78/bj++usHxx9/vCkYNW7cuKwO/ODBg8Mnn3wyeO655xQoCIIgCIKQgBquCSstnOMf0pDsiy++CCZNmhQceeSRwTPPPJMIBgDqQuDHH380CVIc/f/+978WEGy//fbm2JNR4C+8f7/e0qVLLdtw4403IklqRchkHW666abgwAMPDLbYYguKiI32M3v27GCttdYii2Dr/u9//wuW040qxXH//vvvLWARBEEQBEGIQxkFYaVD7969w7///e+J/w8++OBgq622Cn744YdgnXXWsdn+Xr16BagCNWzYsOzO+meffRa6AKTKZvNPPvnkkCzI+++/r4yCIAiCIAgKFISqx4IFC8L777///w/EVVYJUPaBgvPee+8FH330kc2yQ99hjPI5s/hbbrllwc7s/PnzQzoVf/3118ExxxwTXHbZZcEGG2xQIROwMuK+++4Ljz322OCFF14I9ttvPwULgiAIgiAoUBCqBq+88kpIL4Dp06enXaZly5YWMCxZsuT/BqsLFhivp556KgFD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dKnKqCBfXCiNCNoQNB/OXZcuXXKuj5oEKDm6+RkOi0kRe+qppxS10C21zHuCSPq1116bcxtInSZxvaZOnaqMcwIc7CN9OXhnxb0dRBq0MMP06dMzpgzwlVdeqf6uV6+e+ttdGC4QR0EgEAiqHC644IIKHF/L6J4s50dQCE466STPWgNoHUwngmuqyng1K8Nogyte1c4N2ZJCGp3RUHH48OHZ5TGczaZ2XoAug2Oh/z7xxBMzZ599dsake7Vt27bCOmiCV2rlJtS0dFT/3XffLcq+oAZlGd3HdYZM05CgKPE3VDp51sVREAgEgioNKAl0dNZwc32L9XEWVC1g5MPz9nMiTCNVG65eGQiyD3DIq9r5wdikuDbqco8//rjK9rmnU8Tbt29f3/WRSTCbqxEMuOaaa7J/U3dA5F7/zbqgG5X6PNHQjYxGsbdLATPOQPPmzTNQ5nThNHQvfod+BQ1JnnVxFAQCgWCbBQ2YKF6Uc1HeCMtjjxMY/X7qRdBcWrRoUeE3OO8o07jnff/999V6HnvssSp3H/br1y+ysYmB7+4/Ae69917P82dSuXbccceMfq6pFfH6TVOIOOdBnZqLgQ8//FDtB/01SrF9sl5169bNZmLoB8H+/PnPf87oe1beLxVRXQRiZciQIWPbGb/5zW/sXr16iXZ4mY/DDz+8qNfw+uuvz6xcudKaNGmS5+9t27a1dthhByXRqac5BrONVj3yu+a8++yzj40ef/fu3RV9pipdl5kzZ9rLly+3yK6EXeaLL77I9gkwR9++fW3HOVMOg9dyb775pnXaaaep///888//jf5uHbNmzVLXY8uWLWrZd955R/UgOOigg0r27G+VJFX71bt375Lsw2GHHWZ/++239nfffUc/icwtt9xin3nmmdbpp5+unCvuWXm7VBziKMiQIUOGDBkyfAdKRxj8GHdjx471NKR22WUXm8ZXy5YtqzD93HPPtW677TZFkzGn//rXv7YdI80aOHBglTtfNKh74IEHQs2LuECTJk2siy66yPO81qpViyi457Kc11133VX9XzceM9ZLcbNyIPS8zjkvyfm49dZbVS+Eo446Su3vq6++SpfrkhrkCxcutNatW6c63T/00EM2TitOjAxxFGTIkCFDhgwZEQYOws4774zxG2jcdenSBYegwrQ999zTPuKII9C1rzT/iBEj7GbNmllb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) + background-repeat: no-repeat + background-position: 50% 0 diff --git a/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_footer.sass b/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_footer.sass new file mode 100644 index 0000000000..b809547448 --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_footer.sass @@ -0,0 +1,22 @@ +.footer + text-align: center + color: #ccc + a + +link + small a + color: #999 + &-links + margin-top: $padding-large-horizontal + margin-bottom: 0 + padding-bottom: $padding-large-horizontal + padding-left: 0 + list-style: none + font-size: 14px + li + display: inline + margin-left: 2px + margin-right: 2px + .demo & + padding-top: 200px + padding-bottom: 80px + @extend %background-image diff --git a/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_home.sass b/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_home.sass new file mode 100644 index 0000000000..7c419f9d18 --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_home.sass @@ -0,0 +1,8 @@ +.home + padding-bottom: 30px + @extend %background-image + background-position: 50% 50% + body + background-color: transparent + .container + max-width: 700px diff --git a/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_jumbotron.sass b/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_jumbotron.sass new file mode 100644 index 0000000000..60ed699b1f --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_jumbotron.sass @@ -0,0 +1,36 @@ +.jumbotron + background-color: transparent + text-align: center + font-weight: normal + &-title + margin-top: 40px + font-size: 28px + h2 + text-align: center + font-size: 16px + hr + border-color: #eee + width: 100px + .lead + font-size: 16px + a + +link + .form-group + background: none + .select2-wrapper + width: 300px + text-align: left + margin: 0 auto $padding-large-horizontal + transition: all .1s ease-in-out + .btn + &-outline + padding: 18px 24px + transition: all .1s ease-in-out + &-lg + padding: 10px 16px + font-size: 18px + line-height: 1.33 + border-radius: 6px + margin-top: 15px + margin-bottom: 15px + margin-left: 0 diff --git a/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_mixins.sass b/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_mixins.sass new file mode 100755 index 0000000000..765a75f186 --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_mixins.sass @@ -0,0 +1,9 @@ +=link($color: $link-color, $hover-color: $link-hover-color, $border-width: 1px, $font-weight: normal) + border-bottom: $border-width solid transparent + color: $color + font-weight: $font-weight + transition: all .1s ease-in-out + &:hover + border-color: $hover-color + border-width: $border-width + color: $hover-color diff --git a/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_navbar.sass b/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_navbar.sass new file mode 100644 index 0000000000..c01caf16da --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_navbar.sass @@ -0,0 +1,4 @@ +.navbar-default + background: rgba(#fff,.95) + border-width: 0 0 1px + border-radius: 0 diff --git a/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_select2-result-repository.sass b/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_select2-result-repository.sass new file mode 100755 index 0000000000..85365c2386 --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_select2-result-repository.sass @@ -0,0 +1,40 @@ +.select2-result-repository + padding-top: 4px + padding-bottom: 3px + &__avatar + float: left + width: 60px + margin-right: 10px + img + width: 100% + height: auto + border-radius: 2px + &__meta + margin-left: 70px + &__title + color: black + font-weight: bold + word-wrap: break-word + line-height: 1.1 + margin-bottom: 4px + &__forks, + &__stargazers + margin-right: 1em + &__forks, + &__stargazers, + &__watchers + display: inline-block + color: #aaa + font-size: 11px + &__description + font-size: 13px + color: #777 + margin-top: 4px + .select2-results__option--highlighted & + &__title + color: white + &__forks, + &__stargazers, + &__description, + &__watchers + color: mix($link-color, white, 30%) diff --git a/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_variables.sass b/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_variables.sass new file mode 100755 index 0000000000..e94242b70a --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/docs/_sass/_variables.sass @@ -0,0 +1 @@ +$lead-font-size: 20px diff --git a/awx/ui/client/lib/select2-bootstrap-theme/docs/css/bootstrap.min.css b/awx/ui/client/lib/select2-bootstrap-theme/docs/css/bootstrap.min.css new file mode 100755 index 0000000000..d65c66b1ba --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/docs/css/bootstrap.min.css @@ -0,0 +1,5 @@ +/*! + * Bootstrap v3.3.5 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.33px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:3;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} \ No newline at end of file diff --git a/awx/ui/client/lib/select2-bootstrap-theme/docs/css/gh-pages.sass b/awx/ui/client/lib/select2-bootstrap-theme/docs/css/gh-pages.sass new file mode 100755 index 0000000000..04eda11729 --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/docs/css/gh-pages.sass @@ -0,0 +1,16 @@ +--- +--- +@import ../../bower_components/bootstrap-sass-official/assets/stylesheets/bootstrap/variables +@import variables +@import extends +@import mixins + +@import alert +@import anchorjs +@import buttons +@import common +@import footer +@import home +@import jumbotron +@import navbar +@import select2-result-repository diff --git a/awx/ui/client/lib/select2-bootstrap-theme/docs/css/select2-bootstrap.css b/awx/ui/client/lib/select2-bootstrap-theme/docs/css/select2-bootstrap.css new file mode 100755 index 0000000000..a2385b5440 --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/docs/css/select2-bootstrap.css @@ -0,0 +1,598 @@ +/*! Select2 Bootstrap Theme v0.1.0-beta.4 | MIT License | github.com/select2/select2-bootstrap-theme */ +.select2-container--bootstrap { + display: block; + /*------------------------------------*\ + #COMMON STYLES + \*------------------------------------*/ + /** + * Search field in the Select2 dropdown. + */ + /** + * No outline for all search fields - in the dropdown + * and inline in multi Select2s. + */ + /** + * Adjust Select2's choices hover and selected styles to match + * Bootstrap 3's default dropdown styles. + * + * @see http://getbootstrap.com/components/#dropdowns + */ + /** + * Clear the selection. + */ + /** + * Address disabled Select2 styles. + * + * @see https://select2.github.io/examples.html#disabled + * @see http://getbootstrap.com/css/#forms-control-disabled + */ + /*------------------------------------*\ + #DROPDOWN + \*------------------------------------*/ + /** + * Dropdown border color and box-shadow. + */ + /** + * Limit the dropdown height. + */ + /*------------------------------------*\ + #SINGLE SELECT2 + \*------------------------------------*/ + /*------------------------------------*\ + #MULTIPLE SELECT2 + \*------------------------------------*/ + /** + * Address Bootstrap control sizing classes + * + * 1. Reset Bootstrap defaults. + * 2. Adjust the dropdown arrow button icon position. + * + * @see http://getbootstrap.com/css/#forms-control-sizes + */ + /* 1 */ + /*------------------------------------*\ + #RTL SUPPORT + \*------------------------------------*/ +} +.select2-container--bootstrap .select2-selection { + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + background-color: #fff; + border: 1px solid #ccc; + border-radius: 4px; + color: #555555; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + outline: 0; +} +.select2-container--bootstrap .select2-search--dropdown .select2-search__field { + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + background-color: #fff; + border: 1px solid #ccc; + border-radius: 4px; + color: #555555; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; +} +.select2-container--bootstrap .select2-search__field { + outline: 0; + /* Firefox 18- */ + /** + * Firefox 19+ + * + * @see http://stackoverflow.com/questions/24236240/color-for-styled-placeholder-text-is-muted-in-firefox + */ +} +.select2-container--bootstrap .select2-search__field::-webkit-input-placeholder { + color: #999; +} +.select2-container--bootstrap .select2-search__field:-moz-placeholder { + color: #999; +} +.select2-container--bootstrap .select2-search__field::-moz-placeholder { + color: #999; + opacity: 1; +} +.select2-container--bootstrap .select2-search__field:-ms-input-placeholder { + color: #999; +} +.select2-container--bootstrap .select2-results__option { + /** + * Disabled results. + * + * @see https://select2.github.io/examples.html#disabled-results + */ + /** + * Hover state. + */ + /** + * Selected state. + */ +} +.select2-container--bootstrap .select2-results__option[role=group] { + padding: 0; +} +.select2-container--bootstrap .select2-results__option[aria-disabled=true] { + color: #777777; + cursor: not-allowed; +} +.select2-container--bootstrap .select2-results__option[aria-selected=true] { + background-color: #f5f5f5; + color: #262626; +} +.select2-container--bootstrap .select2-results__option--highlighted[aria-selected] { + background-color: #337ab7; + color: #fff; +} +.select2-container--bootstrap .select2-results__option .select2-results__option { + padding: 6px 12px; +} +.select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__group { + padding-left: 0; +} +.select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__option { + margin-left: -12px; + padding-left: 24px; +} +.select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -24px; + padding-left: 36px; +} +.select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -36px; + padding-left: 48px; +} +.select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -48px; + padding-left: 60px; +} +.select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -60px; + padding-left: 72px; +} +.select2-container--bootstrap .select2-results__group { + color: #777777; + display: block; + padding: 6px 12px; + font-size: 12px; + line-height: 1.428571429; + white-space: nowrap; +} +.select2-container--bootstrap.select2-container--focus .select2-selection, .select2-container--bootstrap.select2-container--open .select2-selection { + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); + -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; + -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; + transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; + border-color: #66afe9; +} +.select2-container--bootstrap.select2-container--open { + /** + * Make the dropdown arrow point up while the dropdown is visible. + */ + /** + * Handle border radii of the container when the dropdown is showing. + */ +} +.select2-container--bootstrap.select2-container--open .select2-selection .select2-selection__arrow b { + border-color: transparent transparent #999 transparent; + border-width: 0 4px 4px 4px; +} +.select2-container--bootstrap.select2-container--open.select2-container--below .select2-selection { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + border-bottom-color: transparent; +} +.select2-container--bootstrap.select2-container--open.select2-container--above .select2-selection { + border-top-right-radius: 0; + border-top-left-radius: 0; + border-top-color: transparent; +} +.select2-container--bootstrap .select2-selection__clear { + color: #999; + cursor: pointer; + float: right; + font-weight: bold; + margin-right: 10px; +} +.select2-container--bootstrap .select2-selection__clear:hover { + color: #333; +} +.select2-container--bootstrap.select2-container--disabled .select2-selection { + border-color: #ccc; + -webkit-box-shadow: none; + box-shadow: none; +} +.select2-container--bootstrap.select2-container--disabled .select2-selection, +.select2-container--bootstrap.select2-container--disabled .select2-search__field { + cursor: not-allowed; +} +.select2-container--bootstrap.select2-container--disabled .select2-selection, +.select2-container--bootstrap.select2-container--disabled .select2-selection--multiple .select2-selection__choice { + background-color: #eeeeee; +} +.select2-container--bootstrap.select2-container--disabled .select2-selection__clear, +.select2-container--bootstrap.select2-container--disabled .select2-selection--multiple .select2-selection__choice__remove { + display: none; +} +.select2-container--bootstrap .select2-dropdown { + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + border-color: #66afe9; + overflow-x: hidden; + margin-top: -1px; +} +.select2-container--bootstrap .select2-dropdown--above { + margin-top: 1px; +} +.select2-container--bootstrap .select2-results > .select2-results__options { + max-height: 200px; + overflow-y: auto; +} +.select2-container--bootstrap .select2-selection--single { + height: 34px; + line-height: 1.428571429; + padding: 6px 24px 6px 12px; + /** + * Adjust the single Select2's dropdown arrow button appearance. + */ +} +.select2-container--bootstrap .select2-selection--single .select2-selection__arrow { + position: absolute; + bottom: 0; + right: 12px; + top: 0; + width: 4px; +} +.select2-container--bootstrap .select2-selection--single .select2-selection__arrow b { + border-color: #999 transparent transparent transparent; + border-style: solid; + border-width: 4px 4px 0 4px; + height: 0; + left: 0; + margin-left: -4px; + margin-top: -2px; + position: absolute; + top: 50%; + width: 0; +} +.select2-container--bootstrap .select2-selection--single .select2-selection__rendered { + color: #555555; + padding: 0; +} +.select2-container--bootstrap .select2-selection--single .select2-selection__placeholder { + color: #999; +} +.select2-container--bootstrap .select2-selection--multiple { + min-height: 34px; + /** + * Make Multi Select2's choices match Bootstrap 3's default button styles. + */ + /** + * Minus 2px borders. + */ + /** + * Clear the selection. + */ +} +.select2-container--bootstrap .select2-selection--multiple .select2-selection__rendered { + box-sizing: border-box; + display: block; + line-height: 1.428571429; + list-style: none; + margin: 0; + overflow: hidden; + padding: 0; + width: 100%; + text-overflow: ellipsis; + white-space: nowrap; +} +.select2-container--bootstrap .select2-selection--multiple .select2-selection__placeholder { + color: #999; + float: left; + margin-top: 5px; +} +.select2-container--bootstrap .select2-selection--multiple .select2-selection__choice { + color: #555555; + background: #fff; + border: 1px solid #ccc; + border-radius: 4px; + cursor: default; + float: left; + margin: 5px 0 0 6px; + padding: 0 6px; +} +.select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field { + background: transparent; + padding: 0 12px; + height: 32px; + line-height: 1.428571429; + margin-top: 0; + min-width: 5em; +} +.select2-container--bootstrap .select2-selection--multiple .select2-selection__choice__remove { + color: #999; + cursor: pointer; + display: inline-block; + font-weight: bold; + margin-right: 3px; +} +.select2-container--bootstrap .select2-selection--multiple .select2-selection__choice__remove:hover { + color: #333; +} +.select2-container--bootstrap .select2-selection--multiple .select2-selection__clear { + margin-top: 6px; +} +.select2-container--bootstrap.input-sm, .select2-container--bootstrap.input-lg { + border-radius: 0; + font-size: 12px; + height: auto; + line-height: 1; + padding: 0; +} +.select2-container--bootstrap.input-sm .select2-selection--single, .input-group-sm .select2-container--bootstrap .select2-selection--single, .form-group-sm .select2-container--bootstrap .select2-selection--single { + border-radius: 3px; + font-size: 12px; + height: 30px; + line-height: 1.5; + padding: 5px 22px 5px 10px; + /* 2 */ +} +.select2-container--bootstrap.input-sm .select2-selection--single .select2-selection__arrow b, .input-group-sm .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b, .form-group-sm .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b { + margin-left: -5px; +} +.select2-container--bootstrap.input-sm .select2-selection--multiple, .input-group-sm .select2-container--bootstrap .select2-selection--multiple, .form-group-sm .select2-container--bootstrap .select2-selection--multiple { + min-height: 30px; +} +.select2-container--bootstrap.input-sm .select2-selection--multiple .select2-selection__choice, .input-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice, .form-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice { + font-size: 12px; + line-height: 1.5; + margin: 4px 0 0 5px; + padding: 0 5px; +} +.select2-container--bootstrap.input-sm .select2-selection--multiple .select2-search--inline .select2-search__field, .input-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field, .form-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field { + padding: 0 10px; + font-size: 12px; + height: 28px; + line-height: 1.5; +} +.select2-container--bootstrap.input-sm .select2-selection--multiple .select2-selection__clear, .input-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear, .form-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear { + margin-top: 5px; +} +.select2-container--bootstrap.input-lg .select2-selection--single, .input-group-lg .select2-container--bootstrap .select2-selection--single, .form-group-lg .select2-container--bootstrap .select2-selection--single { + border-radius: 6px; + font-size: 18px; + height: 46px; + line-height: 1.3333333; + padding: 10px 31px 10px 16px; + /* 1 */ +} +.select2-container--bootstrap.input-lg .select2-selection--single .select2-selection__arrow, .input-group-lg .select2-container--bootstrap .select2-selection--single .select2-selection__arrow, .form-group-lg .select2-container--bootstrap .select2-selection--single .select2-selection__arrow { + width: 5px; +} +.select2-container--bootstrap.input-lg .select2-selection--single .select2-selection__arrow b, .input-group-lg .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b, .form-group-lg .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b { + border-width: 5px 5px 0 5px; + margin-left: -5px; + margin-left: -10px; + margin-top: -2.5px; +} +.select2-container--bootstrap.input-lg .select2-selection--multiple, .input-group-lg .select2-container--bootstrap .select2-selection--multiple, .form-group-lg .select2-container--bootstrap .select2-selection--multiple { + min-height: 46px; +} +.select2-container--bootstrap.input-lg .select2-selection--multiple .select2-selection__choice, .input-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice, .form-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice { + font-size: 18px; + line-height: 1.3333333; + border-radius: 4px; + margin: 9px 0 0 8px; + padding: 0 10px; +} +.select2-container--bootstrap.input-lg .select2-selection--multiple .select2-search--inline .select2-search__field, .input-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field, .form-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field { + padding: 0 16px; + font-size: 18px; + height: 44px; + line-height: 1.3333333; +} +.select2-container--bootstrap.input-lg .select2-selection--multiple .select2-selection__clear, .input-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear, .form-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear { + margin-top: 10px; +} +.select2-container--bootstrap.input-lg.select2-container--open .select2-selection--single { + /** + * Make the dropdown arrow point up while the dropdown is visible. + */ +} +.select2-container--bootstrap.input-lg.select2-container--open .select2-selection--single .select2-selection__arrow b { + border-color: transparent transparent #999 transparent; + border-width: 0 5px 5px 5px; +} +.input-group-lg .select2-container--bootstrap.select2-container--open .select2-selection--single { + /** + * Make the dropdown arrow point up while the dropdown is visible. + */ +} +.input-group-lg .select2-container--bootstrap.select2-container--open .select2-selection--single .select2-selection__arrow b { + border-color: transparent transparent #999 transparent; + border-width: 0 5px 5px 5px; +} +.select2-container--bootstrap[dir="rtl"] { + /** + * Single Select2 + * + * 1. Makes sure that .select2-selection__placeholder is positioned + * correctly. + */ + /** + * Multiple Select2 + */ +} +.select2-container--bootstrap[dir="rtl"] .select2-selection--single { + padding-left: 24px; + padding-right: 12px; +} +.select2-container--bootstrap[dir="rtl"] .select2-selection--single .select2-selection__rendered { + padding-right: 0; + padding-left: 0; + text-align: right; + /* 1 */ +} +.select2-container--bootstrap[dir="rtl"] .select2-selection--single .select2-selection__clear { + float: left; +} +.select2-container--bootstrap[dir="rtl"] .select2-selection--single .select2-selection__arrow { + left: 12px; + right: auto; +} +.select2-container--bootstrap[dir="rtl"] .select2-selection--single .select2-selection__arrow b { + margin-left: 0; +} +.select2-container--bootstrap[dir="rtl"] .select2-selection--multiple .select2-selection__choice, +.select2-container--bootstrap[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder { + float: right; +} +.select2-container--bootstrap[dir="rtl"] .select2-selection--multiple .select2-selection__choice { + margin-left: 0; + margin-right: 6px; +} +.select2-container--bootstrap[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { + margin-left: 2px; + margin-right: auto; +} + +/*------------------------------------*\ + #ADDITIONAL GOODIES +\*------------------------------------*/ +/** + * Address Bootstrap's validation states + * + * If a Select2 widget parent has one of Bootstrap's validation state modifier + * classes, adjust Select2's border colors and focus states accordingly. + * You may apply said classes to the Select2 dropdown (body > .select2-container) + * via JavaScript match Bootstraps' to make its styles match. + * + * @see http://getbootstrap.com/css/#forms-control-validation + */ +.has-warning .select2-dropdown, +.has-warning .select2-selection { + border-color: #8a6d3b; +} +.has-warning .select2-container--focus .select2-selection, +.has-warning .select2-container--open .select2-selection { + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; + border-color: #66512c; +} +.has-warning.select2-drop-active { + border-color: #66512c; +} +.has-warning.select2-drop-active.select2-drop.select2-drop-above { + border-top-color: #66512c; +} + +.has-error .select2-dropdown, +.has-error .select2-selection { + border-color: #a94442; +} +.has-error .select2-container--focus .select2-selection, +.has-error .select2-container--open .select2-selection { + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; + border-color: #843534; +} +.has-error.select2-drop-active { + border-color: #843534; +} +.has-error.select2-drop-active.select2-drop.select2-drop-above { + border-top-color: #843534; +} + +.has-success .select2-dropdown, +.has-success .select2-selection { + border-color: #3c763d; +} +.has-success .select2-container--focus .select2-selection, +.has-success .select2-container--open .select2-selection { + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; + border-color: #2b542c; +} +.has-success.select2-drop-active { + border-color: #2b542c; +} +.has-success.select2-drop-active.select2-drop.select2-drop-above { + border-top-color: #2b542c; +} + +/** + * Select2 widgets in Bootstrap Input Groups + * + * When Select2 widgets are combined with other elements using Bootstraps + * "Input Group" component, we don't want specific edges of the Select2 + * container to have a border-radius. + * + * Use .select2-bootstrap-prepend and .select2-bootstrap-append on + * a Bootstrap 3 .input-group to let the contained Select2 widget know which + * edges should not be rounded as they are directly followed by another element. + * + * @see http://getbootstrap.com/components/#input-groups + */ +/** + * Mimick Bootstraps .input-group .form-control styles. + * + * @see https://github.com/twbs/bootstrap/blob/master/less/input-groups.less + */ +.input-group .select2-container--bootstrap { + display: table; + table-layout: fixed; + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0; +} + +.input-group.select2-bootstrap-prepend .select2-container--bootstrap .select2-selection { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.input-group.select2-bootstrap-append .select2-container--bootstrap .select2-selection { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} + +/** + * Adjust alignment of Bootstrap buttons in Bootstrap Input Groups to address + * Multi Select2's height which - depending on how many elements have been selected - + * may grow taller than its initial size. + * + * @see http://getbootstrap.com/components/#input-groups + */ +.select2-bootstrap-append .select2-container--bootstrap, +.select2-bootstrap-append .input-group-btn, +.select2-bootstrap-append .input-group-btn .btn, +.select2-bootstrap-prepend .select2-container--bootstrap, +.select2-bootstrap-prepend .input-group-btn, +.select2-bootstrap-prepend .input-group-btn .btn { + vertical-align: top; +} + +/** + * Temporary fix for https://github.com/select2/select2-bootstrap-theme/issues/9 + * + * Provides `!important` for certain properties of the class applied to the + * original ` + + {% include select2-select.html %} + +
+
+ +
+
+
+
+ + + + +
+
+
+ +

Select2 Bootstrap Theme

+ +

A Select2 v4 theme built with Bootstrap 3 variables and mixins.

+ + Demonstrations +
+
+ +{% include footer.html %} + +{% include scripts.html %} + diff --git a/awx/ui/client/lib/select2-bootstrap-theme/docs/js/anchor.min.js b/awx/ui/client/lib/select2-bootstrap-theme/docs/js/anchor.min.js new file mode 100644 index 0000000000..68c3cb7073 --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/docs/js/anchor.min.js @@ -0,0 +1,6 @@ +/*! + * AnchorJS - v1.1.1 - 2015-05-23 + * https://github.com/bryanbraun/anchorjs + * Copyright (c) 2015 Bryan Braun; Licensed MIT + */ +function AnchorJS(A){"use strict";this.options=A||{},this._applyRemainingDefaultOptions=function(A){this.options.icon=this.options.hasOwnProperty("icon")?A.icon:"",this.options.visible=this.options.hasOwnProperty("visible")?A.visible:"hover",this.options.placement=this.options.hasOwnProperty("placement")?A.placement:"right",this.options.class=this.options.hasOwnProperty("class")?A.class:""},this._applyRemainingDefaultOptions(A),this.add=function(A){var e,t,o,n,i,s,a,l,c,r,h,g,B,Q;if(this._applyRemainingDefaultOptions(this.options),A){if("string"!=typeof A)throw new Error("The selector provided to AnchorJS was invalid.")}else A="h1, h2, h3, h4, h5, h6";if(e=document.querySelectorAll(A),0===e.length)return!1;for(this._addBaselineStyles(),t=document.querySelectorAll("[id]"),o=[].map.call(t,function(A){return A.id}),i=0;i',B=document.createElement("div"),B.innerHTML=g,Q=B.childNodes,"always"===this.options.visible&&(Q[0].style.opacity="1"),""===this.options.icon&&(Q[0].style.fontFamily="anchorjs-icons",Q[0].style.fontStyle="normal",Q[0].style.fontVariant="normal",Q[0].style.fontWeight="normal"),"left"===this.options.placement?(Q[0].style.position="absolute",Q[0].style.marginLeft="-1em",Q[0].style.paddingRight="0.5em",e[i].insertBefore(Q[0],e[i].firstChild)):(Q[0].style.paddingLeft="0.375em",e[i].appendChild(Q[0]))}return this},this.remove=function(A){for(var e,t=document.querySelectorAll(A),o=0;othis.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.5",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.5",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),c.isInStateTrue()?void 0:(clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide())},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.5",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.5",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.5",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file diff --git a/awx/ui/client/lib/select2-bootstrap-theme/docs/js/respond.min.js b/awx/ui/client/lib/select2-bootstrap-theme/docs/js/respond.min.js new file mode 100755 index 0000000000..80a7b69dcc --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/docs/js/respond.min.js @@ -0,0 +1,5 @@ +/*! Respond.js v1.4.2: min/max-width media query polyfill * Copyright 2013 Scott Jehl + * Licensed under https://github.com/scottjehl/Respond/blob/master/LICENSE-MIT + * */ + +!function(a){"use strict";a.matchMedia=a.matchMedia||function(a){var b,c=a.documentElement,d=c.firstElementChild||c.firstChild,e=a.createElement("body"),f=a.createElement("div");return f.id="mq-test-1",f.style.cssText="position:absolute;top:-100em",e.style.background="none",e.appendChild(f),function(a){return f.innerHTML='­',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){"use strict";function b(){u(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}(),f=function(a,b){var c=e();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))};if(c.ajax=f,c.queue=d,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\([\s]*min\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/,maxw:/\([\s]*max\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/},c.mediaQueriesSupported=a.matchMedia&&null!==a.matchMedia("only all")&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var g,h,i,j=a.document,k=j.documentElement,l=[],m=[],n=[],o={},p=30,q=j.getElementsByTagName("head")[0]||k,r=j.getElementsByTagName("base")[0],s=q.getElementsByTagName("link"),t=function(){var a,b=j.createElement("div"),c=j.body,d=k.style.fontSize,e=c&&c.style.fontSize,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=f=j.createElement("body"),c.style.background="none"),k.style.fontSize="100%",c.style.fontSize="100%",c.appendChild(b),f&&k.insertBefore(c,k.firstChild),a=b.offsetWidth,f?k.removeChild(c):c.removeChild(b),k.style.fontSize=d,e&&(c.style.fontSize=e),a=i=parseFloat(a)},u=function(b){var c="clientWidth",d=k[c],e="CSS1Compat"===j.compatMode&&d||j.body[c]||d,f={},o=s[s.length-1],r=(new Date).getTime();if(b&&g&&p>r-g)return a.clearTimeout(h),h=a.setTimeout(u,p),void 0;g=r;for(var v in l)if(l.hasOwnProperty(v)){var w=l[v],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?i||t():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?i||t():1)),w.hasquery&&(z&&A||!(z||e>=x)||!(A||y>=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(m[w.rules]))}for(var C in n)n.hasOwnProperty(C)&&n[C]&&n[C].parentNode===q&&q.removeChild(n[C]);n.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=j.createElement("style"),F=f[D].join("\n");E.type="text/css",E.media=D,q.insertBefore(E,o.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(j.createTextNode(F)),n.push(E)}},v=function(a,b,d){var e=a.replace(c.regex.keyframes,"").match(c.regex.media),f=e&&e.length||0;b=b.substring(0,b.lastIndexOf("/"));var g=function(a){return a.replace(c.regex.urls,"$1"+b+"$2$3")},h=!f&&d;b.length&&(b+="/"),h&&(f=1);for(var i=0;f>i;i++){var j,k,n,o;h?(j=d,m.push(g(a))):(j=e[i].match(c.regex.findStyles)&&RegExp.$1,m.push(RegExp.$2&&g(RegExp.$2))),n=j.split(","),o=n.length;for(var p=0;o>p;p++)k=n[p],l.push({media:k.split("(")[0].match(c.regex.only)&&RegExp.$2||"all",rules:m.length-1,hasquery:k.indexOf("(")>-1,minw:k.match(c.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:k.match(c.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}u()},w=function(){if(d.length){var b=d.shift();f(b.href,function(c){v(c,b.href,b.media),o[b.href]=!0,a.setTimeout(function(){w()},0)})}},x=function(){for(var b=0;b .select2-results__options { + max-height: 200px; + overflow-y: auto; + } + + + + + + /*------------------------------------*\ + #SINGLE SELECT2 + \*------------------------------------*/ + + .select2-selection--single { + height: @input-height-base; + line-height: @line-height-base; + padding: @padding-base-vertical @padding-base-horizontal + @caret-width-base*3 @padding-base-vertical @padding-base-horizontal; + + /** + * Adjust the single Select2's dropdown arrow button appearance. + */ + + .select2-selection__arrow { + position: absolute; + bottom: 0; + right: @padding-base-horizontal; + top: 0; + width: @caret-width-base; + + b { + border-color: @dropdown-arrow-color transparent transparent transparent; + border-style: solid; + border-width: @caret-width-base @caret-width-base 0 @caret-width-base; + height: 0; + left: 0; + margin-left: -@caret-width-base; + margin-top: -@caret-width-base/2; + position: absolute; + top: 50%; + width: 0; + } + } + + .select2-selection__rendered { + color: @input-color; + padding: 0; + } + + .select2-selection__placeholder { + color: @input-color-placeholder; + } + } + + + + + + /*------------------------------------*\ + #MULTIPLE SELECT2 + \*------------------------------------*/ + + .select2-selection--multiple { + min-height: @input-height-base; + + .select2-selection__rendered { + box-sizing: border-box; + display: block; + line-height: @line-height-base; + list-style: none; + margin: 0; + overflow: hidden; + padding: 0; + width: 100%; + text-overflow: ellipsis; + white-space: nowrap; + } + + .select2-selection__placeholder { + color: @input-color-placeholder; + float: left; + margin-top: 5px; + } + + /** + * Make Multi Select2's choices match Bootstrap 3's default button styles. + */ + + .select2-selection__choice { + color: @input-color; + background: @btn-default-bg; + border: 1px solid @btn-default-border; + border-radius: 4px; + cursor: default; + float: left; + margin: (@padding-base-vertical - 1) 0 0 @padding-base-horizontal/2; + padding: 0 @padding-base-vertical; + } + + /** + * Minus 2px borders. + */ + + .select2-search--inline { + .select2-search__field { + background: transparent; + padding: 0 @padding-base-horizontal; + height: @input-height-base - 2; + line-height: @line-height-base; + margin-top: 0; + min-width: 5em; + } + } + + .select2-selection__choice__remove { + color: #999; + cursor: pointer; + display: inline-block; + font-weight: bold; + margin-right: @padding-base-vertical / 2; + + &:hover { + color: #333; + } + } + + /** + * Clear the selection. + */ + + .select2-selection__clear { + margin-top: @padding-base-vertical; + } + } + + + + + + /** + * Address Bootstrap control sizing classes + * + * 1. Reset Bootstrap defaults. + * 2. Adjust the dropdown arrow button icon position. + * + * @see http://getbootstrap.com/css/#forms-control-sizes + */ + + /* 1 */ + &.input-sm, + &.input-lg { + border-radius: 0; + font-size: 12px; + height: auto; + line-height: 1; + padding: 0; + } + + &.input-sm, + .input-group-sm &, + .form-group-sm & { + .select2-selection--single { + border-radius: @border-radius-small; + font-size: @font-size-small; + height: @input-height-small; + line-height: @line-height-small; + padding: @padding-small-vertical @padding-small-horizontal + @caret-width-base*3 @padding-small-vertical @padding-small-horizontal; + + /* 2 */ + .select2-selection__arrow b { + margin-left: -@padding-small-vertical; + } + } + + .select2-selection--multiple { + min-height: @input-height-small; + + .select2-selection__choice { + font-size: @font-size-small; + line-height: @line-height-small; + margin: (@padding-small-vertical - 1) 0 0 @padding-small-horizontal/2; + padding: 0 @padding-small-vertical; + } + + .select2-search--inline .select2-search__field { + padding: 0 @padding-small-horizontal; + font-size: @font-size-small; + height: @input-height-small - 2; + line-height: @line-height-small; + } + + .select2-selection__clear { + margin-top: @padding-small-vertical; + } + } + } + + &.input-lg, + .input-group-lg &, + .form-group-lg & { + .select2-selection--single { + border-radius: @border-radius-large; + font-size: @font-size-large; + height: @input-height-large; + line-height: @line-height-large; + padding: @padding-large-vertical @padding-large-horizontal + @caret-width-large*3 @padding-large-vertical @padding-large-horizontal; + + /* 1 */ + .select2-selection__arrow { + width: @caret-width-large; + + b { + border-width: @caret-width-large @caret-width-large 0 @caret-width-large; + margin-left: -@caret-width-large; + margin-left: -@padding-large-vertical; + margin-top: -@caret-width-large/2; + } + } + } + + .select2-selection--multiple { + min-height: @input-height-large; + + .select2-selection__choice { + font-size: @font-size-large; + line-height: @line-height-large; + border-radius: 4px; + margin: (@padding-large-vertical - 1) 0 0 @padding-large-horizontal/2; + padding: 0 @padding-large-vertical; + } + + .select2-search--inline .select2-search__field { + padding: 0 @padding-large-horizontal; + font-size: @font-size-large; + height: @input-height-large - 2; + line-height: @line-height-large; + } + + .select2-selection__clear { + margin-top: @padding-large-vertical; + } + } + } + + &.input-lg.select2-container--open { + .dropdown-arrow; + } + + .input-group-lg & { + &.select2-container--open { + .dropdown-arrow; + } + } + + + + + + /*------------------------------------*\ + #RTL SUPPORT + \*------------------------------------*/ + + &[dir="rtl"] { + + /** + * Single Select2 + * + * 1. Makes sure that .select2-selection__placeholder is positioned + * correctly. + */ + + .select2-selection--single { + padding-left: @padding-base-horizontal + @caret-width-base*3; + padding-right: @padding-base-horizontal; + .select2-selection__rendered { + padding-right: 0; + padding-left: 0; + text-align: right; /* 1 */ + } + + .select2-selection__clear { + float: left; + } + + .select2-selection__arrow { + left: @padding-base-horizontal; + right: auto; + + b { + margin-left: 0; + } + } + } + + /** + * Multiple Select2 + */ + + .select2-selection--multiple { + .select2-selection__choice, + .select2-selection__placeholder { + float: right; + } + + .select2-selection__choice { + margin-left: 0; + margin-right: @padding-base-horizontal/2; + } + + .select2-selection__choice__remove { + margin-left: 2px; + margin-right: auto; + } + } + } +} + + + + + +/*------------------------------------*\ + #ADDITIONAL GOODIES +\*------------------------------------*/ + +/** + * Address Bootstrap's validation states + * + * If a Select2 widget parent has one of Bootstrap's validation state modifier + * classes, adjust Select2's border colors and focus states accordingly. + * You may apply said classes to the Select2 dropdown (body > .select2-container) + * via JavaScript match Bootstraps' to make its styles match. + * + * @see http://getbootstrap.com/css/#forms-control-validation + */ + +.has-warning { + .validation-state-focus(@state-warning-text); +} + +.has-error { + .validation-state-focus(@state-danger-text); +} + +.has-success { + .validation-state-focus(@state-success-text); +} + +/** + * Select2 widgets in Bootstrap Input Groups + * + * When Select2 widgets are combined with other elements using Bootstraps + * "Input Group" component, we don't want specific edges of the Select2 + * container to have a border-radius. + * + * Use .select2-bootstrap-prepend and .select2-bootstrap-append on + * a Bootstrap 3 .input-group to let the contained Select2 widget know which + * edges should not be rounded as they are directly followed by another element. + * + * @see http://getbootstrap.com/components/#input-groups + */ + +/** + * Mimick Bootstraps .input-group .form-control styles. + * + * @see https://github.com/twbs/bootstrap/blob/master/less/input-groups.less + */ + +.input-group .select2-container--bootstrap { + display: table; + table-layout: fixed; + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0; +} + +.input-group.select2-bootstrap-prepend .select2-container--bootstrap { + .select2-selection { + .border-left-radius(0); + } +} + +.input-group.select2-bootstrap-append .select2-container--bootstrap { + .select2-selection { + .border-right-radius(0); + } +} + +/** + * Adjust alignment of Bootstrap buttons in Bootstrap Input Groups to address + * Multi Select2's height which - depending on how many elements have been selected - + * may grow taller than its initial size. + * + * @see http://getbootstrap.com/components/#input-groups + */ + +.select2-bootstrap-append, +.select2-bootstrap-prepend { + .select2-container--bootstrap, + .input-group-btn, + .input-group-btn .btn { + vertical-align: top; + } +} + +/** + * Temporary fix for https://github.com/select2/select2-bootstrap-theme/issues/9 + * + * Provides `!important` for certain properties of the class applied to the + * original `` element to hide it. + * + * @see https://github.com/select2/select2/pull/3301 + * @see https://github.com/fk/select2/commit/31830c7b32cb3d8e1b12d5b434dee40a6e753ada + */ + +.form-control.select2-hidden-accessible { + position: absolute !important; + width: 1px !important; +} + +/** + * Display override for inline forms +*/ + +.form-inline .select2-container--bootstrap { + display: inline-block; +} diff --git a/awx/ui/client/lib/select2-bootstrap-theme/tests/less_test.js b/awx/ui/client/lib/select2-bootstrap-theme/tests/less_test.js new file mode 100755 index 0000000000..1f9878b560 --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/tests/less_test.js @@ -0,0 +1,25 @@ +exports.compileLess = function(test){ + var grunt = require('grunt'), + fs = require('fs'), + jsdiff = require('diff'), + t = test, + filename = 'select2-bootstrap.css', + patchfile = 'tests/support/less.patch', + + child = grunt.util.spawn({ + cmd: 'lessc', + args: ['--verbose', 'src/build.less', 'tmp/'+filename] + }, function() { + var readFile = function(name) { return fs.readFileSync(name, {encoding: 'utf8'}) }, + orig = readFile('dist/'+filename), + generated = readFile('tmp/'+filename), + patch = readFile(patchfile), + diff = jsdiff.createPatch(filename, orig, generated); + + // Save the output for future tests. + // fs.writeFileSync(patchfile, diff); + + t.equal(patch, diff); + t.done(); + }); +}; diff --git a/awx/ui/client/lib/select2-bootstrap-theme/tests/scss_test.js b/awx/ui/client/lib/select2-bootstrap-theme/tests/scss_test.js new file mode 100755 index 0000000000..0fa5353f80 --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/tests/scss_test.js @@ -0,0 +1,25 @@ +exports.compileScss = function(test){ + var grunt = require('grunt'), + fs = require('fs'), + jsdiff = require('diff'), + t = test, + filename = 'select2-bootstrap.css', + patchfile = 'tests/support/scss.patch', + + child = grunt.util.spawn({ + cmd: 'grunt', + args: ['sass:test'] + }, function() { + var readFile = function(name) { return fs.readFileSync(name, {encoding: 'utf8'}) }, + orig = readFile('dist/'+filename), + generated = readFile('tmp/'+filename), + patch = readFile(patchfile), + diff = jsdiff.createPatch(filename, orig, generated); + + // Save the output for future tests. + // fs.writeFileSync(patchfile, diff); + + t.equal(patch, diff); + t.done(); + }); +}; diff --git a/awx/ui/client/lib/select2-bootstrap-theme/tests/support/less.patch b/awx/ui/client/lib/select2-bootstrap-theme/tests/support/less.patch new file mode 100755 index 0000000000..c8e69cb88b --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/tests/support/less.patch @@ -0,0 +1,610 @@ +Index: select2-bootstrap.css +=================================================================== +--- select2-bootstrap.css ++++ select2-bootstrap.css +@@ -1,65 +1,79 @@ + /*! Select2 Bootstrap Theme v0.1.0-beta.4 | MIT License | github.com/select2/select2-bootstrap-theme */ + .select2-container--bootstrap { + display: block; + /*------------------------------------*\ ++ #COMMON STYLES ++ \*------------------------------------*/ ++ +- #COMMON STYLES +- \*------------------------------------*/ + /** ++ * Search field in the Select2 dropdown. ++ */ ++ +- * Search field in the Select2 dropdown. +- */ + /** ++ * No outline for all search fields - in the dropdown ++ * and inline in multi Select2s. ++ */ ++ +- * No outline for all search fields - in the dropdown +- * and inline in multi Select2s. +- */ + /** ++ * Adjust Select2's choices hover and selected styles to match ++ * Bootstrap 3's default dropdown styles. ++ * ++ * @see http://getbootstrap.com/components/#dropdowns ++ */ ++ +- * Adjust Select2's choices hover and selected styles to match +- * Bootstrap 3's default dropdown styles. +- * +- * @see http://getbootstrap.com/components/#dropdowns +- */ + /** ++ * Clear the selection. ++ */ ++ +- * Clear the selection. +- */ + /** ++ * Address disabled Select2 styles. ++ * ++ * @see https://select2.github.io/examples.html#disabled ++ * @see http://getbootstrap.com/css/#forms-control-disabled ++ */ ++ +- * Address disabled Select2 styles. +- * +- * @see https://select2.github.io/examples.html#disabled +- * @see http://getbootstrap.com/css/#forms-control-disabled +- */ + /*------------------------------------*\ ++ #DROPDOWN ++ \*------------------------------------*/ ++ +- #DROPDOWN +- \*------------------------------------*/ + /** ++ * Dropdown border color and box-shadow. ++ */ ++ +- * Dropdown border color and box-shadow. +- */ + /** ++ * Limit the dropdown height. ++ */ ++ +- * Limit the dropdown height. +- */ + /*------------------------------------*\ ++ #SINGLE SELECT2 ++ \*------------------------------------*/ ++ +- #SINGLE SELECT2 +- \*------------------------------------*/ + /*------------------------------------*\ ++ #MULTIPLE SELECT2 ++ \*------------------------------------*/ ++ +- #MULTIPLE SELECT2 +- \*------------------------------------*/ + /** ++ * Address Bootstrap control sizing classes ++ * ++ * 1. Reset Bootstrap defaults. ++ * 2. Adjust the dropdown arrow button icon position. ++ * ++ * @see http://getbootstrap.com/css/#forms-control-sizes ++ */ ++ +- * Address Bootstrap control sizing classes +- * +- * 1. Reset Bootstrap defaults. +- * 2. Adjust the dropdown arrow button icon position. +- * +- * @see http://getbootstrap.com/css/#forms-control-sizes +- */ + /* 1 */ ++ + /*------------------------------------*\ ++ #RTL SUPPORT ++ \*------------------------------------*/ ++ +- #RTL SUPPORT +- \*------------------------------------*/ + } + .select2-container--bootstrap .select2-selection { + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); ++ background-color: #ffffff; ++ border: 1px solid #cccccc; +- background-color: #fff; +- border: 1px solid #ccc; + border-radius: 4px; + color: #555555; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; +@@ -67,49 +81,54 @@ + } + .select2-container--bootstrap .select2-search--dropdown .select2-search__field { + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); ++ background-color: #ffffff; ++ border: 1px solid #cccccc; +- background-color: #fff; +- border: 1px solid #ccc; + border-radius: 4px; + color: #555555; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + } + .select2-container--bootstrap .select2-search__field { + outline: 0; + /* Firefox 18- */ ++ + /** ++ * Firefox 19+ ++ * ++ * @see http://stackoverflow.com/questions/24236240/color-for-styled-placeholder-text-is-muted-in-firefox ++ */ ++ +- * Firefox 19+ +- * +- * @see http://stackoverflow.com/questions/24236240/color-for-styled-placeholder-text-is-muted-in-firefox +- */ + } + .select2-container--bootstrap .select2-search__field::-webkit-input-placeholder { ++ color: #999999; +- color: #999; + } + .select2-container--bootstrap .select2-search__field:-moz-placeholder { ++ color: #999999; +- color: #999; + } + .select2-container--bootstrap .select2-search__field::-moz-placeholder { ++ color: #999999; +- color: #999; + opacity: 1; + } + .select2-container--bootstrap .select2-search__field:-ms-input-placeholder { ++ color: #999999; +- color: #999; + } + .select2-container--bootstrap .select2-results__option { + /** ++ * Disabled results. ++ * ++ * @see https://select2.github.io/examples.html#disabled-results ++ */ ++ +- * Disabled results. +- * +- * @see https://select2.github.io/examples.html#disabled-results +- */ + /** ++ * Hover state. ++ */ ++ +- * Hover state. +- */ + /** ++ * Selected state. ++ */ ++ +- * Selected state. +- */ + } + .select2-container--bootstrap .select2-results__option[role=group] { + padding: 0; + } +@@ -122,9 +141,9 @@ + color: #262626; + } + .select2-container--bootstrap .select2-results__option--highlighted[aria-selected] { + background-color: #337ab7; ++ color: #ffffff; +- color: #fff; + } + .select2-container--bootstrap .select2-results__option .select2-results__option { + padding: 6px 12px; + } +@@ -158,9 +177,10 @@ + font-size: 12px; + line-height: 1.428571429; + white-space: nowrap; + } ++.select2-container--bootstrap.select2-container--focus .select2-selection, ++.select2-container--bootstrap.select2-container--open .select2-selection { +-.select2-container--bootstrap.select2-container--focus .select2-selection, .select2-container--bootstrap.select2-container--open .select2-selection { + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); + -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; + -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; +@@ -168,16 +188,18 @@ + border-color: #66afe9; + } + .select2-container--bootstrap.select2-container--open { + /** ++ * Make the dropdown arrow point up while the dropdown is visible. ++ */ ++ +- * Make the dropdown arrow point up while the dropdown is visible. +- */ + /** ++ * Handle border radii of the container when the dropdown is showing. ++ */ ++ +- * Handle border radii of the container when the dropdown is showing. +- */ + } + .select2-container--bootstrap.select2-container--open .select2-selection .select2-selection__arrow b { ++ border-color: transparent transparent #999999 transparent; +- border-color: transparent transparent #999 transparent; + border-width: 0 4px 4px 4px; + } + .select2-container--bootstrap.select2-container--open.select2-container--below .select2-selection { + border-bottom-right-radius: 0; +@@ -189,9 +211,9 @@ + border-top-left-radius: 0; + border-top-color: transparent; + } + .select2-container--bootstrap .select2-selection__clear { ++ color: #999999; +- color: #999; + cursor: pointer; + float: right; + font-weight: bold; + margin-right: 10px; +@@ -199,9 +221,9 @@ + .select2-container--bootstrap .select2-selection__clear:hover { + color: #333; + } + .select2-container--bootstrap.select2-container--disabled .select2-selection { ++ border-color: #cccccc; +- border-color: #ccc; + -webkit-box-shadow: none; + box-shadow: none; + } + .select2-container--bootstrap.select2-container--disabled .select2-selection, +@@ -234,10 +256,11 @@ + height: 34px; + line-height: 1.428571429; + padding: 6px 24px 6px 12px; + /** ++ * Adjust the single Select2's dropdown arrow button appearance. ++ */ ++ +- * Adjust the single Select2's dropdown arrow button appearance. +- */ + } + .select2-container--bootstrap .select2-selection--single .select2-selection__arrow { + position: absolute; + bottom: 0; +@@ -245,9 +268,9 @@ + top: 0; + width: 4px; + } + .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b { ++ border-color: #999999 transparent transparent transparent; +- border-color: #999 transparent transparent transparent; + border-style: solid; + border-width: 4px 4px 0 4px; + height: 0; + left: 0; +@@ -261,21 +284,24 @@ + color: #555555; + padding: 0; + } + .select2-container--bootstrap .select2-selection--single .select2-selection__placeholder { ++ color: #999999; +- color: #999; + } + .select2-container--bootstrap .select2-selection--multiple { + min-height: 34px; + /** ++ * Make Multi Select2's choices match Bootstrap 3's default button styles. ++ */ ++ +- * Make Multi Select2's choices match Bootstrap 3's default button styles. +- */ + /** ++ * Minus 2px borders. ++ */ ++ +- * Minus 2px borders. +- */ + /** ++ * Clear the selection. ++ */ ++ +- * Clear the selection. +- */ + } + .select2-container--bootstrap .select2-selection--multiple .select2-selection__rendered { + box-sizing: border-box; + display: block; +@@ -288,16 +314,16 @@ + text-overflow: ellipsis; + white-space: nowrap; + } + .select2-container--bootstrap .select2-selection--multiple .select2-selection__placeholder { ++ color: #999999; +- color: #999; + float: left; + margin-top: 5px; + } + .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice { + color: #555555; ++ background: #ffffff; ++ border: 1px solid #cccccc; +- background: #fff; +- border: 1px solid #ccc; + border-radius: 4px; + cursor: default; + float: left; + margin: 5px 0 0 6px; +@@ -323,108 +349,141 @@ + } + .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear { + margin-top: 6px; + } ++.select2-container--bootstrap.input-sm, ++.select2-container--bootstrap.input-lg { +-.select2-container--bootstrap.input-sm, .select2-container--bootstrap.input-lg { + border-radius: 0; + font-size: 12px; + height: auto; + line-height: 1; + padding: 0; + } ++.select2-container--bootstrap.input-sm .select2-selection--single, ++.input-group-sm .select2-container--bootstrap .select2-selection--single, ++.form-group-sm .select2-container--bootstrap .select2-selection--single { +-.select2-container--bootstrap.input-sm .select2-selection--single, .input-group-sm .select2-container--bootstrap .select2-selection--single, .form-group-sm .select2-container--bootstrap .select2-selection--single { + border-radius: 3px; + font-size: 12px; + height: 30px; + line-height: 1.5; + padding: 5px 22px 5px 10px; + /* 2 */ ++ + } ++.select2-container--bootstrap.input-sm .select2-selection--single .select2-selection__arrow b, ++.input-group-sm .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b, ++.form-group-sm .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b { +-.select2-container--bootstrap.input-sm .select2-selection--single .select2-selection__arrow b, .input-group-sm .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b, .form-group-sm .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b { + margin-left: -5px; + } ++.select2-container--bootstrap.input-sm .select2-selection--multiple, ++.input-group-sm .select2-container--bootstrap .select2-selection--multiple, ++.form-group-sm .select2-container--bootstrap .select2-selection--multiple { +-.select2-container--bootstrap.input-sm .select2-selection--multiple, .input-group-sm .select2-container--bootstrap .select2-selection--multiple, .form-group-sm .select2-container--bootstrap .select2-selection--multiple { + min-height: 30px; + } ++.select2-container--bootstrap.input-sm .select2-selection--multiple .select2-selection__choice, ++.input-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice, ++.form-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice { +-.select2-container--bootstrap.input-sm .select2-selection--multiple .select2-selection__choice, .input-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice, .form-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice { + font-size: 12px; + line-height: 1.5; + margin: 4px 0 0 5px; + padding: 0 5px; + } ++.select2-container--bootstrap.input-sm .select2-selection--multiple .select2-search--inline .select2-search__field, ++.input-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field, ++.form-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field { +-.select2-container--bootstrap.input-sm .select2-selection--multiple .select2-search--inline .select2-search__field, .input-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field, .form-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field { + padding: 0 10px; + font-size: 12px; + height: 28px; + line-height: 1.5; + } ++.select2-container--bootstrap.input-sm .select2-selection--multiple .select2-selection__clear, ++.input-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear, ++.form-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear { +-.select2-container--bootstrap.input-sm .select2-selection--multiple .select2-selection__clear, .input-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear, .form-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear { + margin-top: 5px; + } ++.select2-container--bootstrap.input-lg .select2-selection--single, ++.input-group-lg .select2-container--bootstrap .select2-selection--single, ++.form-group-lg .select2-container--bootstrap .select2-selection--single { +-.select2-container--bootstrap.input-lg .select2-selection--single, .input-group-lg .select2-container--bootstrap .select2-selection--single, .form-group-lg .select2-container--bootstrap .select2-selection--single { + border-radius: 6px; + font-size: 18px; + height: 46px; + line-height: 1.3333333; + padding: 10px 31px 10px 16px; + /* 1 */ ++ + } ++.select2-container--bootstrap.input-lg .select2-selection--single .select2-selection__arrow, ++.input-group-lg .select2-container--bootstrap .select2-selection--single .select2-selection__arrow, ++.form-group-lg .select2-container--bootstrap .select2-selection--single .select2-selection__arrow { +-.select2-container--bootstrap.input-lg .select2-selection--single .select2-selection__arrow, .input-group-lg .select2-container--bootstrap .select2-selection--single .select2-selection__arrow, .form-group-lg .select2-container--bootstrap .select2-selection--single .select2-selection__arrow { + width: 5px; + } ++.select2-container--bootstrap.input-lg .select2-selection--single .select2-selection__arrow b, ++.input-group-lg .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b, ++.form-group-lg .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b { +-.select2-container--bootstrap.input-lg .select2-selection--single .select2-selection__arrow b, .input-group-lg .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b, .form-group-lg .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b { + border-width: 5px 5px 0 5px; + margin-left: -5px; + margin-left: -10px; + margin-top: -2.5px; + } ++.select2-container--bootstrap.input-lg .select2-selection--multiple, ++.input-group-lg .select2-container--bootstrap .select2-selection--multiple, ++.form-group-lg .select2-container--bootstrap .select2-selection--multiple { +-.select2-container--bootstrap.input-lg .select2-selection--multiple, .input-group-lg .select2-container--bootstrap .select2-selection--multiple, .form-group-lg .select2-container--bootstrap .select2-selection--multiple { + min-height: 46px; + } ++.select2-container--bootstrap.input-lg .select2-selection--multiple .select2-selection__choice, ++.input-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice, ++.form-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice { +-.select2-container--bootstrap.input-lg .select2-selection--multiple .select2-selection__choice, .input-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice, .form-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice { + font-size: 18px; + line-height: 1.3333333; + border-radius: 4px; + margin: 9px 0 0 8px; + padding: 0 10px; + } ++.select2-container--bootstrap.input-lg .select2-selection--multiple .select2-search--inline .select2-search__field, ++.input-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field, ++.form-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field { +-.select2-container--bootstrap.input-lg .select2-selection--multiple .select2-search--inline .select2-search__field, .input-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field, .form-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field { + padding: 0 16px; + font-size: 18px; + height: 44px; + line-height: 1.3333333; + } ++.select2-container--bootstrap.input-lg .select2-selection--multiple .select2-selection__clear, ++.input-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear, ++.form-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear { +-.select2-container--bootstrap.input-lg .select2-selection--multiple .select2-selection__clear, .input-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear, .form-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear { + margin-top: 10px; + } + .select2-container--bootstrap.input-lg.select2-container--open .select2-selection--single { + /** ++ * Make the dropdown arrow point up while the dropdown is visible. ++ */ ++ +- * Make the dropdown arrow point up while the dropdown is visible. +- */ + } + .select2-container--bootstrap.input-lg.select2-container--open .select2-selection--single .select2-selection__arrow b { ++ border-color: transparent transparent #999999 transparent; +- border-color: transparent transparent #999 transparent; + border-width: 0 5px 5px 5px; + } + .input-group-lg .select2-container--bootstrap.select2-container--open .select2-selection--single { + /** ++ * Make the dropdown arrow point up while the dropdown is visible. ++ */ ++ +- * Make the dropdown arrow point up while the dropdown is visible. +- */ + } + .input-group-lg .select2-container--bootstrap.select2-container--open .select2-selection--single .select2-selection__arrow b { ++ border-color: transparent transparent #999999 transparent; +- border-color: transparent transparent #999 transparent; + border-width: 0 5px 5px 5px; + } + .select2-container--bootstrap[dir="rtl"] { + /** ++ * Single Select2 ++ * ++ * 1. Makes sure that .select2-selection__placeholder is positioned ++ * correctly. ++ */ ++ +- * Single Select2 +- * +- * 1. Makes sure that .select2-selection__placeholder is positioned +- * correctly. +- */ + /** ++ * Multiple Select2 ++ */ ++ +- * Multiple Select2 +- */ + } + .select2-container--bootstrap[dir="rtl"] .select2-selection--single { + padding-left: 24px; + padding-right: 12px; +@@ -433,8 +492,9 @@ + padding-right: 0; + padding-left: 0; + text-align: right; + /* 1 */ ++ + } + .select2-container--bootstrap[dir="rtl"] .select2-selection--single .select2-selection__clear { + float: left; + } +@@ -456,9 +516,8 @@ + .select2-container--bootstrap[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { + margin-left: 2px; + margin-right: auto; + } +- + /*------------------------------------*\ + #ADDITIONAL GOODIES + \*------------------------------------*/ + /** +@@ -486,9 +545,8 @@ + } + .has-warning.select2-drop-active.select2-drop.select2-drop-above { + border-top-color: #66512c; + } +- + .has-error .select2-dropdown, + .has-error .select2-selection { + border-color: #a94442; + } +@@ -503,9 +561,8 @@ + } + .has-error.select2-drop-active.select2-drop.select2-drop-above { + border-top-color: #843534; + } +- + .has-success .select2-dropdown, + .has-success .select2-selection { + border-color: #3c763d; + } +@@ -520,9 +577,8 @@ + } + .has-success.select2-drop-active.select2-drop.select2-drop-above { + border-top-color: #2b542c; + } +- + /** + * Select2 widgets in Bootstrap Input Groups + * + * When Select2 widgets are combined with other elements using Bootstraps +@@ -548,35 +604,31 @@ + float: left; + width: 100%; + margin-bottom: 0; + } +- + .input-group.select2-bootstrap-prepend .select2-container--bootstrap .select2-selection { + border-bottom-left-radius: 0; + border-top-left-radius: 0; + } +- + .input-group.select2-bootstrap-append .select2-container--bootstrap .select2-selection { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + } +- + /** + * Adjust alignment of Bootstrap buttons in Bootstrap Input Groups to address + * Multi Select2's height which - depending on how many elements have been selected - + * may grow taller than its initial size. + * + * @see http://getbootstrap.com/components/#input-groups + */ + .select2-bootstrap-append .select2-container--bootstrap, ++.select2-bootstrap-prepend .select2-container--bootstrap, + .select2-bootstrap-append .input-group-btn, ++.select2-bootstrap-prepend .input-group-btn, + .select2-bootstrap-append .input-group-btn .btn, +-.select2-bootstrap-prepend .select2-container--bootstrap, +-.select2-bootstrap-prepend .input-group-btn, + .select2-bootstrap-prepend .input-group-btn .btn { + vertical-align: top; + } +- + /** + * Temporary fix for https://github.com/select2/select2-bootstrap-theme/issues/9 + * + * Provides `!important` for certain properties of the class applied to the +@@ -588,9 +640,8 @@ + .form-control.select2-hidden-accessible { + position: absolute !important; + width: 1px !important; + } +- + /** + * Display override for inline forms + */ + .form-inline .select2-container--bootstrap { diff --git a/awx/ui/client/lib/select2-bootstrap-theme/tests/support/scss.patch b/awx/ui/client/lib/select2-bootstrap-theme/tests/support/scss.patch new file mode 100755 index 0000000000..4b2016d8c6 --- /dev/null +++ b/awx/ui/client/lib/select2-bootstrap-theme/tests/support/scss.patch @@ -0,0 +1,4 @@ +Index: select2-bootstrap.css +=================================================================== +--- select2-bootstrap.css ++++ select2-bootstrap.css diff --git a/awx/ui/static/lib/select2/.bower.json b/awx/ui/client/lib/select2/.bower.json similarity index 79% rename from awx/ui/static/lib/select2/.bower.json rename to awx/ui/client/lib/select2/.bower.json index 2d047dc94a..3c88b4f0e4 100644 --- a/awx/ui/static/lib/select2/.bower.json +++ b/awx/ui/client/lib/select2/.bower.json @@ -10,12 +10,12 @@ "url": "git@github.com:select2/select2.git" }, "homepage": "https://github.com/ivaynberg/select2", - "version": "4.0.0-rc.2", - "_release": "4.0.0-rc.2", + "version": "4.0.0", + "_release": "4.0.0", "_resolution": { "type": "version", - "tag": "4.0.0-rc.2", - "commit": "69e2d73c42ae261b924a052e45d9b6f6dbc60fc6" + "tag": "4.0.0", + "commit": "80eb44bec78568b152dc5547269c164cb7b5363c" }, "_source": "git://github.com/ivaynberg/select2.git", "_target": "~4.0.0", diff --git a/awx/ui/static/lib/select2/.editorconfig b/awx/ui/client/lib/select2/.editorconfig similarity index 100% rename from awx/ui/static/lib/select2/.editorconfig rename to awx/ui/client/lib/select2/.editorconfig diff --git a/awx/ui/static/lib/select2/.gitignore b/awx/ui/client/lib/select2/.gitignore similarity index 100% rename from awx/ui/static/lib/select2/.gitignore rename to awx/ui/client/lib/select2/.gitignore diff --git a/awx/ui/static/lib/select2/.jshintignore b/awx/ui/client/lib/select2/.jshintignore similarity index 100% rename from awx/ui/static/lib/select2/.jshintignore rename to awx/ui/client/lib/select2/.jshintignore diff --git a/awx/ui/static/lib/select2/.jshintrc b/awx/ui/client/lib/select2/.jshintrc similarity index 100% rename from awx/ui/static/lib/select2/.jshintrc rename to awx/ui/client/lib/select2/.jshintrc diff --git a/awx/ui/static/lib/select2/.travis.yml b/awx/ui/client/lib/select2/.travis.yml similarity index 100% rename from awx/ui/static/lib/select2/.travis.yml rename to awx/ui/client/lib/select2/.travis.yml diff --git a/awx/ui/static/lib/select2/CONTRIBUTING.md b/awx/ui/client/lib/select2/CONTRIBUTING.md similarity index 100% rename from awx/ui/static/lib/select2/CONTRIBUTING.md rename to awx/ui/client/lib/select2/CONTRIBUTING.md diff --git a/awx/ui/static/lib/select2/Gruntfile.js b/awx/ui/client/lib/select2/Gruntfile.js similarity index 97% rename from awx/ui/static/lib/select2/Gruntfile.js rename to awx/ui/client/lib/select2/Gruntfile.js index 840059b4d2..b14a9863c9 100644 --- a/awx/ui/static/lib/select2/Gruntfile.js +++ b/awx/ui/client/lib/select2/Gruntfile.js @@ -2,16 +2,20 @@ module.exports = function (grunt) { // Full list of files that must be included by RequireJS includes = [ 'jquery.select2', - 'almond' + 'almond', + + 'jquery.mousewheel' // shimmed for non-full builds ]; fullIncludes = [ 'jquery', - 'jquery.mousewheel', - 'select2/compat/matcher', + 'select2/compat/containerCss', + 'select2/compat/dropdownCss', + 'select2/compat/initSelection', 'select2/compat/inputData', + 'select2/compat/matcher', 'select2/compat/query', 'select2/dropdown/attachContainer', @@ -251,7 +255,8 @@ module.exports = function (grunt) { namespace: 'S2', paths: { almond: '../../vendor/almond-0.2.9', - jquery: 'jquery.shim' + jquery: 'jquery.shim', + 'jquery.mousewheel': 'jquery.mousewheel.shim' }, wrap: { startFile: 'src/js/banner.start.js', diff --git a/awx/ui/static/lib/select2/LICENSE.md b/awx/ui/client/lib/select2/LICENSE.md similarity index 100% rename from awx/ui/static/lib/select2/LICENSE.md rename to awx/ui/client/lib/select2/LICENSE.md diff --git a/awx/ui/static/lib/select2/README.md b/awx/ui/client/lib/select2/README.md similarity index 100% rename from awx/ui/static/lib/select2/README.md rename to awx/ui/client/lib/select2/README.md diff --git a/awx/ui/static/lib/select2/bower.json b/awx/ui/client/lib/select2/bower.json similarity index 100% rename from awx/ui/static/lib/select2/bower.json rename to awx/ui/client/lib/select2/bower.json diff --git a/awx/ui/static/lib/select2/component.json b/awx/ui/client/lib/select2/component.json similarity index 94% rename from awx/ui/static/lib/select2/component.json rename to awx/ui/client/lib/select2/component.json index a7484b0d5a..43538e914a 100644 --- a/awx/ui/static/lib/select2/component.json +++ b/awx/ui/client/lib/select2/component.json @@ -2,7 +2,7 @@ "name": "select2", "repo": "select/select2", "description": "Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.", - "version": "4.0.0-rc.2", + "version": "4.0.0", "demo": "https://select2.github.io/", "keywords": [ "jquery" diff --git a/awx/ui/static/lib/select2/composer.json b/awx/ui/client/lib/select2/composer.json similarity index 100% rename from awx/ui/static/lib/select2/composer.json rename to awx/ui/client/lib/select2/composer.json diff --git a/awx/ui/static/lib/select2/dist/css/select2.css b/awx/ui/client/lib/select2/dist/css/select2.css similarity index 99% rename from awx/ui/static/lib/select2/dist/css/select2.css rename to awx/ui/client/lib/select2/dist/css/select2.css index c69b7273bf..d365213c7b 100644 --- a/awx/ui/static/lib/select2/dist/css/select2.css +++ b/awx/ui/client/lib/select2/dist/css/select2.css @@ -112,6 +112,16 @@ background-color: #fff; filter: alpha(opacity=0); } +.select2-hidden-accessible { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; } + .select2-container--default .select2-selection--single { background-color: #fff; border: 1px solid #aaa; diff --git a/awx/ui/client/lib/select2/dist/css/select2.min.css b/awx/ui/client/lib/select2/dist/css/select2.min.css new file mode 100644 index 0000000000..1c7234426a --- /dev/null +++ b/awx/ui/client/lib/select2/dist/css/select2.min.css @@ -0,0 +1 @@ +.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle;}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none;}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px;}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none;}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap;}.select2-container .select2-search--inline{float:left;}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none;}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051;}.select2-results{display:block;}.select2-results__options{list-style:none;margin:0;padding:0;}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none;}.select2-results__option[aria-selected]{cursor:pointer;}.select2-container--open .select2-dropdown{left:0;}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0;}.select2-search--dropdown{display:block;padding:4px;}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box;}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none;}.select2-search--dropdown.select2-search--hide{display:none;}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0);}.select2-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px;}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px;}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999;}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px;}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0;}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left;}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto;}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default;}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none;}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px;}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%;}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;margin-top:5px;float:left;}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px;}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px;}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px;}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333;}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder{float:right;}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto;}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto;}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0;}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default;}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none;}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0;}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0;}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa;}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto;}.select2-container--default .select2-results__option[role=group]{padding:0;}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999;}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd;}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em;}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0;}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em;}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em;}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em;}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em;}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em;}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:white;}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px;}.select2-container--classic .select2-selection--single{background-color:#f6f6f6;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #ffffff 50%, #eeeeee 100%);background-image:-o-linear-gradient(top, #ffffff 50%, #eeeeee 100%);background-image:linear-gradient(to bottom, #ffffff 50%, #eeeeee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb;}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px;}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px;}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999;}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%);background-image:-o-linear-gradient(top, #eeeeee 50%, #cccccc 100%);background-image:linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#cccccc', GradientType=0);}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0;}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left;}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto;}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb;}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none;}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px;}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #ffffff 0%, #eeeeee 50%);background-image:-o-linear-gradient(top, #ffffff 0%, #eeeeee 50%);background-image:linear-gradient(to bottom, #ffffff 0%, #eeeeee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eeeeee 50%, #ffffff 100%);background-image:-o-linear-gradient(top, #eeeeee 50%, #ffffff 100%);background-image:linear-gradient(to bottom, #eeeeee 50%, #ffffff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0);}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0;}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb;}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px;}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none;}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px;}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px;}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555;}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right;}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto;}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto;}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb;}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0;}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0;}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;}.select2-container--classic .select2-dropdown{background-color:white;border:1px solid transparent;}.select2-container--classic .select2-dropdown--above{border-bottom:none;}.select2-container--classic .select2-dropdown--below{border-top:none;}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto;}.select2-container--classic .select2-results__option[role=group]{padding:0;}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey;}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:white;}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px;}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb;} \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/az.js b/awx/ui/client/lib/select2/dist/js/i18n/az.js similarity index 87% rename from awx/ui/static/lib/select2/dist/js/i18n/az.js rename to awx/ui/client/lib/select2/dist/js/i18n/az.js index b65d743e40..3ad855a78c 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/az.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/az.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/az",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return t+" simvol silin"},inputTooShort:function(e){var t=e.minimum-e.input.length;return t+" simvol daxil edin"},loadingMore:function(){return"Daha çox nəticə yüklənir…"},maximumSelected:function(e){return"Sadəcə "+e.maximum+" element seçə bilərsiniz"},noResults:function(){return"Nəticə tapılmadı"},searching:function(){return"Axtarılır…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/bg.js b/awx/ui/client/lib/select2/dist/js/i18n/bg.js similarity index 90% rename from awx/ui/static/lib/select2/dist/js/i18n/bg.js rename to awx/ui/client/lib/select2/dist/js/i18n/bg.js index 3fbee75b5b..edad761bbe 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/bg.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/bg.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/bg",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Моля въведете с "+t+" по-малко символ";return t>1&&(n+="a"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Моля въведете още "+t+" символ";return t>1&&(n+="a"),n},loadingMore:function(){return"Зареждат се още…"},maximumSelected:function(e){var t="Можете да направите до "+e.maximum+" ";return e.maximum>1?t+="избора":t+="избор",t},noResults:function(){return"Няма намерени съвпадения"},searching:function(){return"Търсене…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/ca.js b/awx/ui/client/lib/select2/dist/js/i18n/ca.js similarity index 90% rename from awx/ui/static/lib/select2/dist/js/i18n/ca.js rename to awx/ui/client/lib/select2/dist/js/i18n/ca.js index e2f505a1fd..3f5db5ea8f 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/ca.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/ca.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ca",[],function(){return{errorLoading:function(){return"La càrrega ha fallat"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Si us plau, elimina "+t+" car";return t==1?n+="àcter":n+="àcters",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Si us plau, introdueix "+t+" car";return t==1?n+="àcter":n+="àcters",n},loadingMore:function(){return"Carregant més resultats…"},maximumSelected:function(e){var t="Només es pot seleccionar "+e.maximum+" element";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No s'han trobat resultats"},searching:function(){return"Cercant…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/cs.js b/awx/ui/client/lib/select2/dist/js/i18n/cs.js similarity index 93% rename from awx/ui/static/lib/select2/dist/js/i18n/cs.js rename to awx/ui/client/lib/select2/dist/js/i18n/cs.js index 44cc3c64d1..d5823e9696 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/cs.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/cs.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/cs",[],function(){function e(e,t){switch(e){case 2:return t?"dva":"dvě";case 3:return"tři";case 4:return"čtyři"}return""}return{errorLoading:function(){return"Výsledky nemohly být načteny."},inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím zadejte o jeden znak méně":n<=4?"Prosím zadejte o "+e(n,!0)+" znaky méně":"Prosím zadejte o "+n+" znaků méně"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím zadejte ještě jeden znak":n<=4?"Prosím zadejte ještě další "+e(n,!0)+" znaky":"Prosím zadejte ještě dalších "+n+" znaků"},loadingMore:function(){return"Načítají se další výsledky…"},maximumSelected:function(t){var n=t.maximum;return n==1?"Můžete zvolit jen jednu položku":n<=4?"Můžete zvolit maximálně "+e(n,!1)+" položky":"Můžete zvolit maximálně "+n+" položek"},noResults:function(){return"Nenalezeny žádné položky"},searching:function(){return"Vyhledávání…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/da.js b/awx/ui/client/lib/select2/dist/js/i18n/da.js similarity index 89% rename from awx/ui/static/lib/select2/dist/js/i18n/da.js rename to awx/ui/client/lib/select2/dist/js/i18n/da.js index 4fb80cd366..e9d25315a4 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/da.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/da.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/da",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Angiv venligst "+t+" tegn mindre";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Angiv venligst "+t+" tegn mere";return n},loadingMore:function(){return"Indlæser flere resultater…"},maximumSelected:function(e){var t="Du kan kun vælge "+e.maximum+" emne";return e.maximum!=1&&(t+="r"),t},noResults:function(){return"Ingen resultater fundet"},searching:function(){return"Søger…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/de.js b/awx/ui/client/lib/select2/dist/js/i18n/de.js similarity index 88% rename from awx/ui/static/lib/select2/dist/js/i18n/de.js rename to awx/ui/client/lib/select2/dist/js/i18n/de.js index 96d10c9d0e..2224138e3b 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/de.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/de.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/de",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Bitte "+t+" Zeichen weniger eingeben"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Bitte "+t+" Zeichen mehr eingeben"},loadingMore:function(){return"Lade mehr Ergebnisse…"},maximumSelected:function(e){var t="Sie können nur "+e.maximum+" Eintr";return e.maximum===1?t+="ag":t+="äge",t+=" auswählen",t},noResults:function(){return"Keine Übereinstimmungen gefunden"},searching:function(){return"Suche…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/en.js b/awx/ui/client/lib/select2/dist/js/i18n/en.js similarity index 89% rename from awx/ui/static/lib/select2/dist/js/i18n/en.js rename to awx/ui/client/lib/select2/dist/js/i18n/en.js index 8270f4fe2e..869dfd7b21 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/en.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/en.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Please enter "+t+" or more characters";return n},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/es.js b/awx/ui/client/lib/select2/dist/js/i18n/es.js similarity index 90% rename from awx/ui/static/lib/select2/dist/js/i18n/es.js rename to awx/ui/client/lib/select2/dist/js/i18n/es.js index 32a5e620a0..f12d3f5216 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/es.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/es.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/es",[],function(){return{errorLoading:function(){return"La carga falló"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor, elimine "+t+" car";return t==1?n+="ácter":n+="acteres",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Por favor, introduzca "+t+" car";return t==1?n+="ácter":n+="acteres",n},loadingMore:function(){return"Cargando más resultados…"},maximumSelected:function(e){var t="Sólo puede seleccionar "+e.maximum+" elemento";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No se encontraron resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/et.js b/awx/ui/client/lib/select2/dist/js/i18n/et.js similarity index 88% rename from awx/ui/static/lib/select2/dist/js/i18n/et.js rename to awx/ui/client/lib/select2/dist/js/i18n/et.js index 440d99256c..b0603bdc8e 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/et.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/et.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/et",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" vähem",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" rohkem",n},loadingMore:function(){return"Laen tulemusi…"},maximumSelected:function(e){var t="Saad vaid "+e.maximum+" tulemus";return e.maximum==1?t+="e":t+="t",t+=" valida",t},noResults:function(){return"Tulemused puuduvad"},searching:function(){return"Otsin…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/eu.js b/awx/ui/client/lib/select2/dist/js/i18n/eu.js similarity index 89% rename from awx/ui/static/lib/select2/dist/js/i18n/eu.js rename to awx/ui/client/lib/select2/dist/js/i18n/eu.js index 784ac082a4..3abb677a43 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/eu.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/eu.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/eu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gutxiago",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gehiago",n},loadingMore:function(){return"Emaitza gehiago kargatzen…"},maximumSelected:function(e){return e.maximum===1?"Elementu bakarra hauta dezakezu":e.maximum+" elementu hauta ditzakezu soilik"},noResults:function(){return"Ez da bat datorrenik aurkitu"},searching:function(){return"Bilatzen…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/fa.js b/awx/ui/client/lib/select2/dist/js/i18n/fa.js similarity index 91% rename from awx/ui/static/lib/select2/dist/js/i18n/fa.js rename to awx/ui/client/lib/select2/dist/js/i18n/fa.js index d2561c8480..49abc419cd 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/fa.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/fa.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fa",[],function(){return{errorLoading:function(){return"امکان بارگذاری نتایج وجود ندارد."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="لطفاً "+t+" کاراکتر را حذف نمایید";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="لطفاً تعداد "+t+" کاراکتر یا بیشتر وارد نمایید";return n},loadingMore:function(){return"در حال بارگذاری نتایج بیشتر..."},maximumSelected:function(e){var t="شما تنها می‌توانید "+e.maximum+" آیتم را انتخاب نمایید";return t},noResults:function(){return"هیچ نتیجه‌ای یافت نشد"},searching:function(){return"در حال جستجو..."}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/fi.js b/awx/ui/client/lib/select2/dist/js/i18n/fi.js similarity index 87% rename from awx/ui/static/lib/select2/dist/js/i18n/fi.js rename to awx/ui/client/lib/select2/dist/js/i18n/fi.js index 44f902149e..fef0d8b572 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/fi.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/fi.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fi",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Ole hyvä ja anna "+t+" merkkiä vähemmän"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Ole hyvä ja anna "+t+" merkkiä lisää"},loadingMore:function(){return"Ladataan lisää tuloksia…"},maximumSelected:function(e){return"Voit valita ainoastaan "+e.maximum+" kpl"},noResults:function(){return"Ei tuloksia"},searching:function(){}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/fr.js b/awx/ui/client/lib/select2/dist/js/i18n/fr.js similarity index 89% rename from awx/ui/static/lib/select2/dist/js/i18n/fr.js rename to awx/ui/client/lib/select2/dist/js/i18n/fr.js index cef552ba1d..44395226dd 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/fr.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/fr.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fr",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Supprimez "+t+" caractère";return t!==1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Saisissez "+t+" caractère";return t!==1&&(n+="s"),n},loadingMore:function(){return"Chargement de résultats supplémentaires…"},maximumSelected:function(e){var t="Vous pouvez seulement sélectionner "+e.maximum+" élément";return e.maximum!==1&&(t+="s"),t},noResults:function(){return"Aucun résultat trouvé"},searching:function(){return"Recherche en cours…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/gl.js b/awx/ui/client/lib/select2/dist/js/i18n/gl.js similarity index 89% rename from awx/ui/static/lib/select2/dist/js/i18n/gl.js rename to awx/ui/client/lib/select2/dist/js/i18n/gl.js index 74891b6442..9e593af47d 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/gl.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/gl.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/gl",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Engada ";return t===1?n+="un carácter":n+=t+" caracteres",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Elimine ";return t===1?n+="un carácter":n+=t+" caracteres",n},loadingMore:function(){return"Cargando máis resultados…"},maximumSelected:function(e){var t="Só pode ";return e.maximum===1?t+="un elemento":t+=e.maximum+" elementos",t},noResults:function(){return"Non se atoparon resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/client/lib/select2/dist/js/i18n/he.js b/awx/ui/client/lib/select2/dist/js/i18n/he.js new file mode 100644 index 0000000000..c5102c3106 --- /dev/null +++ b/awx/ui/client/lib/select2/dist/js/i18n/he.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/he",[],function(){return{errorLoading:function(){return"התוצאות לא נטענו בהלכה"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="נא למחוק "+t+" תווים";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="נא להכניס "+t+" תווים או יותר";return n},loadingMore:function(){return"טען תוצאות נוספות…"},maximumSelected:function(e){var t="באפשרותך לבחור רק "+e.maximum+" פריטים";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"לא נמצאו תוצאות"},searching:function(){return"מחפש…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/hi.js b/awx/ui/client/lib/select2/dist/js/i18n/hi.js similarity index 92% rename from awx/ui/static/lib/select2/dist/js/i18n/hi.js rename to awx/ui/client/lib/select2/dist/js/i18n/hi.js index 2e26b27454..f8dd58a46d 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/hi.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/hi.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hi",[],function(){return{errorLoading:function(){return"परिणामों को लोड नहीं किया जा सका।"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" अक्षर को हटा दें";return t>1&&(n=t+" अक्षरों को हटा दें "),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="कृपया "+t+" या अधिक अक्षर दर्ज करें";return n},loadingMore:function(){return"अधिक परिणाम लोड हो रहे है..."},maximumSelected:function(e){var t="आप केवल "+e.maximum+" आइटम का चयन कर सकते हैं";return t},noResults:function(){return"कोई परिणाम नहीं मिला"},searching:function(){return"खोज रहा है..."}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/hr.js b/awx/ui/client/lib/select2/dist/js/i18n/hr.js similarity index 89% rename from awx/ui/static/lib/select2/dist/js/i18n/hr.js rename to awx/ui/client/lib/select2/dist/js/i18n/hr.js index c413075203..a783b3fbb4 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/hr.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/hr.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hr",[],function(){function e(e){var t=" "+e+" znak";return e%10<5&&e%10>0&&(e%100<5||e%100>19)?e%10>1&&(t+="a"):t+="ova",t}return{inputTooLong:function(t){var n=t.input.length-t.maximum;return"Unesite "+e(n)},inputTooShort:function(t){var n=t.minimum-t.input.length;return"Unesite još "+e(n)},loadingMore:function(){return"Učitavanje rezultata…"},maximumSelected:function(e){return"Maksimalan broj odabranih stavki je "+e.maximum},noResults:function(){return"Nema rezultata"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/hu.js b/awx/ui/client/lib/select2/dist/js/i18n/hu.js similarity index 88% rename from awx/ui/static/lib/select2/dist/js/i18n/hu.js rename to awx/ui/client/lib/select2/dist/js/i18n/hu.js index 203ab78b71..d13fea25f5 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/hu.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/hu.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Túl hosszú. "+t+" karakterrel több, mint kellene."},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Túl rövid. Még "+t+" karakter hiányzik."},loadingMore:function(){return"Töltés…"},maximumSelected:function(e){return"Csak "+e.maximum+" elemet lehet kiválasztani."},noResults:function(){return"Nincs találat."},searching:function(){return"Keresés…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/id.js b/awx/ui/client/lib/select2/dist/js/i18n/id.js similarity index 87% rename from awx/ui/static/lib/select2/dist/js/i18n/id.js rename to awx/ui/client/lib/select2/dist/js/i18n/id.js index 52eed4bef3..7ffb8dbdb6 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/id.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/id.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/id",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Hapuskan "+t+" huruf"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Masukkan "+t+" huruf lagi"},loadingMore:function(){return"Mengambil data…"},maximumSelected:function(e){return"Anda hanya dapat memilih "+e.maximum+" pilihan"},noResults:function(){return"Tidak ada data yang sesuai"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/is.js b/awx/ui/client/lib/select2/dist/js/i18n/is.js similarity index 88% rename from awx/ui/static/lib/select2/dist/js/i18n/is.js rename to awx/ui/client/lib/select2/dist/js/i18n/is.js index 5f69352f91..588ec1de9f 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/is.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/is.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/is",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vinsamlegast styttið texta um "+t+" staf";return t<=1?n:n+"i"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vinsamlegast skrifið "+t+" staf";return t>1&&(n+="i"),n+=" í viðbót",n},loadingMore:function(){return"Sæki fleiri niðurstöður…"},maximumSelected:function(e){return"Þú getur aðeins valið "+e.maximum+" atriði"},noResults:function(){return"Ekkert fannst"},searching:function(){return"Leita…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/it.js b/awx/ui/client/lib/select2/dist/js/i18n/it.js similarity index 90% rename from awx/ui/static/lib/select2/dist/js/i18n/it.js rename to awx/ui/client/lib/select2/dist/js/i18n/it.js index dfb950b22e..0488d3b152 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/it.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/it.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/it",[],function(){return{errorLoading:function(){return"I risultati non possono essere caricati."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Per favore cancella "+t+" caratter";return t!==1?n+="i":n+="e",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Per favore inserisci "+t+" o più caratteri";return n},loadingMore:function(){return"Caricando più risultati…"},maximumSelected:function(e){var t="Puoi selezionare solo "+e.maximum+" element";return e.maximum!==1?t+="i":t+="o",t},noResults:function(){return"Nessun risultato trovato"},searching:function(){return"Sto cercando…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/ko.js b/awx/ui/client/lib/select2/dist/js/i18n/ko.js similarity index 89% rename from awx/ui/static/lib/select2/dist/js/i18n/ko.js rename to awx/ui/client/lib/select2/dist/js/i18n/ko.js index 367df499cc..80b5a8b20b 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/ko.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/ko.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ko",[],function(){return{errorLoading:function(){return"결과를 불러올 수 없습니다."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="너무 깁니다. "+t+" 글자 지워주세요.";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="너무 짧습니다. "+t+" 글자 더 입력해주세요.";return n},loadingMore:function(){return"불러오는 중…"},maximumSelected:function(e){var t="최대 "+e.maximum+"개까지만 선택 가능합니다.";return t},noResults:function(){return"결과가 없습니다."},searching:function(){return"검색 중…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/lt.js b/awx/ui/client/lib/select2/dist/js/i18n/lt.js similarity index 90% rename from awx/ui/static/lib/select2/dist/js/i18n/lt.js rename to awx/ui/client/lib/select2/dist/js/i18n/lt.js index aecddcedd7..27cfe36497 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/lt.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/lt.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lt",[],function(){function e(e,t,n,r){return e%100>9&&e%100<21||e%10===0?e%10>1?n:r:t}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Pašalinkite "+n+" simbol";return r+=e(n,"ių","ius","į"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Įrašykite dar "+n+" simbol";return r+=e(n,"ių","ius","į"),r},loadingMore:function(){return"Kraunama daugiau rezultatų…"},maximumSelected:function(t){var n="Jūs galite pasirinkti tik "+t.maximum+" element";return n+=e(t.maximum,"ų","us","ą"),n},noResults:function(){return"Atitikmenų nerasta"},searching:function(){return"Ieškoma…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/lv.js b/awx/ui/client/lib/select2/dist/js/i18n/lv.js similarity index 90% rename from awx/ui/static/lib/select2/dist/js/i18n/lv.js rename to awx/ui/client/lib/select2/dist/js/i18n/lv.js index 8bf40cff3b..b47bc8e2a9 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/lv.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/lv.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lv",[],function(){function e(e,t,n,r){return e===11?t:e%10===1?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Lūdzu ievadiet par "+n;return r+=" simbol"+e(n,"iem","u","iem"),r+" mazāk"},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Lūdzu ievadiet vēl "+n;return r+=" simbol"+e(n,"us","u","us"),r},loadingMore:function(){return"Datu ielāde…"},maximumSelected:function(t){var n="Jūs varat izvēlēties ne vairāk kā "+t.maximum;return n+=" element"+e(t.maximum,"us","u","us"),n},noResults:function(){return"Sakritību nav"},searching:function(){return"Meklēšana…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/mk.js b/awx/ui/client/lib/select2/dist/js/i18n/mk.js similarity index 91% rename from awx/ui/static/lib/select2/dist/js/i18n/mk.js rename to awx/ui/client/lib/select2/dist/js/i18n/mk.js index 14784aa077..065a47a032 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/mk.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/mk.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/mk",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Ве молиме внесете "+e.maximum+" помалку карактер";return e.maximum!==1&&(n+="и"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Ве молиме внесете уште "+e.maximum+" карактер";return e.maximum!==1&&(n+="и"),n},loadingMore:function(){return"Вчитување резултати…"},maximumSelected:function(e){var t="Можете да изберете само "+e.maximum+" ставк";return e.maximum===1?t+="а":t+="и",t},noResults:function(){return"Нема пронајдено совпаѓања"},searching:function(){return"Пребарување…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/nb.js b/awx/ui/client/lib/select2/dist/js/i18n/nb.js similarity index 88% rename from awx/ui/static/lib/select2/dist/js/i18n/nb.js rename to awx/ui/client/lib/select2/dist/js/i18n/nb.js index 9ce07c9ed6..d7328a250f 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/nb.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/nb.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nb",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Vennligst fjern "+t+" tegn"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vennligst skriv inn ";return t>1?n+=" flere tegn":n+=" tegn til",n},loadingMore:function(){return"Laster flere resultater…"},maximumSelected:function(e){return"Du kan velge maks "+e.maximum+" elementer"},noResults:function(){return"Ingen treff"},searching:function(){return"Søker…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/nl.js b/awx/ui/client/lib/select2/dist/js/i18n/nl.js similarity index 90% rename from awx/ui/static/lib/select2/dist/js/i18n/nl.js rename to awx/ui/client/lib/select2/dist/js/i18n/nl.js index 645cd5c055..b30c81c739 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/nl.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/nl.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nl",[],function(){return{errorLoading:function(){return"De resultaten konden niet worden geladen."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Gelieve "+t+" karakters te verwijderen";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Gelieve "+t+" of meer karakters in te voeren";return n},loadingMore:function(){return"Meer resultaten laden…"},maximumSelected:function(e){var t="Er kunnen maar "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t+=" worden geselecteerd",t},noResults:function(){return"Geen resultaten gevonden…"},searching:function(){return"Zoeken…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/pl.js b/awx/ui/client/lib/select2/dist/js/i18n/pl.js similarity index 90% rename from awx/ui/static/lib/select2/dist/js/i18n/pl.js rename to awx/ui/client/lib/select2/dist/js/i18n/pl.js index 9fa693fb3c..0c0923c28c 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/pl.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/pl.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pl",[],function(){var e=["znak","znaki","znaków"],t=["element","elementy","elementów"],n=function(t,n){if(t===1)return n[0];if(t>1&&t<=4)return n[1];if(t>=5)return n[2]};return{errorLoading:function(){return"Nie można załadować wyników."},inputTooLong:function(t){var r=t.input.length-t.maximum;return"Usuń "+r+" "+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return"Podaj przynajmniej "+r+" "+n(r,e)},loadingMore:function(){return"Trwa ładowanie…"},maximumSelected:function(e){return"Możesz zaznaczyć tylko "+e.maximum+" "+n(e.maxiumum,t)},noResults:function(){return"Brak wyników"},searching:function(){return"Trwa wyszukiwanie…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/pt-BR.js b/awx/ui/client/lib/select2/dist/js/i18n/pt-BR.js similarity index 89% rename from awx/ui/static/lib/select2/dist/js/i18n/pt-BR.js rename to awx/ui/client/lib/select2/dist/js/i18n/pt-BR.js index f51cdeeacc..2535114626 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/pt-BR.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/pt-BR.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt-BR",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Apague "+t+" caracter";return t!=1&&(n+="es"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Digite "+t+" ou mais caracteres";return n},loadingMore:function(){return"Carregando mais resultados…"},maximumSelected:function(e){var t="Você só pode selecionar "+e.maximum+" ite";return e.maximum==1?t+="m":t+="ns",t},noResults:function(){return"Nenhum resultado encontrado"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/pt.js b/awx/ui/client/lib/select2/dist/js/i18n/pt.js similarity index 90% rename from awx/ui/static/lib/select2/dist/js/i18n/pt.js rename to awx/ui/client/lib/select2/dist/js/i18n/pt.js index 2da378ec98..6dcc51f0d2 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/pt.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/pt.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor apague "+t+" ";return n+=t!=1?"caracteres":"carácter",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Introduza "+t+" ou mais caracteres";return n},loadingMore:function(){return"A carregar mais resultados…"},maximumSelected:function(e){var t="Apenas pode seleccionar "+e.maximum+" ";return t+=e.maximum!=1?"itens":"item",t},noResults:function(){return"Sem resultados"},searching:function(){return"A procurar…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/ro.js b/awx/ui/client/lib/select2/dist/js/i18n/ro.js similarity index 89% rename from awx/ui/static/lib/select2/dist/js/i18n/ro.js rename to awx/ui/client/lib/select2/dist/js/i18n/ro.js index 4e585d5610..61e7f1239e 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/ro.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/ro.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ro",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vă rugăm să introduceți mai puțin de "+t;return n+=" caracter",n!==1&&(n+="e"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vă rugăm să introduceți incă "+t;return n+=" caracter",n!==1&&(n+="e"),n},loadingMore:function(){return"Se încarcă…"},maximumSelected:function(e){var t="Aveți voie să selectați cel mult "+e.maximum;return t+=" element",t!==1&&(t+="e"),t},noResults:function(){return"Nu a fost găsit nimic"},searching:function(){return"Căutare…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/client/lib/select2/dist/js/i18n/ru.js b/awx/ui/client/lib/select2/dist/js/i18n/ru.js new file mode 100644 index 0000000000..e082600f4e --- /dev/null +++ b/awx/ui/client/lib/select2/dist/js/i18n/ru.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ + +(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ru",[],function(){function e(e,t,n,r){return e%10<5&&e%10>0&&e%100<5||e%100>20?e%10>1?n:t:r}return{errorLoading:function(){return"Невозможно загрузить результаты"},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Пожалуйста, введите на "+n+" символ";return r+=e(n,"","a","ов"),r+=" меньше",r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Пожалуйста, введите еще хотя бы "+n+" символ";return r+=e(n,"","a","ов"),r},loadingMore:function(){return"Загрузка данных…"},maximumSelected:function(t){var n="Вы можете выбрать не более "+t.maximum+" элемент";return n+=e(t.maximum,"","a","ов"),n},noResults:function(){return"Совпадений не найдено"},searching:function(){return"Поиск…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/sk.js b/awx/ui/client/lib/select2/dist/js/i18n/sk.js similarity index 92% rename from awx/ui/static/lib/select2/dist/js/i18n/sk.js rename to awx/ui/client/lib/select2/dist/js/i18n/sk.js index cba614c82c..8f92855695 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/sk.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/sk.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sk",[],function(){var e={2:function(e){return e?"dva":"dve"},3:function(){return"tri"},4:function(){return"štyri"}};return{inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím, zadajte o jeden znak menej":n>=2&&n<=4?"Prosím, zadajte o "+e[n](!0)+" znaky menej":"Prosím, zadajte o "+n+" znakov menej"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím, zadajte ešte jeden znak":n<=4?"Prosím, zadajte ešte ďalšie "+e[n](!0)+" znaky":"Prosím, zadajte ešte ďalších "+n+" znakov"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(t){return t.maximum==1?"Môžete zvoliť len jednu položku":t.maximum>=2&&t.maximum<=4?"Môžete zvoliť najviac "+e[t.maximum](!1)+" položky":"Môžete zvoliť najviac "+t.maximum+" položiek"},noResults:function(){return"Nenašli sa žiadne položky"},searching:function(){return"Vyhľadávanie…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/sr.js b/awx/ui/client/lib/select2/dist/js/i18n/sr.js similarity index 90% rename from awx/ui/static/lib/select2/dist/js/i18n/sr.js rename to awx/ui/client/lib/select2/dist/js/i18n/sr.js index 1bde6274d7..5ed6a81788 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/sr.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/sr.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Obrišite "+n+" simbol";return r+=e(n,"","a","a"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Ukucajte bar još "+n+" simbol";return r+=e(n,"","a","a"),r},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(t){var n="Možete izabrati samo "+t.maximum+" stavk";return n+=e(t.maximum,"u","e","i"),n},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/sv.js b/awx/ui/client/lib/select2/dist/js/i18n/sv.js similarity index 89% rename from awx/ui/static/lib/select2/dist/js/i18n/sv.js rename to awx/ui/client/lib/select2/dist/js/i18n/sv.js index 8de63c9f71..1934e365ef 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/sv.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/sv.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sv",[],function(){return{errorLoading:function(){return"Resultat kunde inte laddas."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vänligen sudda ut "+t+" tecken";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vänligen skriv in "+t+" eller fler tecken";return n},loadingMore:function(){return"Laddar fler resultat…"},maximumSelected:function(e){var t="Du kan max välja "+e.maximum+" element";return t},noResults:function(){return"Inga träffar"},searching:function(){return"Söker…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/th.js b/awx/ui/client/lib/select2/dist/js/i18n/th.js similarity index 90% rename from awx/ui/static/lib/select2/dist/js/i18n/th.js rename to awx/ui/client/lib/select2/dist/js/i18n/th.js index 403a50bbb4..91c911c46f 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/th.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/th.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/th",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="โปรดลบออก "+t+" ตัวอักษร";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="โปรดพิมพ์เพิ่มอีก "+t+" ตัวอักษร";return n},loadingMore:function(){return"กำลังค้นข้อมูลเพิ่ม…"},maximumSelected:function(e){var t="คุณสามารถเลือกได้ไม่เกิน "+e.maximum+" รายการ";return t},noResults:function(){return"ม่พบข้อมูล"},searching:function(){return"กำลังค้นข้อมูล…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/tr.js b/awx/ui/client/lib/select2/dist/js/i18n/tr.js similarity index 88% rename from awx/ui/static/lib/select2/dist/js/i18n/tr.js rename to awx/ui/client/lib/select2/dist/js/i18n/tr.js index 97f27f6fb1..2d616c80c5 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/tr.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/tr.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/tr",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" karakter daha girmelisiniz";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="En az "+t+" karakter daha girmelisiniz";return n},loadingMore:function(){return"Daha fazla…"},maximumSelected:function(e){var t="Sadece "+e.maximum+" seçim yapabilirsiniz";return t},noResults:function(){return"Sonuç bulunamadı"},searching:function(){return"Aranıyor…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/uk.js b/awx/ui/client/lib/select2/dist/js/i18n/uk.js similarity index 92% rename from awx/ui/static/lib/select2/dist/js/i18n/uk.js rename to awx/ui/client/lib/select2/dist/js/i18n/uk.js index 26ad1d4c21..ea34a4a150 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/uk.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/uk.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/uk",[],function(){function e(e,t,n,r){return e%100>10&&e%100<15?r:e%10===1?t:e%10>1&&e%10<5?n:r}return{errorLoading:function(){return"Неможливо завантажити результати"},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Будь ласка, видаліть "+n+" "+e(t.maximum,"літеру","літери","літер")},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Будь ласка, введіть "+t+" або більше літер"},loadingMore:function(){return"Завантаження інших результатів…"},maximumSelected:function(t){return"Ви можете вибрати лише "+t.maximum+" "+e(t.maximum,"пункт","пункти","пунктів")},noResults:function(){return"Нічого не знайдено"},searching:function(){return"Пошук…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/vi.js b/awx/ui/client/lib/select2/dist/js/i18n/vi.js similarity index 89% rename from awx/ui/static/lib/select2/dist/js/i18n/vi.js rename to awx/ui/client/lib/select2/dist/js/i18n/vi.js index e056594960..5c22a14b35 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/vi.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/vi.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/vi",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vui lòng nhập ít hơn "+t+" ký tự";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vui lòng nhập nhiều hơn "+t+' ký tự"';return n},loadingMore:function(){return"Đang lấy thêm kết quả…"},maximumSelected:function(e){var t="Chỉ có thể chọn được "+e.maximum+" lựa chọn";return t},noResults:function(){return"Không tìm thấy kết quả"},searching:function(){return"Đang tìm…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/zh-CN.js b/awx/ui/client/lib/select2/dist/js/i18n/zh-CN.js similarity index 88% rename from awx/ui/static/lib/select2/dist/js/i18n/zh-CN.js rename to awx/ui/client/lib/select2/dist/js/i18n/zh-CN.js index 7b70b7dc36..df0ea4103d 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/zh-CN.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/zh-CN.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-CN",[],function(){return{errorLoading:function(){return"无法载入结果。"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="请删除"+t+"个字符";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="请再输入至少"+t+"个字符";return n},loadingMore:function(){return"载入更多结果…"},maximumSelected:function(e){var t="最多只能选择"+e.maximum+"个项目";return t},noResults:function(){return"未找到结果"},searching:function(){return"搜索中…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/i18n/zh-TW.js b/awx/ui/client/lib/select2/dist/js/i18n/zh-TW.js similarity index 87% rename from awx/ui/static/lib/select2/dist/js/i18n/zh-TW.js rename to awx/ui/client/lib/select2/dist/js/i18n/zh-TW.js index a1394393d7..017483be14 100644 --- a/awx/ui/static/lib/select2/dist/js/i18n/zh-TW.js +++ b/awx/ui/client/lib/select2/dist/js/i18n/zh-TW.js @@ -1,3 +1,3 @@ -/*! Select2 4.0.0-rc.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-TW",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="請刪掉"+t+"個字元";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="請再輸入"+t+"個字元";return n},loadingMore:function(){return"載入中…"},maximumSelected:function(e){var t="你只能選擇最多"+e.maximum+"項";return t},noResults:function(){return"沒有找到相符的項目"},searching:function(){return"搜尋中…"}}}),{define:e.define,require:e.require}})(); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/dist/js/select2.full.js b/awx/ui/client/lib/select2/dist/js/select2.full.js similarity index 94% rename from awx/ui/static/lib/select2/dist/js/select2.full.js rename to awx/ui/client/lib/select2/dist/js/select2.full.js index 366bac9606..dd0e8bc74d 100644 --- a/awx/ui/static/lib/select2/dist/js/select2.full.js +++ b/awx/ui/client/lib/select2/dist/js/select2.full.js @@ -1,5 +1,5 @@ /*! - * Select2 4.0.0-rc.2 + * Select2 4.0.0 * https://select2.github.io * * Released under the MIT license @@ -714,6 +714,23 @@ S2.define('select2/utils',[ }); }; + // Append an array of jQuery nodes to a given element. + Utils.appendMany = function ($element, $nodes) { + // jQuery 1.7.x does not support $.fn.append() with an array + // Fall back to a jQuery object collection using $.fn.add() + if ($.fn.jquery.substr(0, 3) === '1.7') { + var $jqNodes = $(); + + $.map($nodes, function (node) { + $jqNodes = $jqNodes.add(node); + }); + + $nodes = $jqNodes; + } + + $element.append($nodes); + }; + return Utils; }); @@ -828,7 +845,8 @@ S2.define('select2/results',[ // id needs to be converted to a string when comparing var id = '' + item.id; - if ($.inArray(id, selectedIds) > -1) { + if ((item.element != null && item.element.selected) || + (item.element == null && $.inArray(id, selectedIds) > -1)) { $option.attr('aria-selected', 'true'); } else { $option.attr('aria-selected', 'false'); @@ -1564,7 +1582,7 @@ S2.define('select2/selection/multiple',[ return; } - var $selections = $(); + var $selections = []; for (var d = 0; d < data.length; d++) { var selection = data[d]; @@ -1577,10 +1595,12 @@ S2.define('select2/selection/multiple',[ $selection.data('data', selection); - $selections = $selections.add($selection); + $selections.push($selection); } - this.$selection.find('.select2-selection__rendered').append($selections); + var $rendered = this.$selection.find('.select2-selection__rendered'); + + Utils.appendMany($rendered, $selections); }; return MultipleSelection; @@ -1637,8 +1657,9 @@ S2.define('select2/selection/placeholder',[ }); S2.define('select2/selection/allowClear',[ - 'jquery' -], function ($) { + 'jquery', + '../keys' +], function ($, KEYS) { function AllowClear () { } AllowClear.prototype.bind = function (decorated, container, $container) { @@ -1646,8 +1667,8 @@ S2.define('select2/selection/allowClear',[ decorated.call(this, container, $container); - if (self.placeholder == null) { - if (self.options.get('debug') && window.console && console.error) { + if (this.placeholder == null) { + if (this.options.get('debug') && window.console && console.error) { console.error( 'Select2: The `allowClear` option should be used in combination ' + 'with the `placeholder` option.' @@ -1657,34 +1678,59 @@ S2.define('select2/selection/allowClear',[ this.$selection.on('mousedown', '.select2-selection__clear', function (evt) { - // Ignore the event if it is disabled - if (self.options.get('disabled')) { - return; - } - - evt.stopPropagation(); - - var data = $(this).data('data'); - - for (var d = 0; d < data.length; d++) { - var unselectData = { - data: data[d] - }; - - // Trigger the `unselect` event, so people can prevent it from being - // cleared. - self.trigger('unselect', unselectData); - - // If the event was prevented, don't clear it out. - if (unselectData.prevented) { - return; - } - } - - self.$element.val(self.placeholder.id).trigger('change'); - - self.trigger('toggle'); + self._handleClear(evt); }); + + container.on('keypress', function (evt) { + self._handleKeyboardClear(evt, container); + }); + }; + + AllowClear.prototype._handleClear = function (_, evt) { + // Ignore the event if it is disabled + if (this.options.get('disabled')) { + return; + } + + var $clear = this.$selection.find('.select2-selection__clear'); + + // Ignore the event if nothing has been selected + if ($clear.length === 0) { + return; + } + + evt.stopPropagation(); + + var data = $clear.data('data'); + + for (var d = 0; d < data.length; d++) { + var unselectData = { + data: data[d] + }; + + // Trigger the `unselect` event, so people can prevent it from being + // cleared. + this.trigger('unselect', unselectData); + + // If the event was prevented, don't clear it out. + if (unselectData.prevented) { + return; + } + } + + this.$element.val(this.placeholder.id).trigger('change'); + + this.trigger('toggle'); + }; + + AllowClear.prototype._handleKeyboardClear = function (_, evt, container) { + if (container.isOpen()) { + return; + } + + if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) { + this._handleClear(evt); + } }; AllowClear.prototype.update = function (decorated, data) { @@ -1785,6 +1831,8 @@ S2.define('select2/selection/search',[ var item = $previousChoice.data('data'); self.searchRemoveChoice(item); + + evt.preventDefault(); } } }); @@ -2865,7 +2913,9 @@ S2.define('select2/data/select',[ SelectAdapter.prototype.select = function (data) { var self = this; - // If data.element is a DOM nose, use it instead + data.selected = true; + + // If data.element is a DOM node, use it instead if ($(data.element).is('option')) { data.element.selected = true; @@ -2907,6 +2957,8 @@ S2.define('select2/data/select',[ return; } + data.selected = false; + if ($(data.element).is('option')) { data.element.selected = false; @@ -2982,7 +3034,7 @@ S2.define('select2/data/select',[ }; SelectAdapter.prototype.addOptions = function ($options) { - this.$element.append($options); + Utils.appendMany(this.$element, $options); }; SelectAdapter.prototype.option = function (data) { @@ -3131,7 +3183,9 @@ S2.define('select2/data/array',[ Utils.Extend(ArrayAdapter, SelectAdapter); ArrayAdapter.prototype.select = function (data) { - var $option = this.$element.find('option[value="' + data.id + '"]'); + var $option = this.$element.find('option').filter(function (i, elm) { + return elm.value == data.id.toString(); + }); if ($option.length === 0) { $option = this.option(data); @@ -3150,7 +3204,7 @@ S2.define('select2/data/array',[ return self.item($(this)).id; }).get(); - var $options = $(); + var $options = []; // Filter out all items except for the one passed in the argument function onlyItem (item) { @@ -3181,10 +3235,10 @@ S2.define('select2/data/array',[ if (item.children) { var $children = this.convertToOptions(item.children); - $option.append($children); + Utils.appendMany($option, $children); } - $options = $options.add($option); + $options.push($option); } return $options; @@ -3238,8 +3292,12 @@ S2.define('select2/data/ajax',[ var matches = []; var self = this; - if (this._request) { - this._request.abort(); + if (this._request != null) { + // JSONP requests cannot always be aborted + if ($.isFunction(this._request.abort)) { + this._request.abort(); + } + this._request = null; } @@ -3364,7 +3422,7 @@ S2.define('select2/data/tags',[ var $option = self.option(tag); $option.attr('data-select2-tag', true); - self.addOptions($option); + self.addOptions([$option]); self.insertTag(data, tag); } @@ -4040,9 +4098,16 @@ S2.define('select2/dropdown/attachBody',[ AttachBody.prototype._resizeDropdown = function () { this.$dropdownContainer.width(); - this.$dropdown.css({ + var css = { width: this.$container.outerWidth(false) + 'px' - }); + }; + + if (this.options.get('dropdownAutoWidth')) { + css.minWidth = css.width; + css.width = 'auto'; + } + + this.$dropdown.css(css); }; AttachBody.prototype._showDropdown = function (decorated) { @@ -4117,7 +4182,9 @@ S2.define('select2/dropdown/selectOnClose',[ return; } - $highlightedResults.trigger('mouseup'); + this.trigger('select', { + data: $highlightedResults.data('data') + }); }; return SelectOnClose; @@ -4368,6 +4435,19 @@ S2.define('select2/defaults',[ ); } + if ( + options.dropdownCssClass != null || + options.dropdownCss != null || + options.adaptDropdownCssClass != null + ) { + var DropdownCSS = require(options.amdBase + 'compat/dropdownCss'); + + options.dropdownAdapter = Utils.Decorate( + options.dropdownAdapter, + DropdownCSS + ); + } + options.dropdownAdapter = Utils.Decorate( options.dropdownAdapter, AttachBody @@ -4403,6 +4483,19 @@ S2.define('select2/defaults',[ ); } + if ( + options.containerCssClass != null || + options.containerCss != null || + options.adaptContainerCssClass != null + ) { + var ContainerCSS = require(options.amdBase + 'compat/containerCss'); + + options.selectionAdapter = Utils.Decorate( + options.selectionAdapter, + ContainerCSS + ); + } + options.selectionAdapter = Utils.Decorate( options.selectionAdapter, EventRelay @@ -4460,7 +4553,14 @@ S2.define('select2/defaults',[ options.translations = languages; } else { - options.translations = new Translation(options.language); + var baseTranslation = Translation.loadPath( + this.defaults.amdLanguageBase + 'en' + ); + var customTranslation = new Translation(options.language); + + customTranslation.extend(baseTranslation); + + options.translations = customTranslation; } return options; @@ -4526,6 +4626,7 @@ S2.define('select2/defaults',[ amdLanguageBase: './i18n/', closeOnSelect: true, debug: false, + dropdownAutoWidth: false, escapeMarkup: Utils.escapeMarkup, language: EnglishTranslation, matcher: matcher, @@ -4565,10 +4666,11 @@ S2.define('select2/defaults',[ }); S2.define('select2/options',[ + 'require', 'jquery', './defaults', './utils' -], function ($, Defaults, Utils) { +], function (require, $, Defaults, Utils) { function Options (options, $element) { this.options = options; @@ -4765,8 +4867,9 @@ S2.define('select2/core',[ }); // Hide the original select - $element.hide(); - + $element.addClass('select2-hidden-accessible'); + $element.attr('aria-hidden', 'true'); + // Synchronize any monitored attributes this._syncAttributes(); @@ -5177,7 +5280,8 @@ S2.define('select2/core',[ this.$element.off('.select2'); this.$element.attr('tabindex', this.$element.data('old-tabindex')); - this.$element.show(); + this.$element.removeClass('select2-hidden-accessible'); + this.$element.attr('aria-hidden', 'false'); this.$element.removeData('select2'); this.dataAdapter.destroy(); @@ -5213,6 +5317,560 @@ S2.define('select2/core',[ return Select2; }); +S2.define('select2/compat/utils',[ + 'jquery' +], function ($) { + function syncCssClasses ($dest, $src, adapter) { + var classes, replacements = [], adapted; + + classes = $.trim($dest.attr('class')); + + if (classes) { + classes = '' + classes; // for IE which returns object + + $(classes.split(/\s+/)).each(function () { + // Save all Select2 classes + if (this.indexOf('select2-') === 0) { + replacements.push(this); + } + }); + } + + classes = $.trim($src.attr('class')); + + if (classes) { + classes = '' + classes; // for IE which returns object + + $(classes.split(/\s+/)).each(function () { + // Only adapt non-Select2 classes + if (this.indexOf('select2-') !== 0) { + adapted = adapter(this); + + if (adapted != null) { + replacements.push(adapted); + } + } + }); + } + + $dest.attr('class', replacements.join(' ')); + } + + return { + syncCssClasses: syncCssClasses + }; +}); + +S2.define('select2/compat/containerCss',[ + 'jquery', + './utils' +], function ($, CompatUtils) { + // No-op CSS adapter that discards all classes by default + function _containerAdapter (clazz) { + return null; + } + + function ContainerCSS () { } + + ContainerCSS.prototype.render = function (decorated) { + var $container = decorated.call(this); + + var containerCssClass = this.options.get('containerCssClass') || ''; + + if ($.isFunction(containerCssClass)) { + containerCssClass = containerCssClass(this.$element); + } + + var containerCssAdapter = this.options.get('adaptContainerCssClass'); + containerCssAdapter = containerCssAdapter || _containerAdapter; + + if (containerCssClass.indexOf(':all:') !== -1) { + containerCssClass = containerCssClass.replace(':all', ''); + + var _cssAdapter = containerCssAdapter; + + containerCssAdapter = function (clazz) { + var adapted = _cssAdapter(clazz); + + if (adapted != null) { + // Append the old one along with the adapted one + return adapted + ' ' + clazz; + } + + return clazz; + }; + } + + var containerCss = this.options.get('containerCss') || {}; + + if ($.isFunction(containerCss)) { + containerCss = containerCss(this.$element); + } + + CompatUtils.syncCssClasses($container, this.$element, containerCssAdapter); + + $container.css(containerCss); + $container.addClass(containerCssClass); + + return $container; + }; + + return ContainerCSS; +}); + +S2.define('select2/compat/dropdownCss',[ + 'jquery', + './utils' +], function ($, CompatUtils) { + // No-op CSS adapter that discards all classes by default + function _dropdownAdapter (clazz) { + return null; + } + + function DropdownCSS () { } + + DropdownCSS.prototype.render = function (decorated) { + var $dropdown = decorated.call(this); + + var dropdownCssClass = this.options.get('dropdownCssClass') || ''; + + if ($.isFunction(dropdownCssClass)) { + dropdownCssClass = dropdownCssClass(this.$element); + } + + var dropdownCssAdapter = this.options.get('adaptDropdownCssClass'); + dropdownCssAdapter = dropdownCssAdapter || _dropdownAdapter; + + if (dropdownCssClass.indexOf(':all:') !== -1) { + dropdownCssClass = dropdownCssClass.replace(':all', ''); + + var _cssAdapter = dropdownCssAdapter; + + dropdownCssAdapter = function (clazz) { + var adapted = _cssAdapter(clazz); + + if (adapted != null) { + // Append the old one along with the adapted one + return adapted + ' ' + clazz; + } + + return clazz; + }; + } + + var dropdownCss = this.options.get('dropdownCss') || {}; + + if ($.isFunction(dropdownCss)) { + dropdownCss = dropdownCss(this.$element); + } + + CompatUtils.syncCssClasses($dropdown, this.$element, dropdownCssAdapter); + + $dropdown.css(dropdownCss); + $dropdown.addClass(dropdownCssClass); + + return $dropdown; + }; + + return DropdownCSS; +}); + +S2.define('select2/compat/initSelection',[ + 'jquery' +], function ($) { + function InitSelection (decorated, $element, options) { + if (options.get('debug') && window.console && console.warn) { + console.warn( + 'Select2: The `initSelection` option has been deprecated in favor' + + ' of a custom data adapter that overrides the `current` method. ' + + 'This method is now called multiple times instead of a single ' + + 'time when the instance is initialized. Support will be removed ' + + 'for the `initSelection` option in future versions of Select2' + ); + } + + this.initSelection = options.get('initSelection'); + this._isInitialized = false; + + decorated.call(this, $element, options); + } + + InitSelection.prototype.current = function (decorated, callback) { + var self = this; + + if (this._isInitialized) { + decorated.call(this, callback); + + return; + } + + this.initSelection.call(null, this.$element, function (data) { + self._isInitialized = true; + + if (!$.isArray(data)) { + data = [data]; + } + + callback(data); + }); + }; + + return InitSelection; +}); + +S2.define('select2/compat/inputData',[ + 'jquery' +], function ($) { + function InputData (decorated, $element, options) { + this._currentData = []; + this._valueSeparator = options.get('valueSeparator') || ','; + + if ($element.prop('type') === 'hidden') { + if (options.get('debug') && console && console.warn) { + console.warn( + 'Select2: Using a hidden input with Select2 is no longer ' + + 'supported and may stop working in the future. It is recommended ' + + 'to use a `` element instead.' - ); - } - } - - decorated.call(this, $element, options); - } - - InputData.prototype.current = function (_, callback) { - function getSelected (data, selectedIds) { - var selected = []; - - if (data.selected || $.inArray(data.id, selectedIds) !== -1) { - data.selected = true; - selected.push(data); - } else { - data.selected = false; - } - - if (data.children) { - selected.push.apply(selected, getSelected(data.children, selectedIds)); - } - - return selected; - } - - var selected = []; - - for (var d = 0; d < this._currentData.length; d++) { - var data = this._currentData[d]; - - selected.push.apply( - selected, - getSelected( - data, - this.$element.val().split( - this._valueSeparator - ) - ) - ); - } - - callback(selected); - }; - - InputData.prototype.select = function (_, data) { - if (!this.options.get('multiple')) { - this.current(function (allData) { - $.map(allData, function (data) { - data.selected = false; - }); - }); - - this.$element.val(data.id); - this.$element.trigger('change'); - } else { - var value = this.$element.val(); - value += this._valueSeparator + data.id; - - this.$element.val(value); - this.$element.trigger('change'); - } - }; - - InputData.prototype.unselect = function (_, data) { - var self = this; - - data.selected = false; - - this.current(function (allData) { - var values = []; - - for (var d = 0; d < allData.length; d++) { - var item = allData[d]; - - if (data.id == item.id) { - continue; - } - - values.push(item.id); - } - - self.$element.val(values.join(self._valueSeparator)); - self.$element.trigger('change'); - }); - }; - - InputData.prototype.query = function (_, params, callback) { - var results = []; - - for (var d = 0; d < this._currentData.length; d++) { - var data = this._currentData[d]; - - var matches = this.matches(params, data); - - if (matches !== null) { - results.push(matches); - } - } - - callback({ - results: results - }); - }; - - InputData.prototype.addOptions = function (_, $options) { - var options = $.map($options, function (option) { - return $.data(option, 'data'); - }); - - this._currentData.push.apply(this._currentData, options); - }; - - return InputData; -}); - -S2.define('select2/compat/query',[ - -], function () { - function Query (decorated, $element, options) { - if (options.get('debug') && window.console && console.warn) { - console.warn( - 'Select2: The `query` option has been deprecated in favor of a ' + - 'custom data adapter that overrides the `query` method. Support ' + - 'will be removed for the `query` option in future versions of ' + - 'Select2.' - ); - } - - decorated.call(this, $element, options); - } - - Query.prototype.query = function (_, params, callback) { - params.callback = callback; - - var query = this.options.get('query'); - - query.call(null, params); - }; - - return Query; -}); - -S2.define('select2/dropdown/attachContainer',[ - -], function () { - function AttachContainer (decorated, $element, options) { - decorated.call(this, $element, options); - } - - AttachContainer.prototype.position = - function (decorated, $dropdown, $container) { - var $dropdownContainer = $container.find('.dropdown-wrapper'); - $dropdownContainer.append($dropdown); - - $dropdown.addClass('select2-dropdown--below'); - $container.addClass('select2-container--below'); - }; - - return AttachContainer; -}); - -S2.define('select2/dropdown/stopPropagation',[ - -], function () { - function StopPropagation () { } - - StopPropagation.prototype.bind = function (decorated, container, $container) { - decorated.call(this, container, $container); - - var stoppedEvents = [ - 'blur', - 'change', - 'click', - 'dblclick', - 'focus', - 'focusin', - 'focusout', - 'input', - 'keydown', - 'keyup', - 'keypress', - 'mousedown', - 'mouseenter', - 'mouseleave', - 'mousemove', - 'mouseover', - 'mouseup', - 'search', - 'touchend', - 'touchstart' - ]; - - this.$dropdown.on(stoppedEvents.join(' '), function (evt) { - evt.stopPropagation(); - }); - }; - - return StopPropagation; -}); - -S2.define('select2/selection/stopPropagation',[ - -], function () { - function StopPropagation () { } - - StopPropagation.prototype.bind = function (decorated, container, $container) { - decorated.call(this, container, $container); - - var stoppedEvents = [ - 'blur', - 'change', - 'click', - 'dblclick', - 'focus', - 'focusin', - 'focusout', - 'input', - 'keydown', - 'keyup', - 'keypress', - 'mousedown', - 'mouseenter', - 'mouseleave', - 'mousemove', - 'mouseover', - 'mouseup', - 'search', - 'touchend', - 'touchstart' - ]; - - this.$selection.on(stoppedEvents.join(' '), function (evt) { - evt.stopPropagation(); - }); - }; - - return StopPropagation; -}); - -S2.define('jquery.select2',[ - 'jquery', - './select2/core', - './select2/defaults' -], function ($, Select2, Defaults) { - // Force jQuery.mousewheel to be loaded if it hasn't already - try { - require('jquery.mousewheel'); - } catch (Exception) { } - - if ($.fn.select2 == null) { - $.fn.select2 = function (options) { - options = options || {}; - - if (typeof options === 'object') { - this.each(function () { - var instanceOptions = $.extend({}, options, true); - - var instance = new Select2($(this), instanceOptions); - }); - - return this; - } else if (typeof options === 'string') { - var instance = this.data('select2'); - var args = Array.prototype.slice.call(arguments, 1); - - return instance[options](args); - } else { - throw new Error('Invalid arguments for Select2: ' + options); - } - }; - } - - if ($.fn.select2.defaults == null) { - $.fn.select2.defaults = Defaults; - } - - return Select2; -}); - // Return the AMD loader configuration so it can be used outside of this file return { define: S2.define, @@ -5827,7 +6107,7 @@ S2.define('jquery.select2',[ // Hold the AMD module references on the jQuery function that was just loaded // This allows Select2 to use the internal loader outside of this file, such // as in the language files. - $.fn.select2.amd = S2; + jQuery.fn.select2.amd = S2; // Return the Select2 instance for anyone who is importing it. return select2; diff --git a/awx/ui/client/lib/select2/dist/js/select2.full.min.js b/awx/ui/client/lib/select2/dist/js/select2.full.min.js new file mode 100644 index 0000000000..59d8c1aaa6 --- /dev/null +++ b/awx/ui/client/lib/select2/dist/js/select2.full.min.js @@ -0,0 +1,3 @@ +/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){var b=function(){if(a&&a.fn&&a.fn.select2&&a.fn.select2.amd)var b=a.fn.select2.amd;var b;return function(){if(!b||!b.requirejs){b?c=b:b={};var a,c,d;!function(b){function e(a,b){return u.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n=b&&b.split("/"),o=s.map,p=o&&o["*"]||{};if(a&&"."===a.charAt(0))if(b){for(n=n.slice(0,n.length-1),a=a.split("/"),g=a.length-1,s.nodeIdCompat&&w.test(a[g])&&(a[g]=a[g].replace(w,"")),a=n.concat(a),k=0;k0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}else 0===a.indexOf("./")&&(a=a.substring(2));if((n||p)&&o){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),n)for(l=n.length;l>0;l-=1)if(e=o[n.slice(0,l).join("/")],e&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&p&&p[d]&&(i=p[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function g(a,c){return function(){return n.apply(b,v.call(arguments,0).concat([a,c]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){q[a]=b}}function j(a){if(e(r,a)){var c=r[a];delete r[a],t[a]=!0,m.apply(b,c)}if(!e(q,a)&&!e(t,a))throw new Error("No "+a);return q[a]}function k(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return function(){return s&&s.config&&s.config[a]||{}}}var m,n,o,p,q={},r={},s={},t={},u=Object.prototype.hasOwnProperty,v=[].slice,w=/\.js$/;o=function(a,b){var c,d=k(a),e=d[0];return a=d[1],e&&(e=f(e,b),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(b)):f(a,b):(a=f(a,b),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+"!"+a:a,n:a,pr:e,p:c}},p={require:function(a){return g(a)},exports:function(a){var b=q[a];return"undefined"!=typeof b?b:q[a]={}},module:function(a){return{id:a,uri:"",exports:q[a],config:l(a)}}},m=function(a,c,d,f){var h,k,l,m,n,s,u=[],v=typeof d;if(f=f||a,"undefined"===v||"function"===v){for(c=!c.length&&d.length?["require","exports","module"]:c,n=0;n0&&(b.call(arguments,a.prototype.constructor),e=c.prototype.constructor),e.apply(this,arguments)}function e(){this.constructor=d}var f=b(c),g=b(a);c.displayName=a.displayName,d.prototype=new e;for(var h=0;hc;c++)a[c].apply(this,b)},c.Observable=d,c.generateChars=function(a){for(var b="",c=0;a>c;c++){var d=Math.floor(36*Math.random());b+=d.toString(36)}return b},c.bind=function(a,b){return function(){a.apply(b,arguments)}},c._convertData=function(a){for(var b in a){var c=b.split("-"),d=a;if(1!==c.length){for(var e=0;e":">",'"':""","'":"'","/":"/"};return"string"!=typeof a?a:String(a).replace(/[&<>"'\/\\]/g,function(a){return b[a]})},c.appendMany=function(b,c){if("1.7"===a.fn.jquery.substr(0,3)){var d=a();a.map(c,function(a){d=d.add(a)}),c=d}b.append(c)},c}),b.define("select2/results",["jquery","./utils"],function(a,b){function c(a,b,d){this.$element=a,this.data=d,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('
    ');return this.options.get("multiple")&&b.attr("aria-multiselectable","true"),this.$results=b,b},c.prototype.clear=function(){this.$results.empty()},c.prototype.displayMessage=function(b){var c=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var d=a('
  • '),e=this.options.get("translations").get(b.message);d.append(c(e(b.args))),this.$results.append(d)},c.prototype.append=function(a){this.hideLoading();var b=[];if(null==a.results||0===a.results.length)return void(0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"}));a.results=this.sort(a.results);for(var c=0;c-1?b.attr("aria-selected","true"):b.attr("aria-selected","false")});var f=e.filter("[aria-selected=true]");f.length>0?f.first().trigger("mouseenter"):e.first().trigger("mouseenter")})},c.prototype.showLoading=function(a){this.hideLoading();var b=this.options.get("translations").get("searching"),c={disabled:!0,loading:!0,text:b(a)},d=this.option(c);d.className+=" loading-results",this.$results.prepend(d)},c.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},c.prototype.option=function(b){var c=document.createElement("li");c.className="select2-results__option";var d={role:"treeitem","aria-selected":"false"};b.disabled&&(delete d["aria-selected"],d["aria-disabled"]="true"),null==b.id&&delete d["aria-selected"],null!=b._resultId&&(c.id=b._resultId),b.title&&(c.title=b.title),b.children&&(d.role="group",d["aria-label"]=b.text,delete d["aria-selected"]);for(var e in d){var f=d[e];c.setAttribute(e,f)}if(b.children){var g=a(c),h=document.createElement("strong");h.className="select2-results__group";{a(h)}this.template(b,h);for(var i=[],j=0;j",{"class":"select2-results__options select2-results__options--nested"});m.append(i),g.append(h),g.append(m)}else this.template(b,c);return a.data(c,"data",b),c},c.prototype.bind=function(b){var c=this,d=b.id+"-results";this.$results.attr("id",d),b.on("results:all",function(a){c.clear(),c.append(a.data),b.isOpen()&&c.setClasses()}),b.on("results:append",function(a){c.append(a.data),b.isOpen()&&c.setClasses()}),b.on("query",function(a){c.showLoading(a)}),b.on("select",function(){b.isOpen()&&c.setClasses()}),b.on("unselect",function(){b.isOpen()&&c.setClasses()}),b.on("open",function(){c.$results.attr("aria-expanded","true"),c.$results.attr("aria-hidden","false"),c.setClasses(),c.ensureHighlightVisible()}),b.on("close",function(){c.$results.attr("aria-expanded","false"),c.$results.attr("aria-hidden","true"),c.$results.removeAttr("aria-activedescendant")}),b.on("results:toggle",function(){var a=c.getHighlightedResults();0!==a.length&&a.trigger("mouseup")}),b.on("results:select",function(){var a=c.getHighlightedResults();if(0!==a.length){var b=a.data("data");"true"==a.attr("aria-selected")?c.trigger("close"):c.trigger("select",{data:b})}}),b.on("results:previous",function(){var a=c.getHighlightedResults(),b=c.$results.find("[aria-selected]"),d=b.index(a);if(0!==d){var e=d-1;0===a.length&&(e=0);var f=b.eq(e);f.trigger("mouseenter");var g=c.$results.offset().top,h=f.offset().top,i=c.$results.scrollTop()+(h-g);0===e?c.$results.scrollTop(0):0>h-g&&c.$results.scrollTop(i)}}),b.on("results:next",function(){var a=c.getHighlightedResults(),b=c.$results.find("[aria-selected]"),d=b.index(a),e=d+1;if(!(e>=b.length)){var f=b.eq(e);f.trigger("mouseenter");var g=c.$results.offset().top+c.$results.outerHeight(!1),h=f.offset().top+f.outerHeight(!1),i=c.$results.scrollTop()+h-g;0===e?c.$results.scrollTop(0):h>g&&c.$results.scrollTop(i)}}),b.on("results:focus",function(a){a.element.addClass("select2-results__option--highlighted")}),b.on("results:message",function(a){c.displayMessage(a)}),a.fn.mousewheel&&this.$results.on("mousewheel",function(a){var b=c.$results.scrollTop(),d=c.$results.get(0).scrollHeight-c.$results.scrollTop()+a.deltaY,e=a.deltaY>0&&b-a.deltaY<=0,f=a.deltaY<0&&d<=c.$results.height();e?(c.$results.scrollTop(0),a.preventDefault(),a.stopPropagation()):f&&(c.$results.scrollTop(c.$results.get(0).scrollHeight-c.$results.height()),a.preventDefault(),a.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(b){var d=a(this),e=d.data("data");return"true"===d.attr("aria-selected")?void(c.options.get("multiple")?c.trigger("unselect",{originalEvent:b,data:e}):c.trigger("close")):void c.trigger("select",{originalEvent:b,data:e})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(){var b=a(this).data("data");c.getHighlightedResults().removeClass("select2-results__option--highlighted"),c.trigger("results:focus",{data:b,element:a(this)})})},c.prototype.getHighlightedResults=function(){var a=this.$results.find(".select2-results__option--highlighted");return a},c.prototype.destroy=function(){this.$results.remove()},c.prototype.ensureHighlightVisible=function(){var a=this.getHighlightedResults();if(0!==a.length){var b=this.$results.find("[aria-selected]"),c=b.index(a),d=this.$results.offset().top,e=a.offset().top,f=this.$results.scrollTop()+(e-d),g=e-d;f-=2*a.outerHeight(!1),2>=c?this.$results.scrollTop(0):(g>this.$results.outerHeight()||0>g)&&this.$results.scrollTop(f)}},c.prototype.template=function(b,c){var d=this.options.get("templateResult"),e=this.options.get("escapeMarkup"),f=d(b);null==f?c.style.display="none":"string"==typeof f?c.innerHTML=e(f):a(c).append(f)},c}),b.define("select2/keys",[],function(){var a={BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46};return a}),b.define("select2/selection/base",["jquery","../utils","../keys"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,b.Observable),d.prototype.render=function(){var b=a('');return this._tabindex=0,null!=this.$element.data("old-tabindex")?this._tabindex=this.$element.data("old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),b.attr("title",this.$element.attr("title")),b.attr("tabindex",this._tabindex),this.$selection=b,b},d.prototype.bind=function(a){var b=this,d=(a.id+"-container",a.id+"-results");this.container=a,this.$selection.on("focus",function(a){b.trigger("focus",a)}),this.$selection.on("blur",function(a){b.trigger("blur",a)}),this.$selection.on("keydown",function(a){b.trigger("keypress",a),a.which===c.SPACE&&a.preventDefault()}),a.on("results:focus",function(a){b.$selection.attr("aria-activedescendant",a.data._resultId)}),a.on("selection:update",function(a){b.update(a.data)}),a.on("open",function(){b.$selection.attr("aria-expanded","true"),b.$selection.attr("aria-owns",d),b._attachCloseHandler(a)}),a.on("close",function(){b.$selection.attr("aria-expanded","false"),b.$selection.removeAttr("aria-activedescendant"),b.$selection.removeAttr("aria-owns"),b.$selection.focus(),b._detachCloseHandler(a)}),a.on("enable",function(){b.$selection.attr("tabindex",b._tabindex)}),a.on("disable",function(){b.$selection.attr("tabindex","-1")})},d.prototype._attachCloseHandler=function(b){a(document.body).on("mousedown.select2."+b.id,function(b){var c=a(b.target),d=c.closest(".select2"),e=a(".select2.select2-container--open");e.each(function(){var b=a(this);if(this!=d[0]){var c=b.data("element");c.select2("close")}})})},d.prototype._detachCloseHandler=function(b){a(document.body).off("mousedown.select2."+b.id)},d.prototype.position=function(a,b){var c=b.find(".selection");c.append(a)},d.prototype.destroy=function(){this._detachCloseHandler(this.container)},d.prototype.update=function(){throw new Error("The `update` method must be defined in child classes.")},d}),b.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(a,b,c){function d(){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass("select2-selection--single"),a.html(''),a},d.prototype.bind=function(a){var b=this;d.__super__.bind.apply(this,arguments);var c=a.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",c),this.$selection.attr("aria-labelledby",c),this.$selection.on("mousedown",function(a){1===a.which&&b.trigger("toggle",{originalEvent:a})}),this.$selection.on("focus",function(){}),this.$selection.on("blur",function(){}),a.on("selection:update",function(a){b.update(a.data)})},d.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},d.prototype.display=function(a){var b=this.options.get("templateSelection"),c=this.options.get("escapeMarkup");return c(b(a))},d.prototype.selectionContainer=function(){return a("")},d.prototype.update=function(a){if(0===a.length)return void this.clear();var b=a[0],c=this.display(b),d=this.$selection.find(".select2-selection__rendered");d.empty().append(c),d.prop("title",b.title||b.text)},d}),b.define("select2/selection/multiple",["jquery","./base","../utils"],function(a,b,c){function d(){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass("select2-selection--multiple"),a.html('
      '),a},d.prototype.bind=function(){var b=this;d.__super__.bind.apply(this,arguments),this.$selection.on("click",function(a){b.trigger("toggle",{originalEvent:a})}),this.$selection.on("click",".select2-selection__choice__remove",function(c){var d=a(this),e=d.parent(),f=e.data("data");b.trigger("unselect",{originalEvent:c,data:f})})},d.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},d.prototype.display=function(a){var b=this.options.get("templateSelection"),c=this.options.get("escapeMarkup");return c(b(a))},d.prototype.selectionContainer=function(){var b=a('
    • ×
    • ');return b},d.prototype.update=function(a){if(this.clear(),0!==a.length){for(var b=[],d=0;d1;if(d||c)return a.call(this,b);this.clear();var e=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(e)},a}),b.define("select2/selection/allowClear",["jquery","../keys"],function(a,b){function c(){}return c.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(a){d._handleClear(a)}),b.on("keypress",function(a){d._handleKeyboardClear(a,b)})},c.prototype._handleClear=function(a,b){if(!this.options.get("disabled")){var c=this.$selection.find(".select2-selection__clear");if(0!==c.length){b.stopPropagation();for(var d=c.data("data"),e=0;e0||0===c.length)){var d=a('×');d.data("data",c),this.$selection.find(".select2-selection__rendered").prepend(d)}},c}),b.define("select2/selection/search",["jquery","../utils","../keys"],function(a,b,c){function d(a,b,c){a.call(this,b,c)}return d.prototype.render=function(b){var c=a('');this.$searchContainer=c,this.$search=c.find("input");var d=b.call(this);return d},d.prototype.bind=function(a,b,d){var e=this;a.call(this,b,d),b.on("open",function(){e.$search.attr("tabindex",0),e.$search.focus()}),b.on("close",function(){e.$search.attr("tabindex",-1),e.$search.val(""),e.$search.focus()}),b.on("enable",function(){e.$search.prop("disabled",!1)}),b.on("disable",function(){e.$search.prop("disabled",!0)}),this.$selection.on("focusin",".select2-search--inline",function(a){e.trigger("focus",a)}),this.$selection.on("focusout",".select2-search--inline",function(a){e.trigger("blur",a)}),this.$selection.on("keydown",".select2-search--inline",function(a){a.stopPropagation(),e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented();var b=a.which;if(b===c.BACKSPACE&&""===e.$search.val()){var d=e.$searchContainer.prev(".select2-selection__choice");if(d.length>0){var f=d.data("data");e.searchRemoveChoice(f),a.preventDefault()}}}),this.$selection.on("input",".select2-search--inline",function(){e.$selection.off("keyup.search")}),this.$selection.on("keyup.search input",".select2-search--inline",function(a){e.handleSearch(a)})},d.prototype.createPlaceholder=function(a,b){this.$search.attr("placeholder",b.text)},d.prototype.update=function(a,b){this.$search.attr("placeholder",""),a.call(this,b),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch()},d.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var a=this.$search.val();this.trigger("query",{term:a})}this._keyUpPrevented=!1},d.prototype.searchRemoveChoice=function(a,b){this.trigger("unselect",{data:b}),this.trigger("open"),this.$search.val(b.text+" ")},d.prototype.resizeSearch=function(){this.$search.css("width","25px");var a="";if(""!==this.$search.attr("placeholder"))a=this.$selection.find(".select2-selection__rendered").innerWidth();else{var b=this.$search.val().length+1;a=.75*b+"em"}this.$search.css("width",a)},d}),b.define("select2/selection/eventRelay",["jquery"],function(a){function b(){}return b.prototype.bind=function(b,c,d){var e=this,f=["open","opening","close","closing","select","selecting","unselect","unselecting"],g=["opening","closing","selecting","unselecting"];b.call(this,c,d),c.on("*",function(b,c){if(-1!==a.inArray(b,f)){c=c||{};var d=a.Event("select2:"+b,{params:c});e.$element.trigger(d),-1!==a.inArray(b,g)&&(c.prevented=d.isDefaultPrevented())}})},b}),b.define("select2/translation",["jquery","require"],function(a,b){function c(a){this.dict=a||{}}return c.prototype.all=function(){return this.dict},c.prototype.get=function(a){return this.dict[a]},c.prototype.extend=function(b){this.dict=a.extend({},b.all(),this.dict)},c._cache={},c.loadPath=function(a){if(!(a in c._cache)){var d=b(a);c._cache[a]=d}return new c(c._cache[a])},c}),b.define("select2/diacritics",[],function(){var a={"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"};return a}),b.define("select2/data/base",["../utils"],function(a){function b(){b.__super__.constructor.call(this)}return a.Extend(b,a.Observable),b.prototype.current=function(){throw new Error("The `current` method must be defined in child classes.")},b.prototype.query=function(){throw new Error("The `query` method must be defined in child classes.")},b.prototype.bind=function(){},b.prototype.destroy=function(){},b.prototype.generateResultId=function(b,c){var d=b.id+"-result-";return d+=a.generateChars(4),d+=null!=c.id?"-"+c.id.toString():"-"+a.generateChars(4)},b}),b.define("select2/data/select",["./base","../utils","jquery"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,a),d.prototype.current=function(a){var b=[],d=this;this.$element.find(":selected").each(function(){var a=c(this),e=d.item(a);b.push(e)}),a(b)},d.prototype.select=function(a){var b=this;if(a.selected=!0,c(a.element).is("option"))return a.element.selected=!0,void this.$element.trigger("change");if(this.$element.prop("multiple"))this.current(function(d){var e=[];a=[a],a.push.apply(a,d);for(var f=0;f=0){var k=f.filter(d(j)),l=this.item(k),m=(c.extend(!0,{},l,j),this.option(l));k.replaceWith(m)}else{var n=this.option(j);if(j.children){var o=this.convertToOptions(j.children);b.appendMany(n,o)}h.push(n)}}return h},d}),b.define("select2/data/ajax",["./array","../utils","jquery"],function(a,b,c){function d(b,c){this.ajaxOptions=this._applyDefaults(c.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),a.__super__.constructor.call(this,b,c)}return b.Extend(d,a),d.prototype._applyDefaults=function(a){var b={data:function(a){return{q:a.term}},transport:function(a,b,d){var e=c.ajax(a);return e.then(b),e.fail(d),e}};return c.extend({},b,a,!0)},d.prototype.processResults=function(a){return a},d.prototype.query=function(a,b){function d(){var d=f.transport(f,function(d){var f=e.processResults(d,a);e.options.get("debug")&&window.console&&console.error&&(f&&f.results&&c.isArray(f.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),b(f)},function(){});e._request=d}var e=this;null!=this._request&&(c.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var f=c.extend({type:"GET"},this.ajaxOptions);"function"==typeof f.url&&(f.url=f.url(a)),"function"==typeof f.data&&(f.data=f.data(a)),this.ajaxOptions.delay&&""!==a.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(d,this.ajaxOptions.delay)):d()},d}),b.define("select2/data/tags",["jquery"],function(a){function b(b,c,d){var e=d.get("tags"),f=d.get("createTag");if(void 0!==f&&(this.createTag=f),b.call(this,c,d),a.isArray(e))for(var g=0;g0&&b.term.length>this.maximumInputLength?void this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:b.term,params:b}}):void a.call(this,b,c)},a}),b.define("select2/data/maximumSelectionLength",[],function(){function a(a,b,c){this.maximumSelectionLength=c.get("maximumSelectionLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){var d=this;this.current(function(e){var f=null!=e?e.length:0;return d.maximumSelectionLength>0&&f>=d.maximumSelectionLength?void d.trigger("results:message",{message:"maximumSelected",args:{maximum:d.maximumSelectionLength}}):void a.call(d,b,c)})},a}),b.define("select2/dropdown",["jquery","./utils"],function(a,b){function c(a,b){this.$element=a,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('');return b.attr("dir",this.options.get("dir")),this.$dropdown=b,b},c.prototype.position=function(){},c.prototype.destroy=function(){this.$dropdown.remove()},c}),b.define("select2/dropdown/search",["jquery","../utils"],function(a){function b(){}return b.prototype.render=function(b){var c=b.call(this),d=a('');return this.$searchContainer=d,this.$search=d.find("input"),c.prepend(d),c},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),this.$search.on("keydown",function(a){e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented()}),this.$search.on("input",function(){a(this).off("keyup")}),this.$search.on("keyup input",function(a){e.handleSearch(a)}),c.on("open",function(){e.$search.attr("tabindex",0),e.$search.focus(),window.setTimeout(function(){e.$search.focus()},0)}),c.on("close",function(){e.$search.attr("tabindex",-1),e.$search.val("")}),c.on("results:all",function(a){if(null==a.query.term||""===a.query.term){var b=e.showSearch(a);b?e.$searchContainer.removeClass("select2-search--hide"):e.$searchContainer.addClass("select2-search--hide")}})},b.prototype.handleSearch=function(){if(!this._keyUpPrevented){var a=this.$search.val();this.trigger("query",{term:a})}this._keyUpPrevented=!1},b.prototype.showSearch=function(){return!0},b}),b.define("select2/dropdown/hidePlaceholder",[],function(){function a(a,b,c,d){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c,d)}return a.prototype.append=function(a,b){b.results=this.removePlaceholder(b.results),a.call(this,b)},a.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},a.prototype.removePlaceholder=function(a,b){for(var c=b.slice(0),d=b.length-1;d>=0;d--){var e=b[d];this.placeholder.id===e.id&&c.splice(d,1)}return c},a}),b.define("select2/dropdown/infiniteScroll",["jquery"],function(a){function b(a,b,c,d){this.lastParams={},a.call(this,b,c,d),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return b.prototype.append=function(a,b){this.$loadingMore.remove(),this.loading=!1,a.call(this,b),this.showLoadingMore(b)&&this.$results.append(this.$loadingMore)},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),c.on("query",function(a){e.lastParams=a,e.loading=!0}),c.on("query:append",function(a){e.lastParams=a,e.loading=!0}),this.$results.on("scroll",function(){var b=a.contains(document.documentElement,e.$loadingMore[0]);if(!e.loading&&b){var c=e.$results.offset().top+e.$results.outerHeight(!1),d=e.$loadingMore.offset().top+e.$loadingMore.outerHeight(!1);c+50>=d&&e.loadMore()}})},b.prototype.loadMore=function(){this.loading=!0;var b=a.extend({},{page:1},this.lastParams);b.page++,this.trigger("query:append",b)},b.prototype.showLoadingMore=function(a,b){return b.pagination&&b.pagination.more},b.prototype.createLoadingMore=function(){var b=a('
    • '),c=this.options.get("translations").get("loadingMore");return b.html(c(this.lastParams)),b},b}),b.define("select2/dropdown/attachBody",["jquery","../utils"],function(a,b){function c(a,b,c){this.$dropdownParent=c.get("dropdownParent")||document.body,a.call(this,b,c)}return c.prototype.bind=function(a,b,c){var d=this,e=!1;a.call(this,b,c),b.on("open",function(){d._showDropdown(),d._attachPositioningHandler(b),e||(e=!0,b.on("results:all",function(){d._positionDropdown(),d._resizeDropdown()}),b.on("results:append",function(){d._positionDropdown(),d._resizeDropdown()}))}),b.on("close",function(){d._hideDropdown(),d._detachPositioningHandler(b)}),this.$dropdownContainer.on("mousedown",function(a){a.stopPropagation()})},c.prototype.position=function(a,b,c){b.attr("class",c.attr("class")),b.removeClass("select2"),b.addClass("select2-container--open"),b.css({position:"absolute",top:-999999}),this.$container=c},c.prototype.render=function(b){var c=a(""),d=b.call(this);return c.append(d),this.$dropdownContainer=c,c},c.prototype._hideDropdown=function(){this.$dropdownContainer.detach()},c.prototype._attachPositioningHandler=function(c){var d=this,e="scroll.select2."+c.id,f="resize.select2."+c.id,g="orientationchange.select2."+c.id,h=this.$container.parents().filter(b.hasScroll);h.each(function(){a(this).data("select2-scroll-position",{x:a(this).scrollLeft(),y:a(this).scrollTop()})}),h.on(e,function(){var b=a(this).data("select2-scroll-position");a(this).scrollTop(b.y)}),a(window).on(e+" "+f+" "+g,function(){d._positionDropdown(),d._resizeDropdown()})},c.prototype._detachPositioningHandler=function(c){var d="scroll.select2."+c.id,e="resize.select2."+c.id,f="orientationchange.select2."+c.id,g=this.$container.parents().filter(b.hasScroll);g.off(d),a(window).off(d+" "+e+" "+f)},c.prototype._positionDropdown=function(){var b=a(window),c=this.$dropdown.hasClass("select2-dropdown--above"),d=this.$dropdown.hasClass("select2-dropdown--below"),e=null,f=(this.$container.position(),this.$container.offset());f.bottom=f.top+this.$container.outerHeight(!1);var g={height:this.$container.outerHeight(!1)};g.top=f.top,g.bottom=f.top+g.height;var h={height:this.$dropdown.outerHeight(!1)},i={top:b.scrollTop(),bottom:b.scrollTop()+b.height()},j=i.topf.bottom+h.height,l={left:f.left,top:g.bottom};c||d||(e="below"),k||!j||c?!j&&k&&c&&(e="below"):e="above",("above"==e||c&&"below"!==e)&&(l.top=g.top-h.height),null!=e&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+e),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+e)),this.$dropdownContainer.css(l)},c.prototype._resizeDropdown=function(){this.$dropdownContainer.width();var a={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(a.minWidth=a.width,a.width="auto"),this.$dropdown.css(a)},c.prototype._showDropdown=function(){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},c}),b.define("select2/dropdown/minimumResultsForSearch",[],function(){function a(b){for(var c=0,d=0;d0&&(l.dataAdapter=j.Decorate(l.dataAdapter,r)),l.maximumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,s)),l.maximumSelectionLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,t)),l.tags&&(l.dataAdapter=j.Decorate(l.dataAdapter,p)),(null!=l.tokenSeparators||null!=l.tokenizer)&&(l.dataAdapter=j.Decorate(l.dataAdapter,q)),null!=l.query){var C=b(l.amdBase+"compat/query");l.dataAdapter=j.Decorate(l.dataAdapter,C)}if(null!=l.initSelection){var D=b(l.amdBase+"compat/initSelection");l.dataAdapter=j.Decorate(l.dataAdapter,D)}}if(null==l.resultsAdapter&&(l.resultsAdapter=c,null!=l.ajax&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,x)),null!=l.placeholder&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,w)),l.selectOnClose&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,A))),null==l.dropdownAdapter){if(l.multiple)l.dropdownAdapter=u;else{var E=j.Decorate(u,v);l.dropdownAdapter=E}if(0!==l.minimumResultsForSearch&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,z)),l.closeOnSelect&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,B)),null!=l.dropdownCssClass||null!=l.dropdownCss||null!=l.adaptDropdownCssClass){var F=b(l.amdBase+"compat/dropdownCss");l.dropdownAdapter=j.Decorate(l.dropdownAdapter,F)}l.dropdownAdapter=j.Decorate(l.dropdownAdapter,y)}if(null==l.selectionAdapter){if(l.selectionAdapter=l.multiple?e:d,null!=l.placeholder&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,f)),l.allowClear&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,g)),l.multiple&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,h)),null!=l.containerCssClass||null!=l.containerCss||null!=l.adaptContainerCssClass){var G=b(l.amdBase+"compat/containerCss");l.selectionAdapter=j.Decorate(l.selectionAdapter,G)}l.selectionAdapter=j.Decorate(l.selectionAdapter,i)}if("string"==typeof l.language)if(l.language.indexOf("-")>0){var H=l.language.split("-"),I=H[0];l.language=[l.language,I]}else l.language=[l.language];if(a.isArray(l.language)){var J=new k;l.language.push("en");for(var K=l.language,L=0;L0){for(var f=a.extend(!0,{},e),g=e.children.length-1;g>=0;g--){var h=e.children[g],i=c(d,h);null==i&&f.children.splice(g,1)}return f.children.length>0?f:c(d,f)}var j=b(e.text).toUpperCase(),k=b(d.term).toUpperCase();return j.indexOf(k)>-1?e:null}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:j.escapeMarkup,language:C,matcher:c,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(a){return a},templateResult:function(a){return a.text},templateSelection:function(a){return a.text},theme:"default",width:"resolve"}},D.prototype.set=function(b,c){var d=a.camelCase(b),e={};e[d]=c;var f=j._convertData(e);a.extend(this.defaults,f)};var E=new D;return E}),b.define("select2/options",["require","jquery","./defaults","./utils"],function(a,b,c,d){function e(b,e){if(this.options=b,null!=e&&this.fromElement(e),this.options=c.apply(this.options),e&&e.is("input")){var f=a(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=d.Decorate(this.options.dataAdapter,f)}}return e.prototype.fromElement=function(a){var c=["select2"];null==this.options.multiple&&(this.options.multiple=a.prop("multiple")),null==this.options.disabled&&(this.options.disabled=a.prop("disabled")),null==this.options.language&&(a.prop("lang")?this.options.language=a.prop("lang").toLowerCase():a.closest("[lang]").prop("lang")&&(this.options.language=a.closest("[lang]").prop("lang"))),null==this.options.dir&&(this.options.dir=a.prop("dir")?a.prop("dir"):a.closest("[dir]").prop("dir")?a.closest("[dir]").prop("dir"):"ltr"),a.prop("disabled",this.options.disabled),a.prop("multiple",this.options.multiple),a.data("select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),a.data("data",a.data("select2Tags")),a.data("tags",!0)),a.data("ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),a.attr("ajax--url",a.data("ajaxUrl")),a.data("ajax--url",a.data("ajaxUrl")));var e={};e=b.fn.jquery&&"1."==b.fn.jquery.substr(0,2)&&a[0].dataset?b.extend(!0,{},a[0].dataset,a.data()):a.data();var f=b.extend(!0,{},e);f=d._convertData(f);for(var g in f)b.inArray(g,c)>-1||(b.isPlainObject(this.options[g])?b.extend(this.options[g],f[g]):this.options[g]=f[g]);return this},e.prototype.get=function(a){return this.options[a]},e.prototype.set=function(a,b){this.options[a]=b},e}),b.define("select2/core",["jquery","./options","./utils","./keys"],function(a,b,c,d){var e=function(a,c){null!=a.data("select2")&&a.data("select2").destroy(),this.$element=a,this.id=this._generateId(a),c=c||{},this.options=new b(c,a),e.__super__.constructor.call(this);var d=a.attr("tabindex")||0;a.data("old-tabindex",d),a.attr("tabindex","-1");var f=this.options.get("dataAdapter");this.dataAdapter=new f(a,this.options);var g=this.render();this._placeContainer(g);var h=this.options.get("selectionAdapter");this.selection=new h(a,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,g);var i=this.options.get("dropdownAdapter");this.dropdown=new i(a,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,g);var j=this.options.get("resultsAdapter");this.results=new j(a,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var k=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(a){k.trigger("selection:update",{data:a})}),a.addClass("select2-hidden-accessible"),a.attr("aria-hidden","true"),this._syncAttributes(),a.data("select2",this)};return c.Extend(e,c.Observable),e.prototype._generateId=function(a){var b="";return b=null!=a.attr("id")?a.attr("id"):null!=a.attr("name")?a.attr("name")+"-"+c.generateChars(2):c.generateChars(4),b="select2-"+b},e.prototype._placeContainer=function(a){a.insertAfter(this.$element);var b=this._resolveWidth(this.$element,this.options.get("width"));null!=b&&a.css("width",b)},e.prototype._resolveWidth=function(a,b){var c=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==b){var d=this._resolveWidth(a,"style");return null!=d?d:this._resolveWidth(a,"element")}if("element"==b){var e=a.outerWidth(!1);return 0>=e?"auto":e+"px"}if("style"==b){var f=a.attr("style");if("string"!=typeof f)return null;for(var g=f.split(";"),h=0,i=g.length;i>h;h+=1){var j=g[h].replace(/\s/g,""),k=j.match(c);if(null!==k&&k.length>=1)return k[1]}return null}return b},e.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},e.prototype._registerDomEvents=function(){var b=this;this.$element.on("change.select2",function(){b.dataAdapter.current(function(a){b.trigger("selection:update",{data:a})})}),this._sync=c.bind(this._syncAttributes,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._sync);var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=d?(this._observer=new d(function(c){a.each(c,b._sync)}),this._observer.observe(this.$element[0],{attributes:!0,subtree:!1})):this.$element[0].addEventListener&&this.$element[0].addEventListener("DOMAttrModified",b._sync,!1)},e.prototype._registerDataEvents=function(){var a=this;this.dataAdapter.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerSelectionEvents=function(){var b=this,c=["toggle"];this.selection.on("toggle",function(){b.toggleDropdown()}),this.selection.on("*",function(d,e){-1===a.inArray(d,c)&&b.trigger(d,e)})},e.prototype._registerDropdownEvents=function(){var a=this;this.dropdown.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerResultsEvents=function(){var a=this;this.results.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerEvents=function(){var a=this;this.on("open",function(){a.$container.addClass("select2-container--open")}),this.on("close",function(){a.$container.removeClass("select2-container--open")}),this.on("enable",function(){a.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){a.$container.addClass("select2-container--disabled")}),this.on("focus",function(){a.$container.addClass("select2-container--focus")}),this.on("blur",function(){a.$container.removeClass("select2-container--focus")}),this.on("query",function(b){a.isOpen()||a.trigger("open"),this.dataAdapter.query(b,function(c){a.trigger("results:all",{data:c,query:b})})}),this.on("query:append",function(b){this.dataAdapter.query(b,function(c){a.trigger("results:append",{data:c,query:b})})}),this.on("keypress",function(b){var c=b.which;a.isOpen()?c===d.ENTER?(a.trigger("results:select"),b.preventDefault()):c===d.SPACE&&b.ctrlKey?(a.trigger("results:toggle"),b.preventDefault()):c===d.UP?(a.trigger("results:previous"),b.preventDefault()):c===d.DOWN?(a.trigger("results:next"),b.preventDefault()):(c===d.ESC||c===d.TAB)&&(a.close(),b.preventDefault()):(c===d.ENTER||c===d.SPACE||(c===d.DOWN||c===d.UP)&&b.altKey)&&(a.open(),b.preventDefault())})},e.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable")):this.trigger("enable")},e.prototype.trigger=function(a,b){var c=e.__super__.trigger,d={open:"opening",close:"closing",select:"selecting",unselect:"unselecting"};if(a in d){var f=d[a],g={prevented:!1,name:a,args:b};if(c.call(this,f,g),g.prevented)return void(b.prevented=!0)}c.call(this,a,b)},e.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},e.prototype.open=function(){this.isOpen()||(this.trigger("query",{}),this.trigger("open"))},e.prototype.close=function(){this.isOpen()&&this.trigger("close")},e.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},e.prototype.enable=function(a){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),(null==a||0===a.length)&&(a=[!0]);var b=!a[0];this.$element.prop("disabled",b)},e.prototype.data=function(){this.options.get("debug")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var a=[];return this.dataAdapter.current(function(b){a=b}),a},e.prototype.val=function(b){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==b||0===b.length)return this.$element.val();var c=b[0];a.isArray(c)&&(c=a.map(c,function(a){return a.toString()})),this.$element.val(c).trigger("change")},e.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._sync),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&this.$element[0].removeEventListener("DOMAttrModified",this._sync,!1),this._sync=null,this.$element.off(".select2"),this.$element.attr("tabindex",this.$element.data("old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},e.prototype.render=function(){var b=a('');return b.attr("dir",this.options.get("dir")),this.$container=b,this.$container.addClass("select2-container--"+this.options.get("theme")),b.data("element",this.$element),b},e}),b.define("select2/compat/utils",["jquery"],function(a){function b(b,c,d){var e,f,g=[];e=a.trim(b.attr("class")),e&&(e=""+e,a(e.split(/\s+/)).each(function(){0===this.indexOf("select2-")&&g.push(this)})),e=a.trim(c.attr("class")),e&&(e=""+e,a(e.split(/\s+/)).each(function(){0!==this.indexOf("select2-")&&(f=d(this),null!=f&&g.push(f))})),b.attr("class",g.join(" "))}return{syncCssClasses:b}}),b.define("select2/compat/containerCss",["jquery","./utils"],function(a,b){function c(){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get("containerCssClass")||"";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get("adaptContainerCssClass");if(g=g||c,-1!==f.indexOf(":all:")){f=f.replace(":all","");var h=g;g=function(a){var b=h(a);return null!=b?b+" "+a:a}}var i=this.options.get("containerCss")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define("select2/compat/dropdownCss",["jquery","./utils"],function(a,b){function c(){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get("dropdownCssClass")||"";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get("adaptDropdownCssClass");if(g=g||c,-1!==f.indexOf(":all:")){f=f.replace(":all","");var h=g;g=function(a){var b=h(a);return null!=b?b+" "+a:a}}var i=this.options.get("dropdownCss")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define("select2/compat/initSelection",["jquery"],function(a){function b(a,b,c){c.get("debug")&&window.console&&console.warn&&console.warn("Select2: The `initSelection` option has been deprecated in favor of a custom data adapter that overrides the `current` method. This method is now called multiple times instead of a single time when the instance is initialized. Support will be removed for the `initSelection` option in future versions of Select2"),this.initSelection=c.get("initSelection"),this._isInitialized=!1,a.call(this,b,c)}return b.prototype.current=function(b,c){var d=this;return this._isInitialized?void b.call(this,c):void this.initSelection.call(null,this.$element,function(b){d._isInitialized=!0,a.isArray(b)||(b=[b]),c(b)})},b}),b.define("select2/compat/inputData",["jquery"],function(a){function b(a,b,c){this._currentData=[],this._valueSeparator=c.get("valueSeparator")||",","hidden"===b.prop("type")&&c.get("debug")&&console&&console.warn&&console.warn("Select2: Using a hidden input with Select2 is no longer supported and may stop working in the future. It is recommended to use a `');this.$searchContainer=c,this.$search=c.find("input");var d=b.call(this);return d},d.prototype.bind=function(a,b,d){var e=this;a.call(this,b,d),b.on("open",function(){e.$search.attr("tabindex",0),e.$search.focus()}),b.on("close",function(){e.$search.attr("tabindex",-1),e.$search.val(""),e.$search.focus()}),b.on("enable",function(){e.$search.prop("disabled",!1)}),b.on("disable",function(){e.$search.prop("disabled",!0)}),this.$selection.on("focusin",".select2-search--inline",function(a){e.trigger("focus",a)}),this.$selection.on("focusout",".select2-search--inline",function(a){e.trigger("blur",a)}),this.$selection.on("keydown",".select2-search--inline",function(a){a.stopPropagation(),e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented();var b=a.which;if(b===c.BACKSPACE&&""===e.$search.val()){var d=e.$searchContainer.prev(".select2-selection__choice");if(d.length>0){var f=d.data("data");e.searchRemoveChoice(f),a.preventDefault()}}}),this.$selection.on("input",".select2-search--inline",function(){e.$selection.off("keyup.search")}),this.$selection.on("keyup.search input",".select2-search--inline",function(a){e.handleSearch(a)})},d.prototype.createPlaceholder=function(a,b){this.$search.attr("placeholder",b.text)},d.prototype.update=function(a,b){this.$search.attr("placeholder",""),a.call(this,b),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch()},d.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var a=this.$search.val();this.trigger("query",{term:a})}this._keyUpPrevented=!1},d.prototype.searchRemoveChoice=function(a,b){this.trigger("unselect",{data:b}),this.trigger("open"),this.$search.val(b.text+" ")},d.prototype.resizeSearch=function(){this.$search.css("width","25px");var a="";if(""!==this.$search.attr("placeholder"))a=this.$selection.find(".select2-selection__rendered").innerWidth();else{var b=this.$search.val().length+1;a=.75*b+"em"}this.$search.css("width",a)},d}),b.define("select2/selection/eventRelay",["jquery"],function(a){function b(){}return b.prototype.bind=function(b,c,d){var e=this,f=["open","opening","close","closing","select","selecting","unselect","unselecting"],g=["opening","closing","selecting","unselecting"];b.call(this,c,d),c.on("*",function(b,c){if(-1!==a.inArray(b,f)){c=c||{};var d=a.Event("select2:"+b,{params:c});e.$element.trigger(d),-1!==a.inArray(b,g)&&(c.prevented=d.isDefaultPrevented())}})},b}),b.define("select2/translation",["jquery","require"],function(a,b){function c(a){this.dict=a||{}}return c.prototype.all=function(){return this.dict},c.prototype.get=function(a){return this.dict[a]},c.prototype.extend=function(b){this.dict=a.extend({},b.all(),this.dict)},c._cache={},c.loadPath=function(a){if(!(a in c._cache)){var d=b(a);c._cache[a]=d}return new c(c._cache[a])},c}),b.define("select2/diacritics",[],function(){var a={"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"};return a}),b.define("select2/data/base",["../utils"],function(a){function b(){b.__super__.constructor.call(this)}return a.Extend(b,a.Observable),b.prototype.current=function(){throw new Error("The `current` method must be defined in child classes.")},b.prototype.query=function(){throw new Error("The `query` method must be defined in child classes.")},b.prototype.bind=function(){},b.prototype.destroy=function(){},b.prototype.generateResultId=function(b,c){var d=b.id+"-result-";return d+=a.generateChars(4),d+=null!=c.id?"-"+c.id.toString():"-"+a.generateChars(4)},b}),b.define("select2/data/select",["./base","../utils","jquery"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,a),d.prototype.current=function(a){var b=[],d=this;this.$element.find(":selected").each(function(){var a=c(this),e=d.item(a);b.push(e)}),a(b)},d.prototype.select=function(a){var b=this;if(a.selected=!0,c(a.element).is("option"))return a.element.selected=!0,void this.$element.trigger("change");if(this.$element.prop("multiple"))this.current(function(d){var e=[];a=[a],a.push.apply(a,d);for(var f=0;f=0){var k=f.filter(d(j)),l=this.item(k),m=(c.extend(!0,{},l,j),this.option(l));k.replaceWith(m)}else{var n=this.option(j);if(j.children){var o=this.convertToOptions(j.children);b.appendMany(n,o)}h.push(n)}}return h},d}),b.define("select2/data/ajax",["./array","../utils","jquery"],function(a,b,c){function d(b,c){this.ajaxOptions=this._applyDefaults(c.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),a.__super__.constructor.call(this,b,c)}return b.Extend(d,a),d.prototype._applyDefaults=function(a){var b={data:function(a){return{q:a.term}},transport:function(a,b,d){var e=c.ajax(a);return e.then(b),e.fail(d),e}};return c.extend({},b,a,!0)},d.prototype.processResults=function(a){return a},d.prototype.query=function(a,b){function d(){var d=f.transport(f,function(d){var f=e.processResults(d,a);e.options.get("debug")&&window.console&&console.error&&(f&&f.results&&c.isArray(f.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),b(f)},function(){});e._request=d}var e=this;null!=this._request&&(c.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var f=c.extend({type:"GET"},this.ajaxOptions);"function"==typeof f.url&&(f.url=f.url(a)),"function"==typeof f.data&&(f.data=f.data(a)),this.ajaxOptions.delay&&""!==a.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(d,this.ajaxOptions.delay)):d()},d}),b.define("select2/data/tags",["jquery"],function(a){function b(b,c,d){var e=d.get("tags"),f=d.get("createTag");if(void 0!==f&&(this.createTag=f),b.call(this,c,d),a.isArray(e))for(var g=0;g0&&b.term.length>this.maximumInputLength?void this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:b.term,params:b}}):void a.call(this,b,c)},a}),b.define("select2/data/maximumSelectionLength",[],function(){function a(a,b,c){this.maximumSelectionLength=c.get("maximumSelectionLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){var d=this;this.current(function(e){var f=null!=e?e.length:0;return d.maximumSelectionLength>0&&f>=d.maximumSelectionLength?void d.trigger("results:message",{message:"maximumSelected",args:{maximum:d.maximumSelectionLength}}):void a.call(d,b,c)})},a}),b.define("select2/dropdown",["jquery","./utils"],function(a,b){function c(a,b){this.$element=a,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('');return b.attr("dir",this.options.get("dir")),this.$dropdown=b,b},c.prototype.position=function(){},c.prototype.destroy=function(){this.$dropdown.remove()},c}),b.define("select2/dropdown/search",["jquery","../utils"],function(a){function b(){}return b.prototype.render=function(b){var c=b.call(this),d=a('');return this.$searchContainer=d,this.$search=d.find("input"),c.prepend(d),c},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),this.$search.on("keydown",function(a){e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented()}),this.$search.on("input",function(){a(this).off("keyup")}),this.$search.on("keyup input",function(a){e.handleSearch(a)}),c.on("open",function(){e.$search.attr("tabindex",0),e.$search.focus(),window.setTimeout(function(){e.$search.focus()},0)}),c.on("close",function(){e.$search.attr("tabindex",-1),e.$search.val("")}),c.on("results:all",function(a){if(null==a.query.term||""===a.query.term){var b=e.showSearch(a);b?e.$searchContainer.removeClass("select2-search--hide"):e.$searchContainer.addClass("select2-search--hide")}})},b.prototype.handleSearch=function(){if(!this._keyUpPrevented){var a=this.$search.val();this.trigger("query",{term:a})}this._keyUpPrevented=!1},b.prototype.showSearch=function(){return!0},b}),b.define("select2/dropdown/hidePlaceholder",[],function(){function a(a,b,c,d){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c,d)}return a.prototype.append=function(a,b){b.results=this.removePlaceholder(b.results),a.call(this,b)},a.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},a.prototype.removePlaceholder=function(a,b){for(var c=b.slice(0),d=b.length-1;d>=0;d--){var e=b[d];this.placeholder.id===e.id&&c.splice(d,1)}return c},a}),b.define("select2/dropdown/infiniteScroll",["jquery"],function(a){function b(a,b,c,d){this.lastParams={},a.call(this,b,c,d),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return b.prototype.append=function(a,b){this.$loadingMore.remove(),this.loading=!1,a.call(this,b),this.showLoadingMore(b)&&this.$results.append(this.$loadingMore)},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),c.on("query",function(a){e.lastParams=a,e.loading=!0}),c.on("query:append",function(a){e.lastParams=a,e.loading=!0}),this.$results.on("scroll",function(){var b=a.contains(document.documentElement,e.$loadingMore[0]);if(!e.loading&&b){var c=e.$results.offset().top+e.$results.outerHeight(!1),d=e.$loadingMore.offset().top+e.$loadingMore.outerHeight(!1);c+50>=d&&e.loadMore()}})},b.prototype.loadMore=function(){this.loading=!0;var b=a.extend({},{page:1},this.lastParams);b.page++,this.trigger("query:append",b)},b.prototype.showLoadingMore=function(a,b){return b.pagination&&b.pagination.more},b.prototype.createLoadingMore=function(){var b=a('
    • '),c=this.options.get("translations").get("loadingMore");return b.html(c(this.lastParams)),b},b}),b.define("select2/dropdown/attachBody",["jquery","../utils"],function(a,b){function c(a,b,c){this.$dropdownParent=c.get("dropdownParent")||document.body,a.call(this,b,c)}return c.prototype.bind=function(a,b,c){var d=this,e=!1;a.call(this,b,c),b.on("open",function(){d._showDropdown(),d._attachPositioningHandler(b),e||(e=!0,b.on("results:all",function(){d._positionDropdown(),d._resizeDropdown()}),b.on("results:append",function(){d._positionDropdown(),d._resizeDropdown()}))}),b.on("close",function(){d._hideDropdown(),d._detachPositioningHandler(b)}),this.$dropdownContainer.on("mousedown",function(a){a.stopPropagation()})},c.prototype.position=function(a,b,c){b.attr("class",c.attr("class")),b.removeClass("select2"),b.addClass("select2-container--open"),b.css({position:"absolute",top:-999999}),this.$container=c},c.prototype.render=function(b){var c=a(""),d=b.call(this);return c.append(d),this.$dropdownContainer=c,c},c.prototype._hideDropdown=function(){this.$dropdownContainer.detach()},c.prototype._attachPositioningHandler=function(c){var d=this,e="scroll.select2."+c.id,f="resize.select2."+c.id,g="orientationchange.select2."+c.id,h=this.$container.parents().filter(b.hasScroll);h.each(function(){a(this).data("select2-scroll-position",{x:a(this).scrollLeft(),y:a(this).scrollTop()})}),h.on(e,function(){var b=a(this).data("select2-scroll-position");a(this).scrollTop(b.y)}),a(window).on(e+" "+f+" "+g,function(){d._positionDropdown(),d._resizeDropdown()})},c.prototype._detachPositioningHandler=function(c){var d="scroll.select2."+c.id,e="resize.select2."+c.id,f="orientationchange.select2."+c.id,g=this.$container.parents().filter(b.hasScroll);g.off(d),a(window).off(d+" "+e+" "+f)},c.prototype._positionDropdown=function(){var b=a(window),c=this.$dropdown.hasClass("select2-dropdown--above"),d=this.$dropdown.hasClass("select2-dropdown--below"),e=null,f=(this.$container.position(),this.$container.offset());f.bottom=f.top+this.$container.outerHeight(!1);var g={height:this.$container.outerHeight(!1)};g.top=f.top,g.bottom=f.top+g.height;var h={height:this.$dropdown.outerHeight(!1)},i={top:b.scrollTop(),bottom:b.scrollTop()+b.height()},j=i.topf.bottom+h.height,l={left:f.left,top:g.bottom};c||d||(e="below"),k||!j||c?!j&&k&&c&&(e="below"):e="above",("above"==e||c&&"below"!==e)&&(l.top=g.top-h.height),null!=e&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+e),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+e)),this.$dropdownContainer.css(l)},c.prototype._resizeDropdown=function(){this.$dropdownContainer.width();var a={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(a.minWidth=a.width,a.width="auto"),this.$dropdown.css(a)},c.prototype._showDropdown=function(){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},c}),b.define("select2/dropdown/minimumResultsForSearch",[],function(){function a(b){for(var c=0,d=0;d0&&(l.dataAdapter=j.Decorate(l.dataAdapter,r)),l.maximumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,s)),l.maximumSelectionLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,t)),l.tags&&(l.dataAdapter=j.Decorate(l.dataAdapter,p)),(null!=l.tokenSeparators||null!=l.tokenizer)&&(l.dataAdapter=j.Decorate(l.dataAdapter,q)),null!=l.query){var C=b(l.amdBase+"compat/query");l.dataAdapter=j.Decorate(l.dataAdapter,C)}if(null!=l.initSelection){var D=b(l.amdBase+"compat/initSelection");l.dataAdapter=j.Decorate(l.dataAdapter,D)}}if(null==l.resultsAdapter&&(l.resultsAdapter=c,null!=l.ajax&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,x)),null!=l.placeholder&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,w)),l.selectOnClose&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,A))),null==l.dropdownAdapter){if(l.multiple)l.dropdownAdapter=u;else{var E=j.Decorate(u,v);l.dropdownAdapter=E}if(0!==l.minimumResultsForSearch&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,z)),l.closeOnSelect&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,B)),null!=l.dropdownCssClass||null!=l.dropdownCss||null!=l.adaptDropdownCssClass){var F=b(l.amdBase+"compat/dropdownCss");l.dropdownAdapter=j.Decorate(l.dropdownAdapter,F)}l.dropdownAdapter=j.Decorate(l.dropdownAdapter,y)}if(null==l.selectionAdapter){if(l.selectionAdapter=l.multiple?e:d,null!=l.placeholder&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,f)),l.allowClear&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,g)),l.multiple&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,h)),null!=l.containerCssClass||null!=l.containerCss||null!=l.adaptContainerCssClass){var G=b(l.amdBase+"compat/containerCss");l.selectionAdapter=j.Decorate(l.selectionAdapter,G)}l.selectionAdapter=j.Decorate(l.selectionAdapter,i)}if("string"==typeof l.language)if(l.language.indexOf("-")>0){var H=l.language.split("-"),I=H[0];l.language=[l.language,I]}else l.language=[l.language];if(a.isArray(l.language)){var J=new k;l.language.push("en");for(var K=l.language,L=0;L0){for(var f=a.extend(!0,{},e),g=e.children.length-1;g>=0;g--){var h=e.children[g],i=c(d,h);null==i&&f.children.splice(g,1)}return f.children.length>0?f:c(d,f)}var j=b(e.text).toUpperCase(),k=b(d.term).toUpperCase();return j.indexOf(k)>-1?e:null}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:j.escapeMarkup,language:C,matcher:c,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(a){return a},templateResult:function(a){return a.text},templateSelection:function(a){return a.text},theme:"default",width:"resolve"}},D.prototype.set=function(b,c){var d=a.camelCase(b),e={};e[d]=c;var f=j._convertData(e);a.extend(this.defaults,f)};var E=new D;return E}),b.define("select2/options",["require","jquery","./defaults","./utils"],function(a,b,c,d){function e(b,e){if(this.options=b,null!=e&&this.fromElement(e),this.options=c.apply(this.options),e&&e.is("input")){var f=a(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=d.Decorate(this.options.dataAdapter,f)}}return e.prototype.fromElement=function(a){var c=["select2"];null==this.options.multiple&&(this.options.multiple=a.prop("multiple")),null==this.options.disabled&&(this.options.disabled=a.prop("disabled")),null==this.options.language&&(a.prop("lang")?this.options.language=a.prop("lang").toLowerCase():a.closest("[lang]").prop("lang")&&(this.options.language=a.closest("[lang]").prop("lang"))),null==this.options.dir&&(this.options.dir=a.prop("dir")?a.prop("dir"):a.closest("[dir]").prop("dir")?a.closest("[dir]").prop("dir"):"ltr"),a.prop("disabled",this.options.disabled),a.prop("multiple",this.options.multiple),a.data("select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),a.data("data",a.data("select2Tags")),a.data("tags",!0)),a.data("ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),a.attr("ajax--url",a.data("ajaxUrl")),a.data("ajax--url",a.data("ajaxUrl")));var e={};e=b.fn.jquery&&"1."==b.fn.jquery.substr(0,2)&&a[0].dataset?b.extend(!0,{},a[0].dataset,a.data()):a.data();var f=b.extend(!0,{},e);f=d._convertData(f);for(var g in f)b.inArray(g,c)>-1||(b.isPlainObject(this.options[g])?b.extend(this.options[g],f[g]):this.options[g]=f[g]);return this},e.prototype.get=function(a){return this.options[a]},e.prototype.set=function(a,b){this.options[a]=b},e}),b.define("select2/core",["jquery","./options","./utils","./keys"],function(a,b,c,d){var e=function(a,c){null!=a.data("select2")&&a.data("select2").destroy(),this.$element=a,this.id=this._generateId(a),c=c||{},this.options=new b(c,a),e.__super__.constructor.call(this);var d=a.attr("tabindex")||0;a.data("old-tabindex",d),a.attr("tabindex","-1");var f=this.options.get("dataAdapter");this.dataAdapter=new f(a,this.options);var g=this.render();this._placeContainer(g);var h=this.options.get("selectionAdapter");this.selection=new h(a,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,g);var i=this.options.get("dropdownAdapter");this.dropdown=new i(a,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,g);var j=this.options.get("resultsAdapter");this.results=new j(a,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var k=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(a){k.trigger("selection:update",{data:a})}),a.addClass("select2-hidden-accessible"),a.attr("aria-hidden","true"),this._syncAttributes(),a.data("select2",this)};return c.Extend(e,c.Observable),e.prototype._generateId=function(a){var b="";return b=null!=a.attr("id")?a.attr("id"):null!=a.attr("name")?a.attr("name")+"-"+c.generateChars(2):c.generateChars(4),b="select2-"+b},e.prototype._placeContainer=function(a){a.insertAfter(this.$element);var b=this._resolveWidth(this.$element,this.options.get("width"));null!=b&&a.css("width",b)},e.prototype._resolveWidth=function(a,b){var c=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==b){var d=this._resolveWidth(a,"style");return null!=d?d:this._resolveWidth(a,"element")}if("element"==b){var e=a.outerWidth(!1);return 0>=e?"auto":e+"px"}if("style"==b){var f=a.attr("style");if("string"!=typeof f)return null;for(var g=f.split(";"),h=0,i=g.length;i>h;h+=1){var j=g[h].replace(/\s/g,""),k=j.match(c);if(null!==k&&k.length>=1)return k[1]}return null}return b},e.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},e.prototype._registerDomEvents=function(){var b=this;this.$element.on("change.select2",function(){b.dataAdapter.current(function(a){b.trigger("selection:update",{data:a})})}),this._sync=c.bind(this._syncAttributes,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._sync);var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=d?(this._observer=new d(function(c){a.each(c,b._sync)}),this._observer.observe(this.$element[0],{attributes:!0,subtree:!1})):this.$element[0].addEventListener&&this.$element[0].addEventListener("DOMAttrModified",b._sync,!1)},e.prototype._registerDataEvents=function(){var a=this;this.dataAdapter.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerSelectionEvents=function(){var b=this,c=["toggle"];this.selection.on("toggle",function(){b.toggleDropdown()}),this.selection.on("*",function(d,e){-1===a.inArray(d,c)&&b.trigger(d,e)})},e.prototype._registerDropdownEvents=function(){var a=this;this.dropdown.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerResultsEvents=function(){var a=this;this.results.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerEvents=function(){var a=this;this.on("open",function(){a.$container.addClass("select2-container--open")}),this.on("close",function(){a.$container.removeClass("select2-container--open")}),this.on("enable",function(){a.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){a.$container.addClass("select2-container--disabled")}),this.on("focus",function(){a.$container.addClass("select2-container--focus")}),this.on("blur",function(){a.$container.removeClass("select2-container--focus")}),this.on("query",function(b){a.isOpen()||a.trigger("open"),this.dataAdapter.query(b,function(c){a.trigger("results:all",{data:c,query:b})})}),this.on("query:append",function(b){this.dataAdapter.query(b,function(c){a.trigger("results:append",{data:c,query:b})})}),this.on("keypress",function(b){var c=b.which;a.isOpen()?c===d.ENTER?(a.trigger("results:select"),b.preventDefault()):c===d.SPACE&&b.ctrlKey?(a.trigger("results:toggle"),b.preventDefault()):c===d.UP?(a.trigger("results:previous"),b.preventDefault()):c===d.DOWN?(a.trigger("results:next"),b.preventDefault()):(c===d.ESC||c===d.TAB)&&(a.close(),b.preventDefault()):(c===d.ENTER||c===d.SPACE||(c===d.DOWN||c===d.UP)&&b.altKey)&&(a.open(),b.preventDefault())})},e.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable")):this.trigger("enable")},e.prototype.trigger=function(a,b){var c=e.__super__.trigger,d={open:"opening",close:"closing",select:"selecting",unselect:"unselecting"};if(a in d){var f=d[a],g={prevented:!1,name:a,args:b};if(c.call(this,f,g),g.prevented)return void(b.prevented=!0)}c.call(this,a,b)},e.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},e.prototype.open=function(){this.isOpen()||(this.trigger("query",{}),this.trigger("open"))},e.prototype.close=function(){this.isOpen()&&this.trigger("close")},e.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},e.prototype.enable=function(a){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),(null==a||0===a.length)&&(a=[!0]);var b=!a[0];this.$element.prop("disabled",b)},e.prototype.data=function(){this.options.get("debug")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var a=[];return this.dataAdapter.current(function(b){a=b}),a},e.prototype.val=function(b){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==b||0===b.length)return this.$element.val();var c=b[0];a.isArray(c)&&(c=a.map(c,function(a){return a.toString()})),this.$element.val(c).trigger("change")},e.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._sync),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&this.$element[0].removeEventListener("DOMAttrModified",this._sync,!1),this._sync=null,this.$element.off(".select2"),this.$element.attr("tabindex",this.$element.data("old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},e.prototype.render=function(){var b=a('');return b.attr("dir",this.options.get("dir")),this.$container=b,this.$container.addClass("select2-container--"+this.options.get("theme")),b.data("element",this.$element),b},e}),b.define("jquery.select2",["jquery","require","./select2/core","./select2/defaults"],function(a,b,c,d){if(b("jquery.mousewheel"),null==a.fn.select2){var e=["open","close","destroy"];a.fn.select2=function(b){if(b=b||{},"object"==typeof b)return this.each(function(){{var d=a.extend({},b,!0);new c(a(this),d)}}),this;if("string"==typeof b){var d=this.data("select2");null==d&&window.console&&console.error&&console.error("The select2('"+b+"') method was called on an element that is not using Select2.");var f=Array.prototype.slice.call(arguments,1),g=d[b](f);return a.inArray(b,e)>-1?this:g}throw new Error("Invalid arguments for Select2: "+b)}}return null==a.fn.select2.defaults&&(a.fn.select2.defaults=d),c}),b.define("jquery.mousewheel",["jquery"],function(a){return a}),{define:b.define,require:b.require}}(),c=b.require("jquery.select2");return a.fn.select2.amd=b,c}); \ No newline at end of file diff --git a/awx/ui/static/lib/select2/docs/.gitignore b/awx/ui/client/lib/select2/docs/.gitignore similarity index 100% rename from awx/ui/static/lib/select2/docs/.gitignore rename to awx/ui/client/lib/select2/docs/.gitignore diff --git a/awx/ui/static/lib/select2/docs/README.md b/awx/ui/client/lib/select2/docs/README.md similarity index 100% rename from awx/ui/static/lib/select2/docs/README.md rename to awx/ui/client/lib/select2/docs/README.md diff --git a/awx/ui/static/lib/select2/docs/_includes/footer.html b/awx/ui/client/lib/select2/docs/_includes/footer.html similarity index 100% rename from awx/ui/static/lib/select2/docs/_includes/footer.html rename to awx/ui/client/lib/select2/docs/_includes/footer.html diff --git a/awx/ui/static/lib/select2/docs/_includes/head.html b/awx/ui/client/lib/select2/docs/_includes/head.html similarity index 100% rename from awx/ui/static/lib/select2/docs/_includes/head.html rename to awx/ui/client/lib/select2/docs/_includes/head.html diff --git a/awx/ui/static/lib/select2/docs/_includes/navigation.html b/awx/ui/client/lib/select2/docs/_includes/navigation.html similarity index 100% rename from awx/ui/static/lib/select2/docs/_includes/navigation.html rename to awx/ui/client/lib/select2/docs/_includes/navigation.html diff --git a/awx/ui/static/lib/select2/docs/_layouts/default.html b/awx/ui/client/lib/select2/docs/_layouts/default.html similarity index 100% rename from awx/ui/static/lib/select2/docs/_layouts/default.html rename to awx/ui/client/lib/select2/docs/_layouts/default.html diff --git a/awx/ui/static/lib/select2/docs/_layouts/home.html b/awx/ui/client/lib/select2/docs/_layouts/home.html similarity index 100% rename from awx/ui/static/lib/select2/docs/_layouts/home.html rename to awx/ui/client/lib/select2/docs/_layouts/home.html diff --git a/awx/ui/static/lib/select2/docs/announcements-4.0.html b/awx/ui/client/lib/select2/docs/announcements-4.0.html similarity index 93% rename from awx/ui/static/lib/select2/docs/announcements-4.0.html rename to awx/ui/client/lib/select2/docs/announcements-4.0.html index 5e107c57b9..8076ae7bfc 100644 --- a/awx/ui/static/lib/select2/docs/announcements-4.0.html +++ b/awx/ui/client/lib/select2/docs/announcements-4.0.html @@ -5,24 +5,6 @@ slug: announcements-4.0 ---
      -
      -

      Pre-release notes

      - -
      - -

      - The 4.0 release is ready for early adopters interested in testing it out. - You can use the development version, available on GitHub, by getting the - source code available in the select2-ng branch. The source - code can be - - downloaded as a zip archive - as well. -

      -
      - -
      -

      Select2 4.0.0

      @@ -157,7 +139,7 @@ slug: announcements-4.0

      In Select2 4.0, the <select> element supports all core options, and support for the old - <input type="hidden" /> has been removed. This means + <input type="hidden" /> has been deprecated. This means that if you previously declared an AJAX field with some pre-selected options that looked like...

      @@ -167,7 +149,7 @@ slug: announcements-4.0

      - Will need to be recreated as a <select> element with + It will need to be recreated as a <select> element with some <option> tags that have value attributes that match the old value.

      @@ -215,6 +197,57 @@ slug: announcements-4.0 matcher function.

      +

      + So if your old code used a matcher that only displayed options if they + started with the term that was entered, it would look something like... +

      + +
      +function matchStart (term, text) {
      +  if (text.toUpperCase().indexOf(term.toUpperCase()) == 0) {
      +    return true;
      +  }
      +
      +  return false;
      +}
      +
      +$("select").select2({
      +  matcher: matchStart
      +})
      +
      + +

      + Then in Select2 4.0, you would need to wrap the matchStart + method (or the name of the matcher you created) with a + oldMatcher method that we have created. +

      + +
      +function matchStart (term, text) {
      +  if (text.toUpperCase().indexOf(term.toUpperCase()) == 0) {
      +    return true;
      +  }
      +
      +  return false;
      +}
      +
      +$.fn.select2.amd.require(['select2/compat/matcher'], function (oldMatcher) {
      +  $("select").select2({
      +    matcher: oldMatcher(matchStart)
      +  })
      +});
      +
      + +

      + This will work for any matchers that only took in the search term and the + text of the option as parameters. If your matcher relied on the third + parameter containing the jQuery element representing the original + <option> tag, then you may need to slightly change + your matcher to expect the full JavaScript data object being passed in + instead. You can still retrieve the jQuery element from the data object + using the data.element property. +

      +

      More flexible placeholders

      @@ -263,9 +296,9 @@ $("select").select2({

      And Select2 will automatically display the placeholder when the value of - the select is -1, which it is by default. This does not break - the old functionality of Select2 where the placeholder option was blank by - default. + the select is -1, which it will be by default. This does not + break the old functionality of Select2 where the placeholder option was + blank by default.

      Display reflects the actual order of the values

      diff --git a/awx/ui/static/lib/select2/docs/community.html b/awx/ui/client/lib/select2/docs/community.html similarity index 100% rename from awx/ui/static/lib/select2/docs/community.html rename to awx/ui/client/lib/select2/docs/community.html diff --git a/awx/ui/static/lib/select2/docs/examples.html b/awx/ui/client/lib/select2/docs/examples.html similarity index 99% rename from awx/ui/static/lib/select2/docs/examples.html rename to awx/ui/client/lib/select2/docs/examples.html index 00415b5cc6..ccb751d2a4 100644 --- a/awx/ui/static/lib/select2/docs/examples.html +++ b/awx/ui/client/lib/select2/docs/examples.html @@ -211,7 +211,7 @@ $(".js-example-data-array-selected").select2({ data: data }) - + '); + var options = new Options({ + dropdownCssClass: ':all:' + }); + + var select = new DropdownCSS($element, options); + var $dropdown = select.render(); + + assert.ok($dropdown.hasClass('test')); + assert.ok($dropdown.hasClass('copy')); + assert.ok($dropdown.hasClass('works')); + assert.ok(!$dropdown.hasClass(':all:')); +}); + +test(':all: can be used with other classes', function (assert) { + var $element = $(''); + var options = new Options({ + dropdownCssClass: ':all: other' + }); + + var select = new DropdownCSS($element, options); + var $dropdown = select.render(); + + assert.ok($dropdown.hasClass('test')); + assert.ok($dropdown.hasClass('copy')); + assert.ok($dropdown.hasClass('works')); + assert.ok($dropdown.hasClass('other')); + assert.ok(!$dropdown.hasClass(':all:')); +}); + +test('classes can be passed in as a string', function (assert) { + var $element = $(''); + var options = new Options({ + dropdownCssClass: 'other' + }); + + var select = new DropdownCSS($element, options); + var $dropdown = select.render(); + + assert.ok($dropdown.hasClass('other')); +}); + +test('a function can be used based on the element', function (assert){ + var $element = $(''); + var options = new Options({ + dropdownCssClass: function ($element) { + return 'function'; + } + }); + + var select = new DropdownCSS($element, options); + var $dropdown = select.render(); + + assert.ok($dropdown.hasClass('function')); + assert.ok(!$dropdown.hasClass('test')); +}); + +test(':all: works around custom adapters', function (assert) { + var $element = $(''); + var options = new Options({ + dropdownCssClass: ':all: something', + adaptDropdownCssClass: function (clazz) { + return clazz + '-modified'; + } + }); + + var select = new DropdownCSS($element, options); + var $dropdown = select.render(); + + assert.ok($dropdown.hasClass('something')); + + assert.ok($dropdown.hasClass('test')); + assert.ok($dropdown.hasClass('test-modified')); +}); + +module('Dropdown - adaptDropdownCss compatibility'); + +test('only return when adapted', function (assert) { + var $element = $(''); + var options = new Options({ + adaptDropdownCssClass: function (clazz) { + return 'modified'; + } + }); + + var select = new DropdownCSS($element, options); + var $dropdown = select.render(); + + assert.ok(!$dropdown.hasClass('original')); + assert.ok($dropdown.hasClass('modified')); +}); diff --git a/awx/ui/static/lib/select2/tests/dropdown/selectOnClose-tests.js b/awx/ui/client/lib/select2/tests/dropdown/selectOnClose-tests.js similarity index 100% rename from awx/ui/static/lib/select2/tests/dropdown/selectOnClose-tests.js rename to awx/ui/client/lib/select2/tests/dropdown/selectOnClose-tests.js diff --git a/awx/ui/static/lib/select2/tests/dropdown/stopPropagation-tests.js b/awx/ui/client/lib/select2/tests/dropdown/stopPropagation-tests.js similarity index 100% rename from awx/ui/static/lib/select2/tests/dropdown/stopPropagation-tests.js rename to awx/ui/client/lib/select2/tests/dropdown/stopPropagation-tests.js diff --git a/awx/ui/static/lib/select2/tests/helpers.js b/awx/ui/client/lib/select2/tests/helpers.js similarity index 100% rename from awx/ui/static/lib/select2/tests/helpers.js rename to awx/ui/client/lib/select2/tests/helpers.js diff --git a/awx/ui/static/lib/select2/tests/integration.html b/awx/ui/client/lib/select2/tests/integration.html similarity index 100% rename from awx/ui/static/lib/select2/tests/integration.html rename to awx/ui/client/lib/select2/tests/integration.html diff --git a/awx/ui/static/lib/select2/tests/integration/select2-methods.js b/awx/ui/client/lib/select2/tests/integration/select2-methods.js similarity index 100% rename from awx/ui/static/lib/select2/tests/integration/select2-methods.js rename to awx/ui/client/lib/select2/tests/integration/select2-methods.js diff --git a/awx/ui/static/lib/select2/tests/options/data-tests.js b/awx/ui/client/lib/select2/tests/options/data-tests.js similarity index 100% rename from awx/ui/static/lib/select2/tests/options/data-tests.js rename to awx/ui/client/lib/select2/tests/options/data-tests.js diff --git a/awx/ui/static/lib/select2/tests/options/deprecated-tests.js b/awx/ui/client/lib/select2/tests/options/deprecated-tests.js similarity index 100% rename from awx/ui/static/lib/select2/tests/options/deprecated-tests.js rename to awx/ui/client/lib/select2/tests/options/deprecated-tests.js diff --git a/awx/ui/client/lib/select2/tests/options/translation-tests.js b/awx/ui/client/lib/select2/tests/options/translation-tests.js new file mode 100644 index 0000000000..ab433b6157 --- /dev/null +++ b/awx/ui/client/lib/select2/tests/options/translation-tests.js @@ -0,0 +1,28 @@ +module('Options - Translations'); + +var $ = require('jquery'); +var Options = require('select2/options'); + +test('partial dictionaries can be passed', function (assert) { + var options = new Options({ + language: { + searching: function () { + return 'Something'; + } + } + }); + + var translations = options.get('translations'); + + assert.equal( + translations.get('searching')(), + 'Something', + 'The partial dictionary still overrides translations' + ); + + assert.equal( + translations.get('noResults')(), + 'No results found', + 'You can still get English translations for keys not passed in' + ); +}); diff --git a/awx/ui/static/lib/select2/tests/options/width-tests.js b/awx/ui/client/lib/select2/tests/options/width-tests.js similarity index 100% rename from awx/ui/static/lib/select2/tests/options/width-tests.js rename to awx/ui/client/lib/select2/tests/options/width-tests.js diff --git a/awx/ui/static/lib/select2/tests/selection/allowClear-tests.js b/awx/ui/client/lib/select2/tests/selection/allowClear-tests.js similarity index 100% rename from awx/ui/static/lib/select2/tests/selection/allowClear-tests.js rename to awx/ui/client/lib/select2/tests/selection/allowClear-tests.js diff --git a/awx/ui/client/lib/select2/tests/selection/containerCss-tests.js b/awx/ui/client/lib/select2/tests/selection/containerCss-tests.js new file mode 100644 index 0000000000..522703a238 --- /dev/null +++ b/awx/ui/client/lib/select2/tests/selection/containerCss-tests.js @@ -0,0 +1,104 @@ +module('Dropdown - containerCssClass compatibility'); + +var $ = require('jquery'); +var Utils = require('select2/utils'); +var Options = require('select2/options'); + +var SingleSelection = require('select2/selection/single'); +var ContainerCSS = Utils.Decorate( + SingleSelection, + require('select2/compat/containerCss') +); + +test('all classes will be copied if :all: is used', function (assert) { + var $element = $(''); + var options = new Options({ + containerCssClass: ':all:' + }); + + var select = new ContainerCSS($element, options); + var $container = select.render(); + + assert.ok($container.hasClass('test')); + assert.ok($container.hasClass('copy')); + assert.ok($container.hasClass('works')); + assert.ok(!$container.hasClass(':all:')); +}); + +test(':all: can be used with other classes', function (assert) { + var $element = $(''); + var options = new Options({ + containerCssClass: ':all: other' + }); + + var select = new ContainerCSS($element, options); + var $container = select.render(); + + assert.ok($container.hasClass('test')); + assert.ok($container.hasClass('copy')); + assert.ok($container.hasClass('works')); + assert.ok($container.hasClass('other')); + assert.ok(!$container.hasClass(':all:')); +}); + +test('classes can be passed in as a string', function (assert) { + var $element = $(''); + var options = new Options({ + containerCssClass: 'other' + }); + + var select = new ContainerCSS($element, options); + var $container = select.render(); + + assert.ok($container.hasClass('other')); +}); + +test('a function can be used based on the element', function (assert){ + var $element = $(''); + var options = new Options({ + containerCssClass: function ($element) { + return 'function'; + } + }); + + var select = new ContainerCSS($element, options); + var $container = select.render(); + + assert.ok($container.hasClass('function')); + assert.ok(!$container.hasClass('test')); +}); + +test(':all: works around custom adapters', function (assert) { + var $element = $(''); + var options = new Options({ + containerCssClass: ':all: something', + adaptContainerCssClass: function (clazz) { + return clazz + '-modified'; + } + }); + + var select = new ContainerCSS($element, options); + var $container = select.render(); + + assert.ok($container.hasClass('something')); + + assert.ok($container.hasClass('test')); + assert.ok($container.hasClass('test-modified')); +}); + +module('Selection - adaptContainerCss compatibility'); + +test('only return when adapted', function (assert) { + var $element = $(''); + var options = new Options({ + adaptContainerCssClass: function (clazz) { + return 'modified'; + } + }); + + var select = new ContainerCSS($element, options); + var $container = select.render(); + + assert.ok(!$container.hasClass('original')); + assert.ok($container.hasClass('modified')); +}); diff --git a/awx/ui/static/lib/select2/tests/selection/multiple-tests.js b/awx/ui/client/lib/select2/tests/selection/multiple-tests.js similarity index 100% rename from awx/ui/static/lib/select2/tests/selection/multiple-tests.js rename to awx/ui/client/lib/select2/tests/selection/multiple-tests.js diff --git a/awx/ui/static/lib/select2/tests/selection/placeholder-tests.js b/awx/ui/client/lib/select2/tests/selection/placeholder-tests.js similarity index 100% rename from awx/ui/static/lib/select2/tests/selection/placeholder-tests.js rename to awx/ui/client/lib/select2/tests/selection/placeholder-tests.js diff --git a/awx/ui/static/lib/select2/tests/selection/single-tests.js b/awx/ui/client/lib/select2/tests/selection/single-tests.js similarity index 100% rename from awx/ui/static/lib/select2/tests/selection/single-tests.js rename to awx/ui/client/lib/select2/tests/selection/single-tests.js diff --git a/awx/ui/static/lib/select2/tests/selection/stopPropagation-tests.js b/awx/ui/client/lib/select2/tests/selection/stopPropagation-tests.js similarity index 100% rename from awx/ui/static/lib/select2/tests/selection/stopPropagation-tests.js rename to awx/ui/client/lib/select2/tests/selection/stopPropagation-tests.js diff --git a/awx/ui/static/lib/select2/tests/unit.html b/awx/ui/client/lib/select2/tests/unit.html similarity index 93% rename from awx/ui/static/lib/select2/tests/unit.html rename to awx/ui/client/lib/select2/tests/unit.html index 8f832dc9e2..b7eac54bc0 100644 --- a/awx/ui/static/lib/select2/tests/unit.html +++ b/awx/ui/client/lib/select2/tests/unit.html @@ -66,14 +66,17 @@ + + + diff --git a/awx/ui/static/lib/select2/tests/utils/decorator-tests.js b/awx/ui/client/lib/select2/tests/utils/decorator-tests.js similarity index 100% rename from awx/ui/static/lib/select2/tests/utils/decorator-tests.js rename to awx/ui/client/lib/select2/tests/utils/decorator-tests.js diff --git a/awx/ui/static/lib/select2/tests/utils/escapeMarkup-tests.js b/awx/ui/client/lib/select2/tests/utils/escapeMarkup-tests.js similarity index 100% rename from awx/ui/static/lib/select2/tests/utils/escapeMarkup-tests.js rename to awx/ui/client/lib/select2/tests/utils/escapeMarkup-tests.js diff --git a/awx/ui/static/lib/select2/tests/vendor/jquery-1.7.2.js b/awx/ui/client/lib/select2/tests/vendor/jquery-1.7.2.js similarity index 100% rename from awx/ui/static/lib/select2/tests/vendor/jquery-1.7.2.js rename to awx/ui/client/lib/select2/tests/vendor/jquery-1.7.2.js diff --git a/awx/ui/static/lib/select2/tests/vendor/qunit-1.14.0.css b/awx/ui/client/lib/select2/tests/vendor/qunit-1.14.0.css similarity index 100% rename from awx/ui/static/lib/select2/tests/vendor/qunit-1.14.0.css rename to awx/ui/client/lib/select2/tests/vendor/qunit-1.14.0.css diff --git a/awx/ui/static/lib/select2/tests/vendor/qunit-1.14.0.js b/awx/ui/client/lib/select2/tests/vendor/qunit-1.14.0.js similarity index 100% rename from awx/ui/static/lib/select2/tests/vendor/qunit-1.14.0.js rename to awx/ui/client/lib/select2/tests/vendor/qunit-1.14.0.js diff --git a/awx/ui/static/lib/select2/vendor/almond-0.2.9.js b/awx/ui/client/lib/select2/vendor/almond-0.2.9.js similarity index 100% rename from awx/ui/static/lib/select2/vendor/almond-0.2.9.js rename to awx/ui/client/lib/select2/vendor/almond-0.2.9.js diff --git a/awx/ui/static/lib/select2/vendor/jquery-2.1.0.js b/awx/ui/client/lib/select2/vendor/jquery-2.1.0.js similarity index 100% rename from awx/ui/static/lib/select2/vendor/jquery-2.1.0.js rename to awx/ui/client/lib/select2/vendor/jquery-2.1.0.js diff --git a/awx/ui/static/lib/select2/vendor/jquery.mousewheel.js b/awx/ui/client/lib/select2/vendor/jquery.mousewheel.js similarity index 100% rename from awx/ui/static/lib/select2/vendor/jquery.mousewheel.js rename to awx/ui/client/lib/select2/vendor/jquery.mousewheel.js diff --git a/awx/ui/static/lib/sizzle/.bower.json b/awx/ui/client/lib/sizzle/.bower.json similarity index 100% rename from awx/ui/static/lib/sizzle/.bower.json rename to awx/ui/client/lib/sizzle/.bower.json diff --git a/awx/ui/static/lib/sizzle/dist/sizzle.js b/awx/ui/client/lib/sizzle/dist/sizzle.js similarity index 100% rename from awx/ui/static/lib/sizzle/dist/sizzle.js rename to awx/ui/client/lib/sizzle/dist/sizzle.js diff --git a/awx/ui/static/lib/sizzle/dist/sizzle.min.js b/awx/ui/client/lib/sizzle/dist/sizzle.min.js similarity index 100% rename from awx/ui/static/lib/sizzle/dist/sizzle.min.js rename to awx/ui/client/lib/sizzle/dist/sizzle.min.js diff --git a/awx/ui/static/lib/sizzle/dist/sizzle.min.map b/awx/ui/client/lib/sizzle/dist/sizzle.min.map similarity index 100% rename from awx/ui/static/lib/sizzle/dist/sizzle.min.map rename to awx/ui/client/lib/sizzle/dist/sizzle.min.map diff --git a/awx/ui/static/lib/sizzle/tasks/commit.js b/awx/ui/client/lib/sizzle/tasks/commit.js similarity index 100% rename from awx/ui/static/lib/sizzle/tasks/commit.js rename to awx/ui/client/lib/sizzle/tasks/commit.js diff --git a/awx/ui/static/lib/sizzle/tasks/compile.js b/awx/ui/client/lib/sizzle/tasks/compile.js similarity index 100% rename from awx/ui/static/lib/sizzle/tasks/compile.js rename to awx/ui/client/lib/sizzle/tasks/compile.js diff --git a/awx/ui/static/lib/sizzle/tasks/dist.js b/awx/ui/client/lib/sizzle/tasks/dist.js similarity index 100% rename from awx/ui/static/lib/sizzle/tasks/dist.js rename to awx/ui/client/lib/sizzle/tasks/dist.js diff --git a/awx/ui/static/lib/sizzle/tasks/release.js b/awx/ui/client/lib/sizzle/tasks/release.js similarity index 100% rename from awx/ui/static/lib/sizzle/tasks/release.js rename to awx/ui/client/lib/sizzle/tasks/release.js diff --git a/awx/ui/static/lib/sizzle/tasks/tag.js b/awx/ui/client/lib/sizzle/tasks/tag.js similarity index 100% rename from awx/ui/static/lib/sizzle/tasks/tag.js rename to awx/ui/client/lib/sizzle/tasks/tag.js diff --git a/awx/ui/static/lib/sizzle/tasks/version.js b/awx/ui/client/lib/sizzle/tasks/version.js similarity index 100% rename from awx/ui/static/lib/sizzle/tasks/version.js rename to awx/ui/client/lib/sizzle/tasks/version.js diff --git a/awx/ui/static/lib/sizzle/test/data/empty.js b/awx/ui/client/lib/sizzle/test/data/empty.js similarity index 100% rename from awx/ui/static/lib/sizzle/test/data/empty.js rename to awx/ui/client/lib/sizzle/test/data/empty.js diff --git a/awx/ui/static/lib/sizzle/test/data/mixed_sort.html b/awx/ui/client/lib/sizzle/test/data/mixed_sort.html similarity index 100% rename from awx/ui/static/lib/sizzle/test/data/mixed_sort.html rename to awx/ui/client/lib/sizzle/test/data/mixed_sort.html diff --git a/awx/ui/static/lib/sizzle/test/data/testinit.js b/awx/ui/client/lib/sizzle/test/data/testinit.js similarity index 100% rename from awx/ui/static/lib/sizzle/test/data/testinit.js rename to awx/ui/client/lib/sizzle/test/data/testinit.js diff --git a/awx/ui/static/lib/sizzle/test/index.html b/awx/ui/client/lib/sizzle/test/index.html similarity index 100% rename from awx/ui/static/lib/sizzle/test/index.html rename to awx/ui/client/lib/sizzle/test/index.html diff --git a/awx/ui/static/lib/sizzle/test/jquery.js b/awx/ui/client/lib/sizzle/test/jquery.js similarity index 100% rename from awx/ui/static/lib/sizzle/test/jquery.js rename to awx/ui/client/lib/sizzle/test/jquery.js diff --git a/awx/ui/static/lib/sizzle/test/libs/qunit/qunit.css b/awx/ui/client/lib/sizzle/test/libs/qunit/qunit.css similarity index 100% rename from awx/ui/static/lib/sizzle/test/libs/qunit/qunit.css rename to awx/ui/client/lib/sizzle/test/libs/qunit/qunit.css diff --git a/awx/ui/static/lib/sizzle/test/libs/qunit/qunit.js b/awx/ui/client/lib/sizzle/test/libs/qunit/qunit.js similarity index 100% rename from awx/ui/static/lib/sizzle/test/libs/qunit/qunit.js rename to awx/ui/client/lib/sizzle/test/libs/qunit/qunit.js diff --git a/awx/ui/static/lib/sizzle/test/unit/extending.js b/awx/ui/client/lib/sizzle/test/unit/extending.js similarity index 100% rename from awx/ui/static/lib/sizzle/test/unit/extending.js rename to awx/ui/client/lib/sizzle/test/unit/extending.js diff --git a/awx/ui/static/lib/sizzle/test/unit/selector.js b/awx/ui/client/lib/sizzle/test/unit/selector.js similarity index 100% rename from awx/ui/static/lib/sizzle/test/unit/selector.js rename to awx/ui/client/lib/sizzle/test/unit/selector.js diff --git a/awx/ui/static/lib/sizzle/test/unit/utilities.js b/awx/ui/client/lib/sizzle/test/unit/utilities.js similarity index 100% rename from awx/ui/static/lib/sizzle/test/unit/utilities.js rename to awx/ui/client/lib/sizzle/test/unit/utilities.js diff --git a/awx/ui/static/lib/socket.io-client/.bower.json b/awx/ui/client/lib/socket.io-client/.bower.json similarity index 100% rename from awx/ui/static/lib/socket.io-client/.bower.json rename to awx/ui/client/lib/socket.io-client/.bower.json diff --git a/awx/ui/static/lib/socket.io-client/.gitignore b/awx/ui/client/lib/socket.io-client/.gitignore similarity index 100% rename from awx/ui/static/lib/socket.io-client/.gitignore rename to awx/ui/client/lib/socket.io-client/.gitignore diff --git a/awx/ui/static/lib/socket.io-client/.npmignore b/awx/ui/client/lib/socket.io-client/.npmignore similarity index 100% rename from awx/ui/static/lib/socket.io-client/.npmignore rename to awx/ui/client/lib/socket.io-client/.npmignore diff --git a/awx/ui/static/lib/socket.io-client/History.md b/awx/ui/client/lib/socket.io-client/History.md similarity index 100% rename from awx/ui/static/lib/socket.io-client/History.md rename to awx/ui/client/lib/socket.io-client/History.md diff --git a/awx/ui/static/lib/socket.io-client/Makefile b/awx/ui/client/lib/socket.io-client/Makefile similarity index 100% rename from awx/ui/static/lib/socket.io-client/Makefile rename to awx/ui/client/lib/socket.io-client/Makefile diff --git a/awx/ui/static/lib/socket.io-client/README.md b/awx/ui/client/lib/socket.io-client/README.md similarity index 100% rename from awx/ui/static/lib/socket.io-client/README.md rename to awx/ui/client/lib/socket.io-client/README.md diff --git a/awx/ui/static/lib/socket.io-client/bin/builder.js b/awx/ui/client/lib/socket.io-client/bin/builder.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/bin/builder.js rename to awx/ui/client/lib/socket.io-client/bin/builder.js diff --git a/awx/ui/static/lib/socket.io-client/dist/WebSocketMain.swf b/awx/ui/client/lib/socket.io-client/dist/WebSocketMain.swf similarity index 100% rename from awx/ui/static/lib/socket.io-client/dist/WebSocketMain.swf rename to awx/ui/client/lib/socket.io-client/dist/WebSocketMain.swf diff --git a/awx/ui/static/lib/socket.io-client/dist/WebSocketMainInsecure.swf b/awx/ui/client/lib/socket.io-client/dist/WebSocketMainInsecure.swf similarity index 100% rename from awx/ui/static/lib/socket.io-client/dist/WebSocketMainInsecure.swf rename to awx/ui/client/lib/socket.io-client/dist/WebSocketMainInsecure.swf diff --git a/awx/ui/static/lib/socket.io-client/dist/socket.io.js b/awx/ui/client/lib/socket.io-client/dist/socket.io.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/dist/socket.io.js rename to awx/ui/client/lib/socket.io-client/dist/socket.io.js diff --git a/awx/ui/static/lib/socket.io-client/dist/socket.io.min.js b/awx/ui/client/lib/socket.io-client/dist/socket.io.min.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/dist/socket.io.min.js rename to awx/ui/client/lib/socket.io-client/dist/socket.io.min.js diff --git a/awx/ui/static/lib/socket.io-client/lib/events.js b/awx/ui/client/lib/socket.io-client/lib/events.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/events.js rename to awx/ui/client/lib/socket.io-client/lib/events.js diff --git a/awx/ui/static/lib/socket.io-client/lib/io.js b/awx/ui/client/lib/socket.io-client/lib/io.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/io.js rename to awx/ui/client/lib/socket.io-client/lib/io.js diff --git a/awx/ui/static/lib/socket.io-client/lib/json.js b/awx/ui/client/lib/socket.io-client/lib/json.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/json.js rename to awx/ui/client/lib/socket.io-client/lib/json.js diff --git a/awx/ui/static/lib/socket.io-client/lib/namespace.js b/awx/ui/client/lib/socket.io-client/lib/namespace.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/namespace.js rename to awx/ui/client/lib/socket.io-client/lib/namespace.js diff --git a/awx/ui/static/lib/socket.io-client/lib/parser.js b/awx/ui/client/lib/socket.io-client/lib/parser.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/parser.js rename to awx/ui/client/lib/socket.io-client/lib/parser.js diff --git a/awx/ui/static/lib/socket.io-client/lib/socket.js b/awx/ui/client/lib/socket.io-client/lib/socket.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/socket.js rename to awx/ui/client/lib/socket.io-client/lib/socket.js diff --git a/awx/ui/static/lib/socket.io-client/lib/transport.js b/awx/ui/client/lib/socket.io-client/lib/transport.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/transport.js rename to awx/ui/client/lib/socket.io-client/lib/transport.js diff --git a/awx/ui/static/lib/socket.io-client/lib/transports/flashsocket.js b/awx/ui/client/lib/socket.io-client/lib/transports/flashsocket.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/transports/flashsocket.js rename to awx/ui/client/lib/socket.io-client/lib/transports/flashsocket.js diff --git a/awx/ui/static/lib/socket.io-client/lib/transports/htmlfile.js b/awx/ui/client/lib/socket.io-client/lib/transports/htmlfile.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/transports/htmlfile.js rename to awx/ui/client/lib/socket.io-client/lib/transports/htmlfile.js diff --git a/awx/ui/static/lib/socket.io-client/lib/transports/jsonp-polling.js b/awx/ui/client/lib/socket.io-client/lib/transports/jsonp-polling.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/transports/jsonp-polling.js rename to awx/ui/client/lib/socket.io-client/lib/transports/jsonp-polling.js diff --git a/awx/ui/static/lib/socket.io-client/lib/transports/websocket.js b/awx/ui/client/lib/socket.io-client/lib/transports/websocket.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/transports/websocket.js rename to awx/ui/client/lib/socket.io-client/lib/transports/websocket.js diff --git a/awx/ui/static/lib/socket.io-client/lib/transports/xhr-polling.js b/awx/ui/client/lib/socket.io-client/lib/transports/xhr-polling.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/transports/xhr-polling.js rename to awx/ui/client/lib/socket.io-client/lib/transports/xhr-polling.js diff --git a/awx/ui/static/lib/socket.io-client/lib/transports/xhr.js b/awx/ui/client/lib/socket.io-client/lib/transports/xhr.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/transports/xhr.js rename to awx/ui/client/lib/socket.io-client/lib/transports/xhr.js diff --git a/awx/ui/static/lib/socket.io-client/lib/util.js b/awx/ui/client/lib/socket.io-client/lib/util.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/util.js rename to awx/ui/client/lib/socket.io-client/lib/util.js diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/.gitignore b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/.gitignore similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/.gitignore rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/.gitignore diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/README.md b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/README.md similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/README.md rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/README.md diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/WebSocketMain.swf b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/WebSocketMain.swf similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/WebSocketMain.swf rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/WebSocketMain.swf diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/WebSocketMainInsecure.zip b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/WebSocketMainInsecure.zip similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/WebSocketMainInsecure.zip rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/WebSocketMainInsecure.zip diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/IWebSocketLogger.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/IWebSocketLogger.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/IWebSocketLogger.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/IWebSocketLogger.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocket.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocket.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocket.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocket.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocketEvent.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocketEvent.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocketEvent.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocketEvent.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocketMain.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocketMain.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocketMain.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocketMain.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocketMainInsecure.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocketMainInsecure.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocketMainInsecure.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocketMainInsecure.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/build.sh b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/build.sh similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/build.sh rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/build.sh diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/adobe/net/proxies/RFC2817Socket.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/adobe/net/proxies/RFC2817Socket.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/adobe/net/proxies/RFC2817Socket.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/adobe/net/proxies/RFC2817Socket.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/gsolo/encryption/MD5.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/gsolo/encryption/MD5.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/gsolo/encryption/MD5.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/gsolo/encryption/MD5.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/Crypto.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/Crypto.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/Crypto.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/Crypto.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/MozillaRootCertificates.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/MozillaRootCertificates.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/MozillaRootCertificates.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/MozillaRootCertificates.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/X509Certificate.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/X509Certificate.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/X509Certificate.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/X509Certificate.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/X509CertificateCollection.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/X509CertificateCollection.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/X509CertificateCollection.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/X509CertificateCollection.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/HMAC.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/HMAC.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/HMAC.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/HMAC.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/IHMAC.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/IHMAC.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/IHMAC.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/IHMAC.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/IHash.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/IHash.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/IHash.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/IHash.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MAC.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MAC.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MAC.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MAC.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MD2.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MD2.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MD2.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MD2.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MD5.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MD5.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MD5.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MD5.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA1.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA1.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA1.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA1.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA224.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA224.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA224.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA224.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA256.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA256.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA256.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA256.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHABase.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHABase.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHABase.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHABase.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/ARC4.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/ARC4.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/ARC4.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/ARC4.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/IPRNG.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/IPRNG.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/IPRNG.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/IPRNG.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/Random.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/Random.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/Random.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/Random.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/TLSPRF.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/TLSPRF.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/TLSPRF.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/TLSPRF.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/rsa/RSAKey.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/rsa/RSAKey.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/rsa/RSAKey.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/rsa/RSAKey.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/AESKey.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/AESKey.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/AESKey.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/AESKey.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/BlowFishKey.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/BlowFishKey.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/BlowFishKey.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/BlowFishKey.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CBCMode.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CBCMode.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CBCMode.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CBCMode.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CFB8Mode.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CFB8Mode.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CFB8Mode.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CFB8Mode.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CFBMode.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CFBMode.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CFBMode.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CFBMode.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CTRMode.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CTRMode.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CTRMode.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CTRMode.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/DESKey.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/DESKey.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/DESKey.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/DESKey.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ECBMode.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ECBMode.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ECBMode.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ECBMode.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ICipher.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ICipher.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ICipher.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ICipher.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IMode.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IMode.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IMode.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IMode.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IPad.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IPad.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IPad.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IPad.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IStreamCipher.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IStreamCipher.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IStreamCipher.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IStreamCipher.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ISymmetricKey.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ISymmetricKey.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ISymmetricKey.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ISymmetricKey.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IVMode.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IVMode.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IVMode.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IVMode.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/NullPad.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/NullPad.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/NullPad.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/NullPad.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/OFBMode.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/OFBMode.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/OFBMode.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/OFBMode.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/PKCS5.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/PKCS5.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/PKCS5.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/PKCS5.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/SSLPad.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/SSLPad.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/SSLPad.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/SSLPad.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/SimpleIVMode.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/SimpleIVMode.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/SimpleIVMode.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/SimpleIVMode.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/TLSPad.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/TLSPad.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/TLSPad.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/TLSPad.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/TripleDESKey.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/TripleDESKey.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/TripleDESKey.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/TripleDESKey.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/XTeaKey.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/XTeaKey.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/XTeaKey.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/XTeaKey.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/aeskey.pl b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/aeskey.pl similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/aeskey.pl rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/aeskey.pl diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/dump.txt b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/dump.txt similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/dump.txt rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/dump.txt diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/AESKeyTest.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/AESKeyTest.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/AESKeyTest.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/AESKeyTest.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ARC4Test.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ARC4Test.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ARC4Test.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ARC4Test.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/BigIntegerTest.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/BigIntegerTest.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/BigIntegerTest.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/BigIntegerTest.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/BlowFishKeyTest.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/BlowFishKeyTest.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/BlowFishKeyTest.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/BlowFishKeyTest.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CBCModeTest.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CBCModeTest.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CBCModeTest.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CBCModeTest.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CFB8ModeTest.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CFB8ModeTest.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CFB8ModeTest.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CFB8ModeTest.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CFBModeTest.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CFBModeTest.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CFBModeTest.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CFBModeTest.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CTRModeTest.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CTRModeTest.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CTRModeTest.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CTRModeTest.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/DESKeyTest.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/DESKeyTest.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/DESKeyTest.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/DESKeyTest.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ECBModeTest.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ECBModeTest.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ECBModeTest.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ECBModeTest.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/HMACTest.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/HMACTest.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/HMACTest.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/HMACTest.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ITestHarness.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ITestHarness.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ITestHarness.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ITestHarness.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/MD2Test.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/MD2Test.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/MD2Test.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/MD2Test.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/MD5Test.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/MD5Test.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/MD5Test.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/MD5Test.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/OFBModeTest.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/OFBModeTest.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/OFBModeTest.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/OFBModeTest.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/RSAKeyTest.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/RSAKeyTest.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/RSAKeyTest.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/RSAKeyTest.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA1Test.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA1Test.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA1Test.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA1Test.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA224Test.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA224Test.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA224Test.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA224Test.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA256Test.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA256Test.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA256Test.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA256Test.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TLSPRFTest.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TLSPRFTest.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TLSPRFTest.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TLSPRFTest.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TestCase.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TestCase.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TestCase.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TestCase.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TripleDESKeyTest.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TripleDESKeyTest.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TripleDESKeyTest.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TripleDESKeyTest.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/XTeaKeyTest.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/XTeaKeyTest.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/XTeaKeyTest.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/XTeaKeyTest.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/BulkCiphers.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/BulkCiphers.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/BulkCiphers.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/BulkCiphers.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/CipherSuites.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/CipherSuites.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/CipherSuites.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/CipherSuites.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/IConnectionState.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/IConnectionState.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/IConnectionState.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/IConnectionState.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/ISecurityParameters.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/ISecurityParameters.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/ISecurityParameters.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/ISecurityParameters.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/KeyExchanges.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/KeyExchanges.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/KeyExchanges.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/KeyExchanges.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/MACs.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/MACs.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/MACs.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/MACs.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLConnectionState.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLConnectionState.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLConnectionState.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLConnectionState.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLEvent.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLEvent.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLEvent.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLEvent.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLSecurityParameters.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLSecurityParameters.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLSecurityParameters.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLSecurityParameters.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSConfig.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSConfig.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSConfig.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSConfig.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSConnectionState.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSConnectionState.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSConnectionState.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSConnectionState.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSEngine.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSEngine.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSEngine.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSEngine.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSError.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSError.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSError.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSError.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSEvent.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSEvent.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSEvent.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSEvent.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSSecurityParameters.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSSecurityParameters.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSSecurityParameters.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSSecurityParameters.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSSocket.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSSocket.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSSocket.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSSocket.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSSocketEvent.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSSocketEvent.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSSocketEvent.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSSocketEvent.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSTest.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSTest.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSTest.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSTest.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/BarrettReduction.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/BarrettReduction.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/BarrettReduction.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/BarrettReduction.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/BigInteger.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/BigInteger.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/BigInteger.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/BigInteger.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/ClassicReduction.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/ClassicReduction.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/ClassicReduction.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/ClassicReduction.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/IReduction.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/IReduction.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/IReduction.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/IReduction.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/MontgomeryReduction.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/MontgomeryReduction.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/MontgomeryReduction.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/MontgomeryReduction.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/NullReduction.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/NullReduction.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/NullReduction.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/NullReduction.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/bi_internal.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/bi_internal.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/bi_internal.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/bi_internal.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/ArrayUtil.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/ArrayUtil.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/ArrayUtil.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/ArrayUtil.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/Base64.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/Base64.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/Base64.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/Base64.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/Hex.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/Hex.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/Hex.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/Hex.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/Memory.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/Memory.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/Memory.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/Memory.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/ByteString.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/ByteString.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/ByteString.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/ByteString.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/DER.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/DER.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/DER.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/DER.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/IAsn1Type.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/IAsn1Type.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/IAsn1Type.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/IAsn1Type.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/Integer.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/Integer.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/Integer.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/Integer.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/OID.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/OID.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/OID.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/OID.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/ObjectIdentifier.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/ObjectIdentifier.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/ObjectIdentifier.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/ObjectIdentifier.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/PEM.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/PEM.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/PEM.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/PEM.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/PrintableString.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/PrintableString.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/PrintableString.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/PrintableString.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/Sequence.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/Sequence.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/Sequence.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/Sequence.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/Set.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/Set.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/Set.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/Set.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/Type.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/Type.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/Type.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/Type.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/UTCTime.as b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/UTCTime.as similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/UTCTime.as rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/UTCTime.as diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/sample.html b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/sample.html similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/sample.html rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/sample.html diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/swfobject.js b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/swfobject.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/swfobject.js rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/swfobject.js diff --git a/awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/web_socket.js b/awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/web_socket.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/lib/vendor/web-socket-js/web_socket.js rename to awx/ui/client/lib/socket.io-client/lib/vendor/web-socket-js/web_socket.js diff --git a/awx/ui/static/lib/socket.io-client/package.json b/awx/ui/client/lib/socket.io-client/package.json similarity index 100% rename from awx/ui/static/lib/socket.io-client/package.json rename to awx/ui/client/lib/socket.io-client/package.json diff --git a/awx/ui/static/lib/socket.io-client/support/should.js b/awx/ui/client/lib/socket.io-client/support/should.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/support/should.js rename to awx/ui/client/lib/socket.io-client/support/should.js diff --git a/awx/ui/static/lib/socket.io-client/support/test-runner/app.js b/awx/ui/client/lib/socket.io-client/support/test-runner/app.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/support/test-runner/app.js rename to awx/ui/client/lib/socket.io-client/support/test-runner/app.js diff --git a/awx/ui/static/lib/socket.io-client/support/test-runner/index.jade b/awx/ui/client/lib/socket.io-client/support/test-runner/index.jade similarity index 100% rename from awx/ui/static/lib/socket.io-client/support/test-runner/index.jade rename to awx/ui/client/lib/socket.io-client/support/test-runner/index.jade diff --git a/awx/ui/static/lib/socket.io-client/support/test-runner/public/javascript/jquery.js b/awx/ui/client/lib/socket.io-client/support/test-runner/public/javascript/jquery.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/support/test-runner/public/javascript/jquery.js rename to awx/ui/client/lib/socket.io-client/support/test-runner/public/javascript/jquery.js diff --git a/awx/ui/static/lib/socket.io-client/support/test-runner/public/javascript/runner.js b/awx/ui/client/lib/socket.io-client/support/test-runner/public/javascript/runner.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/support/test-runner/public/javascript/runner.js rename to awx/ui/client/lib/socket.io-client/support/test-runner/public/javascript/runner.js diff --git a/awx/ui/static/lib/socket.io-client/support/test-runner/public/javascript/script.js b/awx/ui/client/lib/socket.io-client/support/test-runner/public/javascript/script.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/support/test-runner/public/javascript/script.js rename to awx/ui/client/lib/socket.io-client/support/test-runner/public/javascript/script.js diff --git a/awx/ui/static/lib/socket.io-client/support/test-runner/public/stylesheets/main.css b/awx/ui/client/lib/socket.io-client/support/test-runner/public/stylesheets/main.css similarity index 100% rename from awx/ui/static/lib/socket.io-client/support/test-runner/public/stylesheets/main.css rename to awx/ui/client/lib/socket.io-client/support/test-runner/public/stylesheets/main.css diff --git a/awx/ui/static/lib/socket.io-client/support/test-runner/public/stylesheets/main.styl b/awx/ui/client/lib/socket.io-client/support/test-runner/public/stylesheets/main.styl similarity index 100% rename from awx/ui/static/lib/socket.io-client/support/test-runner/public/stylesheets/main.styl rename to awx/ui/client/lib/socket.io-client/support/test-runner/public/stylesheets/main.styl diff --git a/awx/ui/static/lib/socket.io-client/test/events.test.js b/awx/ui/client/lib/socket.io-client/test/events.test.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/test/events.test.js rename to awx/ui/client/lib/socket.io-client/test/events.test.js diff --git a/awx/ui/static/lib/socket.io-client/test/io.test.js b/awx/ui/client/lib/socket.io-client/test/io.test.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/test/io.test.js rename to awx/ui/client/lib/socket.io-client/test/io.test.js diff --git a/awx/ui/static/lib/socket.io-client/test/node/builder.common.js b/awx/ui/client/lib/socket.io-client/test/node/builder.common.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/test/node/builder.common.js rename to awx/ui/client/lib/socket.io-client/test/node/builder.common.js diff --git a/awx/ui/static/lib/socket.io-client/test/node/builder.test.js b/awx/ui/client/lib/socket.io-client/test/node/builder.test.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/test/node/builder.test.js rename to awx/ui/client/lib/socket.io-client/test/node/builder.test.js diff --git a/awx/ui/static/lib/socket.io-client/test/parser.test.js b/awx/ui/client/lib/socket.io-client/test/parser.test.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/test/parser.test.js rename to awx/ui/client/lib/socket.io-client/test/parser.test.js diff --git a/awx/ui/static/lib/socket.io-client/test/socket.test.js b/awx/ui/client/lib/socket.io-client/test/socket.test.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/test/socket.test.js rename to awx/ui/client/lib/socket.io-client/test/socket.test.js diff --git a/awx/ui/static/lib/socket.io-client/test/util.test.js b/awx/ui/client/lib/socket.io-client/test/util.test.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/test/util.test.js rename to awx/ui/client/lib/socket.io-client/test/util.test.js diff --git a/awx/ui/static/lib/socket.io-client/test/worker.js b/awx/ui/client/lib/socket.io-client/test/worker.js similarity index 100% rename from awx/ui/static/lib/socket.io-client/test/worker.js rename to awx/ui/client/lib/socket.io-client/test/worker.js diff --git a/awx/ui/static/lib/timezone-js/.bower.json b/awx/ui/client/lib/timezone-js/.bower.json similarity index 100% rename from awx/ui/static/lib/timezone-js/.bower.json rename to awx/ui/client/lib/timezone-js/.bower.json diff --git a/awx/ui/static/lib/timezone-js/.gitignore b/awx/ui/client/lib/timezone-js/.gitignore similarity index 100% rename from awx/ui/static/lib/timezone-js/.gitignore rename to awx/ui/client/lib/timezone-js/.gitignore diff --git a/awx/ui/static/lib/timezone-js/.travis.yml b/awx/ui/client/lib/timezone-js/.travis.yml similarity index 100% rename from awx/ui/static/lib/timezone-js/.travis.yml rename to awx/ui/client/lib/timezone-js/.travis.yml diff --git a/awx/ui/static/lib/timezone-js/Jakefile b/awx/ui/client/lib/timezone-js/Jakefile similarity index 100% rename from awx/ui/static/lib/timezone-js/Jakefile rename to awx/ui/client/lib/timezone-js/Jakefile diff --git a/awx/ui/static/lib/timezone-js/README.md b/awx/ui/client/lib/timezone-js/README.md similarity index 100% rename from awx/ui/static/lib/timezone-js/README.md rename to awx/ui/client/lib/timezone-js/README.md diff --git a/awx/ui/static/lib/timezone-js/spec/date.spec.js b/awx/ui/client/lib/timezone-js/spec/date.spec.js similarity index 100% rename from awx/ui/static/lib/timezone-js/spec/date.spec.js rename to awx/ui/client/lib/timezone-js/spec/date.spec.js diff --git a/awx/ui/static/lib/timezone-js/spec/test-utils.js b/awx/ui/client/lib/timezone-js/spec/test-utils.js similarity index 100% rename from awx/ui/static/lib/timezone-js/spec/test-utils.js rename to awx/ui/client/lib/timezone-js/spec/test-utils.js diff --git a/awx/ui/static/lib/timezone-js/spec/tz.async.spec.js b/awx/ui/client/lib/timezone-js/spec/tz.async.spec.js similarity index 100% rename from awx/ui/static/lib/timezone-js/spec/tz.async.spec.js rename to awx/ui/client/lib/timezone-js/spec/tz.async.spec.js diff --git a/awx/ui/static/lib/timezone-js/spec/tz.manual.spec.js b/awx/ui/client/lib/timezone-js/spec/tz.manual.spec.js similarity index 100% rename from awx/ui/static/lib/timezone-js/spec/tz.manual.spec.js rename to awx/ui/client/lib/timezone-js/spec/tz.manual.spec.js diff --git a/awx/ui/static/lib/timezone-js/spec/tz.preload.spec.js b/awx/ui/client/lib/timezone-js/spec/tz.preload.spec.js similarity index 100% rename from awx/ui/static/lib/timezone-js/spec/tz.preload.spec.js rename to awx/ui/client/lib/timezone-js/spec/tz.preload.spec.js diff --git a/awx/ui/static/lib/timezone-js/spec/tz.sync.spec.js b/awx/ui/client/lib/timezone-js/spec/tz.sync.spec.js similarity index 100% rename from awx/ui/static/lib/timezone-js/spec/tz.sync.spec.js rename to awx/ui/client/lib/timezone-js/spec/tz.sync.spec.js diff --git a/awx/ui/static/lib/timezone-js/src/date.js b/awx/ui/client/lib/timezone-js/src/date.js similarity index 100% rename from awx/ui/static/lib/timezone-js/src/date.js rename to awx/ui/client/lib/timezone-js/src/date.js diff --git a/awx/ui/static/lib/timezone-js/src/node-preparse.js b/awx/ui/client/lib/timezone-js/src/node-preparse.js similarity index 100% rename from awx/ui/static/lib/timezone-js/src/node-preparse.js rename to awx/ui/client/lib/timezone-js/src/node-preparse.js diff --git a/awx/ui/static/lib/timezone-js/src/preparse.js b/awx/ui/client/lib/timezone-js/src/preparse.js similarity index 100% rename from awx/ui/static/lib/timezone-js/src/preparse.js rename to awx/ui/client/lib/timezone-js/src/preparse.js diff --git a/awx/ui/static/lib/timezone-js/src/strip_olson_comments.rb b/awx/ui/client/lib/timezone-js/src/strip_olson_comments.rb similarity index 100% rename from awx/ui/static/lib/timezone-js/src/strip_olson_comments.rb rename to awx/ui/client/lib/timezone-js/src/strip_olson_comments.rb diff --git a/awx/ui/static/lib/twitter/.bower.json b/awx/ui/client/lib/twitter/.bower.json similarity index 100% rename from awx/ui/static/lib/twitter/.bower.json rename to awx/ui/client/lib/twitter/.bower.json diff --git a/awx/ui/static/lib/twitter/Gruntfile.js b/awx/ui/client/lib/twitter/Gruntfile.js similarity index 100% rename from awx/ui/static/lib/twitter/Gruntfile.js rename to awx/ui/client/lib/twitter/Gruntfile.js diff --git a/awx/ui/static/lib/twitter/LICENSE b/awx/ui/client/lib/twitter/LICENSE similarity index 100% rename from awx/ui/static/lib/twitter/LICENSE rename to awx/ui/client/lib/twitter/LICENSE diff --git a/awx/ui/static/lib/twitter/README.md b/awx/ui/client/lib/twitter/README.md similarity index 100% rename from awx/ui/static/lib/twitter/README.md rename to awx/ui/client/lib/twitter/README.md diff --git a/awx/ui/static/lib/twitter/bower.json b/awx/ui/client/lib/twitter/bower.json similarity index 100% rename from awx/ui/static/lib/twitter/bower.json rename to awx/ui/client/lib/twitter/bower.json diff --git a/awx/ui/static/lib/twitter/dist/css/bootstrap-theme.css b/awx/ui/client/lib/twitter/dist/css/bootstrap-theme.css similarity index 100% rename from awx/ui/static/lib/twitter/dist/css/bootstrap-theme.css rename to awx/ui/client/lib/twitter/dist/css/bootstrap-theme.css diff --git a/awx/ui/static/lib/twitter/dist/css/bootstrap-theme.css.map b/awx/ui/client/lib/twitter/dist/css/bootstrap-theme.css.map similarity index 100% rename from awx/ui/static/lib/twitter/dist/css/bootstrap-theme.css.map rename to awx/ui/client/lib/twitter/dist/css/bootstrap-theme.css.map diff --git a/awx/ui/static/lib/twitter/dist/css/bootstrap-theme.min.css b/awx/ui/client/lib/twitter/dist/css/bootstrap-theme.min.css similarity index 100% rename from awx/ui/static/lib/twitter/dist/css/bootstrap-theme.min.css rename to awx/ui/client/lib/twitter/dist/css/bootstrap-theme.min.css diff --git a/awx/ui/static/lib/twitter/dist/css/bootstrap.css b/awx/ui/client/lib/twitter/dist/css/bootstrap.css similarity index 100% rename from awx/ui/static/lib/twitter/dist/css/bootstrap.css rename to awx/ui/client/lib/twitter/dist/css/bootstrap.css diff --git a/awx/ui/static/lib/twitter/dist/css/bootstrap.css.map b/awx/ui/client/lib/twitter/dist/css/bootstrap.css.map similarity index 100% rename from awx/ui/static/lib/twitter/dist/css/bootstrap.css.map rename to awx/ui/client/lib/twitter/dist/css/bootstrap.css.map diff --git a/awx/ui/static/lib/twitter/dist/css/bootstrap.min.css b/awx/ui/client/lib/twitter/dist/css/bootstrap.min.css similarity index 100% rename from awx/ui/static/lib/twitter/dist/css/bootstrap.min.css rename to awx/ui/client/lib/twitter/dist/css/bootstrap.min.css diff --git a/awx/ui/static/lib/twitter/dist/fonts/glyphicons-halflings-regular.eot b/awx/ui/client/lib/twitter/dist/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from awx/ui/static/lib/twitter/dist/fonts/glyphicons-halflings-regular.eot rename to awx/ui/client/lib/twitter/dist/fonts/glyphicons-halflings-regular.eot diff --git a/awx/ui/static/lib/twitter/dist/fonts/glyphicons-halflings-regular.svg b/awx/ui/client/lib/twitter/dist/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from awx/ui/static/lib/twitter/dist/fonts/glyphicons-halflings-regular.svg rename to awx/ui/client/lib/twitter/dist/fonts/glyphicons-halflings-regular.svg diff --git a/awx/ui/static/lib/twitter/dist/fonts/glyphicons-halflings-regular.ttf b/awx/ui/client/lib/twitter/dist/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from awx/ui/static/lib/twitter/dist/fonts/glyphicons-halflings-regular.ttf rename to awx/ui/client/lib/twitter/dist/fonts/glyphicons-halflings-regular.ttf diff --git a/awx/ui/static/lib/twitter/dist/fonts/glyphicons-halflings-regular.woff b/awx/ui/client/lib/twitter/dist/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from awx/ui/static/lib/twitter/dist/fonts/glyphicons-halflings-regular.woff rename to awx/ui/client/lib/twitter/dist/fonts/glyphicons-halflings-regular.woff diff --git a/awx/ui/static/lib/twitter/dist/js/bootstrap.js b/awx/ui/client/lib/twitter/dist/js/bootstrap.js similarity index 100% rename from awx/ui/static/lib/twitter/dist/js/bootstrap.js rename to awx/ui/client/lib/twitter/dist/js/bootstrap.js diff --git a/awx/ui/static/lib/twitter/dist/js/bootstrap.min.js b/awx/ui/client/lib/twitter/dist/js/bootstrap.min.js similarity index 100% rename from awx/ui/static/lib/twitter/dist/js/bootstrap.min.js rename to awx/ui/client/lib/twitter/dist/js/bootstrap.min.js diff --git a/awx/ui/static/lib/twitter/fonts/glyphicons-halflings-regular.eot b/awx/ui/client/lib/twitter/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from awx/ui/static/lib/twitter/fonts/glyphicons-halflings-regular.eot rename to awx/ui/client/lib/twitter/fonts/glyphicons-halflings-regular.eot diff --git a/awx/ui/static/lib/twitter/fonts/glyphicons-halflings-regular.svg b/awx/ui/client/lib/twitter/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from awx/ui/static/lib/twitter/fonts/glyphicons-halflings-regular.svg rename to awx/ui/client/lib/twitter/fonts/glyphicons-halflings-regular.svg diff --git a/awx/ui/static/lib/twitter/fonts/glyphicons-halflings-regular.ttf b/awx/ui/client/lib/twitter/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from awx/ui/static/lib/twitter/fonts/glyphicons-halflings-regular.ttf rename to awx/ui/client/lib/twitter/fonts/glyphicons-halflings-regular.ttf diff --git a/awx/ui/static/lib/twitter/fonts/glyphicons-halflings-regular.woff b/awx/ui/client/lib/twitter/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from awx/ui/static/lib/twitter/fonts/glyphicons-halflings-regular.woff rename to awx/ui/client/lib/twitter/fonts/glyphicons-halflings-regular.woff diff --git a/awx/ui/static/lib/twitter/grunt/bs-glyphicons-data-generator.js b/awx/ui/client/lib/twitter/grunt/bs-glyphicons-data-generator.js similarity index 100% rename from awx/ui/static/lib/twitter/grunt/bs-glyphicons-data-generator.js rename to awx/ui/client/lib/twitter/grunt/bs-glyphicons-data-generator.js diff --git a/awx/ui/static/lib/twitter/grunt/bs-lessdoc-parser.js b/awx/ui/client/lib/twitter/grunt/bs-lessdoc-parser.js similarity index 100% rename from awx/ui/static/lib/twitter/grunt/bs-lessdoc-parser.js rename to awx/ui/client/lib/twitter/grunt/bs-lessdoc-parser.js diff --git a/awx/ui/static/lib/twitter/grunt/bs-raw-files-generator.js b/awx/ui/client/lib/twitter/grunt/bs-raw-files-generator.js similarity index 100% rename from awx/ui/static/lib/twitter/grunt/bs-raw-files-generator.js rename to awx/ui/client/lib/twitter/grunt/bs-raw-files-generator.js diff --git a/awx/ui/static/lib/twitter/grunt/sauce_browsers.yml b/awx/ui/client/lib/twitter/grunt/sauce_browsers.yml similarity index 100% rename from awx/ui/static/lib/twitter/grunt/sauce_browsers.yml rename to awx/ui/client/lib/twitter/grunt/sauce_browsers.yml diff --git a/awx/ui/static/lib/twitter/js/affix.js b/awx/ui/client/lib/twitter/js/affix.js similarity index 100% rename from awx/ui/static/lib/twitter/js/affix.js rename to awx/ui/client/lib/twitter/js/affix.js diff --git a/awx/ui/static/lib/twitter/js/alert.js b/awx/ui/client/lib/twitter/js/alert.js similarity index 100% rename from awx/ui/static/lib/twitter/js/alert.js rename to awx/ui/client/lib/twitter/js/alert.js diff --git a/awx/ui/static/lib/twitter/js/button.js b/awx/ui/client/lib/twitter/js/button.js similarity index 100% rename from awx/ui/static/lib/twitter/js/button.js rename to awx/ui/client/lib/twitter/js/button.js diff --git a/awx/ui/static/lib/twitter/js/carousel.js b/awx/ui/client/lib/twitter/js/carousel.js similarity index 100% rename from awx/ui/static/lib/twitter/js/carousel.js rename to awx/ui/client/lib/twitter/js/carousel.js diff --git a/awx/ui/static/lib/twitter/js/collapse.js b/awx/ui/client/lib/twitter/js/collapse.js similarity index 100% rename from awx/ui/static/lib/twitter/js/collapse.js rename to awx/ui/client/lib/twitter/js/collapse.js diff --git a/awx/ui/static/lib/twitter/js/dropdown.js b/awx/ui/client/lib/twitter/js/dropdown.js similarity index 100% rename from awx/ui/static/lib/twitter/js/dropdown.js rename to awx/ui/client/lib/twitter/js/dropdown.js diff --git a/awx/ui/static/lib/twitter/js/modal.js b/awx/ui/client/lib/twitter/js/modal.js similarity index 100% rename from awx/ui/static/lib/twitter/js/modal.js rename to awx/ui/client/lib/twitter/js/modal.js diff --git a/awx/ui/static/lib/twitter/js/popover.js b/awx/ui/client/lib/twitter/js/popover.js similarity index 100% rename from awx/ui/static/lib/twitter/js/popover.js rename to awx/ui/client/lib/twitter/js/popover.js diff --git a/awx/ui/static/lib/twitter/js/scrollspy.js b/awx/ui/client/lib/twitter/js/scrollspy.js similarity index 100% rename from awx/ui/static/lib/twitter/js/scrollspy.js rename to awx/ui/client/lib/twitter/js/scrollspy.js diff --git a/awx/ui/static/lib/twitter/js/tab.js b/awx/ui/client/lib/twitter/js/tab.js similarity index 100% rename from awx/ui/static/lib/twitter/js/tab.js rename to awx/ui/client/lib/twitter/js/tab.js diff --git a/awx/ui/static/lib/twitter/js/tooltip.js b/awx/ui/client/lib/twitter/js/tooltip.js similarity index 100% rename from awx/ui/static/lib/twitter/js/tooltip.js rename to awx/ui/client/lib/twitter/js/tooltip.js diff --git a/awx/ui/static/lib/twitter/js/transition.js b/awx/ui/client/lib/twitter/js/transition.js similarity index 100% rename from awx/ui/static/lib/twitter/js/transition.js rename to awx/ui/client/lib/twitter/js/transition.js diff --git a/awx/ui/static/lib/twitter/less/alerts.less b/awx/ui/client/lib/twitter/less/alerts.less similarity index 100% rename from awx/ui/static/lib/twitter/less/alerts.less rename to awx/ui/client/lib/twitter/less/alerts.less diff --git a/awx/ui/static/lib/twitter/less/badges.less b/awx/ui/client/lib/twitter/less/badges.less similarity index 100% rename from awx/ui/static/lib/twitter/less/badges.less rename to awx/ui/client/lib/twitter/less/badges.less diff --git a/awx/ui/static/lib/twitter/less/bootstrap.less b/awx/ui/client/lib/twitter/less/bootstrap.less similarity index 100% rename from awx/ui/static/lib/twitter/less/bootstrap.less rename to awx/ui/client/lib/twitter/less/bootstrap.less diff --git a/awx/ui/static/lib/bootstrap/less/breadcrumbs.less b/awx/ui/client/lib/twitter/less/breadcrumbs.less similarity index 100% rename from awx/ui/static/lib/bootstrap/less/breadcrumbs.less rename to awx/ui/client/lib/twitter/less/breadcrumbs.less diff --git a/awx/ui/static/lib/twitter/less/button-groups.less b/awx/ui/client/lib/twitter/less/button-groups.less similarity index 100% rename from awx/ui/static/lib/twitter/less/button-groups.less rename to awx/ui/client/lib/twitter/less/button-groups.less diff --git a/awx/ui/static/lib/twitter/less/buttons.less b/awx/ui/client/lib/twitter/less/buttons.less similarity index 100% rename from awx/ui/static/lib/twitter/less/buttons.less rename to awx/ui/client/lib/twitter/less/buttons.less diff --git a/awx/ui/static/lib/twitter/less/carousel.less b/awx/ui/client/lib/twitter/less/carousel.less similarity index 100% rename from awx/ui/static/lib/twitter/less/carousel.less rename to awx/ui/client/lib/twitter/less/carousel.less diff --git a/awx/ui/static/lib/bootstrap/less/close.less b/awx/ui/client/lib/twitter/less/close.less similarity index 100% rename from awx/ui/static/lib/bootstrap/less/close.less rename to awx/ui/client/lib/twitter/less/close.less diff --git a/awx/ui/static/lib/twitter/less/code.less b/awx/ui/client/lib/twitter/less/code.less similarity index 100% rename from awx/ui/static/lib/twitter/less/code.less rename to awx/ui/client/lib/twitter/less/code.less diff --git a/awx/ui/static/lib/twitter/less/component-animations.less b/awx/ui/client/lib/twitter/less/component-animations.less similarity index 100% rename from awx/ui/static/lib/twitter/less/component-animations.less rename to awx/ui/client/lib/twitter/less/component-animations.less diff --git a/awx/ui/static/lib/twitter/less/dropdowns.less b/awx/ui/client/lib/twitter/less/dropdowns.less similarity index 100% rename from awx/ui/static/lib/twitter/less/dropdowns.less rename to awx/ui/client/lib/twitter/less/dropdowns.less diff --git a/awx/ui/static/lib/twitter/less/forms.less b/awx/ui/client/lib/twitter/less/forms.less similarity index 100% rename from awx/ui/static/lib/twitter/less/forms.less rename to awx/ui/client/lib/twitter/less/forms.less diff --git a/awx/ui/static/lib/twitter/less/glyphicons.less b/awx/ui/client/lib/twitter/less/glyphicons.less similarity index 100% rename from awx/ui/static/lib/twitter/less/glyphicons.less rename to awx/ui/client/lib/twitter/less/glyphicons.less diff --git a/awx/ui/static/lib/bootstrap/less/grid.less b/awx/ui/client/lib/twitter/less/grid.less similarity index 100% rename from awx/ui/static/lib/bootstrap/less/grid.less rename to awx/ui/client/lib/twitter/less/grid.less diff --git a/awx/ui/static/lib/twitter/less/input-groups.less b/awx/ui/client/lib/twitter/less/input-groups.less similarity index 100% rename from awx/ui/static/lib/twitter/less/input-groups.less rename to awx/ui/client/lib/twitter/less/input-groups.less diff --git a/awx/ui/static/lib/twitter/less/jumbotron.less b/awx/ui/client/lib/twitter/less/jumbotron.less similarity index 100% rename from awx/ui/static/lib/twitter/less/jumbotron.less rename to awx/ui/client/lib/twitter/less/jumbotron.less diff --git a/awx/ui/static/lib/twitter/less/labels.less b/awx/ui/client/lib/twitter/less/labels.less similarity index 100% rename from awx/ui/static/lib/twitter/less/labels.less rename to awx/ui/client/lib/twitter/less/labels.less diff --git a/awx/ui/static/lib/twitter/less/list-group.less b/awx/ui/client/lib/twitter/less/list-group.less similarity index 100% rename from awx/ui/static/lib/twitter/less/list-group.less rename to awx/ui/client/lib/twitter/less/list-group.less diff --git a/awx/ui/static/lib/bootstrap/less/media.less b/awx/ui/client/lib/twitter/less/media.less similarity index 100% rename from awx/ui/static/lib/bootstrap/less/media.less rename to awx/ui/client/lib/twitter/less/media.less diff --git a/awx/ui/static/lib/twitter/less/mixins.less b/awx/ui/client/lib/twitter/less/mixins.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins.less rename to awx/ui/client/lib/twitter/less/mixins.less diff --git a/awx/ui/static/lib/twitter/less/mixins/alerts.less b/awx/ui/client/lib/twitter/less/mixins/alerts.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/alerts.less rename to awx/ui/client/lib/twitter/less/mixins/alerts.less diff --git a/awx/ui/static/lib/twitter/less/mixins/background-variant.less b/awx/ui/client/lib/twitter/less/mixins/background-variant.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/background-variant.less rename to awx/ui/client/lib/twitter/less/mixins/background-variant.less diff --git a/awx/ui/static/lib/twitter/less/mixins/border-radius.less b/awx/ui/client/lib/twitter/less/mixins/border-radius.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/border-radius.less rename to awx/ui/client/lib/twitter/less/mixins/border-radius.less diff --git a/awx/ui/static/lib/twitter/less/mixins/buttons.less b/awx/ui/client/lib/twitter/less/mixins/buttons.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/buttons.less rename to awx/ui/client/lib/twitter/less/mixins/buttons.less diff --git a/awx/ui/static/lib/twitter/less/mixins/center-block.less b/awx/ui/client/lib/twitter/less/mixins/center-block.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/center-block.less rename to awx/ui/client/lib/twitter/less/mixins/center-block.less diff --git a/awx/ui/static/lib/twitter/less/mixins/clearfix.less b/awx/ui/client/lib/twitter/less/mixins/clearfix.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/clearfix.less rename to awx/ui/client/lib/twitter/less/mixins/clearfix.less diff --git a/awx/ui/static/lib/twitter/less/mixins/forms.less b/awx/ui/client/lib/twitter/less/mixins/forms.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/forms.less rename to awx/ui/client/lib/twitter/less/mixins/forms.less diff --git a/awx/ui/static/lib/twitter/less/mixins/gradients.less b/awx/ui/client/lib/twitter/less/mixins/gradients.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/gradients.less rename to awx/ui/client/lib/twitter/less/mixins/gradients.less diff --git a/awx/ui/static/lib/twitter/less/mixins/grid-framework.less b/awx/ui/client/lib/twitter/less/mixins/grid-framework.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/grid-framework.less rename to awx/ui/client/lib/twitter/less/mixins/grid-framework.less diff --git a/awx/ui/static/lib/twitter/less/mixins/grid.less b/awx/ui/client/lib/twitter/less/mixins/grid.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/grid.less rename to awx/ui/client/lib/twitter/less/mixins/grid.less diff --git a/awx/ui/static/lib/twitter/less/mixins/hide-text.less b/awx/ui/client/lib/twitter/less/mixins/hide-text.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/hide-text.less rename to awx/ui/client/lib/twitter/less/mixins/hide-text.less diff --git a/awx/ui/static/lib/twitter/less/mixins/image.less b/awx/ui/client/lib/twitter/less/mixins/image.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/image.less rename to awx/ui/client/lib/twitter/less/mixins/image.less diff --git a/awx/ui/static/lib/twitter/less/mixins/labels.less b/awx/ui/client/lib/twitter/less/mixins/labels.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/labels.less rename to awx/ui/client/lib/twitter/less/mixins/labels.less diff --git a/awx/ui/static/lib/twitter/less/mixins/list-group.less b/awx/ui/client/lib/twitter/less/mixins/list-group.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/list-group.less rename to awx/ui/client/lib/twitter/less/mixins/list-group.less diff --git a/awx/ui/static/lib/twitter/less/mixins/nav-divider.less b/awx/ui/client/lib/twitter/less/mixins/nav-divider.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/nav-divider.less rename to awx/ui/client/lib/twitter/less/mixins/nav-divider.less diff --git a/awx/ui/static/lib/twitter/less/mixins/nav-vertical-align.less b/awx/ui/client/lib/twitter/less/mixins/nav-vertical-align.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/nav-vertical-align.less rename to awx/ui/client/lib/twitter/less/mixins/nav-vertical-align.less diff --git a/awx/ui/static/lib/twitter/less/mixins/opacity.less b/awx/ui/client/lib/twitter/less/mixins/opacity.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/opacity.less rename to awx/ui/client/lib/twitter/less/mixins/opacity.less diff --git a/awx/ui/static/lib/twitter/less/mixins/pagination.less b/awx/ui/client/lib/twitter/less/mixins/pagination.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/pagination.less rename to awx/ui/client/lib/twitter/less/mixins/pagination.less diff --git a/awx/ui/static/lib/twitter/less/mixins/panels.less b/awx/ui/client/lib/twitter/less/mixins/panels.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/panels.less rename to awx/ui/client/lib/twitter/less/mixins/panels.less diff --git a/awx/ui/static/lib/twitter/less/mixins/progress-bar.less b/awx/ui/client/lib/twitter/less/mixins/progress-bar.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/progress-bar.less rename to awx/ui/client/lib/twitter/less/mixins/progress-bar.less diff --git a/awx/ui/static/lib/twitter/less/mixins/reset-filter.less b/awx/ui/client/lib/twitter/less/mixins/reset-filter.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/reset-filter.less rename to awx/ui/client/lib/twitter/less/mixins/reset-filter.less diff --git a/awx/ui/static/lib/twitter/less/mixins/resize.less b/awx/ui/client/lib/twitter/less/mixins/resize.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/resize.less rename to awx/ui/client/lib/twitter/less/mixins/resize.less diff --git a/awx/ui/static/lib/twitter/less/mixins/responsive-visibility.less b/awx/ui/client/lib/twitter/less/mixins/responsive-visibility.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/responsive-visibility.less rename to awx/ui/client/lib/twitter/less/mixins/responsive-visibility.less diff --git a/awx/ui/static/lib/twitter/less/mixins/size.less b/awx/ui/client/lib/twitter/less/mixins/size.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/size.less rename to awx/ui/client/lib/twitter/less/mixins/size.less diff --git a/awx/ui/static/lib/twitter/less/mixins/tab-focus.less b/awx/ui/client/lib/twitter/less/mixins/tab-focus.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/tab-focus.less rename to awx/ui/client/lib/twitter/less/mixins/tab-focus.less diff --git a/awx/ui/static/lib/twitter/less/mixins/table-row.less b/awx/ui/client/lib/twitter/less/mixins/table-row.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/table-row.less rename to awx/ui/client/lib/twitter/less/mixins/table-row.less diff --git a/awx/ui/static/lib/twitter/less/mixins/text-emphasis.less b/awx/ui/client/lib/twitter/less/mixins/text-emphasis.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/text-emphasis.less rename to awx/ui/client/lib/twitter/less/mixins/text-emphasis.less diff --git a/awx/ui/static/lib/twitter/less/mixins/text-overflow.less b/awx/ui/client/lib/twitter/less/mixins/text-overflow.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/text-overflow.less rename to awx/ui/client/lib/twitter/less/mixins/text-overflow.less diff --git a/awx/ui/static/lib/twitter/less/mixins/vendor-prefixes.less b/awx/ui/client/lib/twitter/less/mixins/vendor-prefixes.less similarity index 100% rename from awx/ui/static/lib/twitter/less/mixins/vendor-prefixes.less rename to awx/ui/client/lib/twitter/less/mixins/vendor-prefixes.less diff --git a/awx/ui/static/lib/twitter/less/modals.less b/awx/ui/client/lib/twitter/less/modals.less similarity index 100% rename from awx/ui/static/lib/twitter/less/modals.less rename to awx/ui/client/lib/twitter/less/modals.less diff --git a/awx/ui/static/lib/twitter/less/navbar.less b/awx/ui/client/lib/twitter/less/navbar.less similarity index 100% rename from awx/ui/static/lib/twitter/less/navbar.less rename to awx/ui/client/lib/twitter/less/navbar.less diff --git a/awx/ui/static/lib/twitter/less/navs.less b/awx/ui/client/lib/twitter/less/navs.less similarity index 100% rename from awx/ui/static/lib/twitter/less/navs.less rename to awx/ui/client/lib/twitter/less/navs.less diff --git a/awx/ui/static/lib/twitter/less/normalize.less b/awx/ui/client/lib/twitter/less/normalize.less similarity index 100% rename from awx/ui/static/lib/twitter/less/normalize.less rename to awx/ui/client/lib/twitter/less/normalize.less diff --git a/awx/ui/static/lib/bootstrap/less/pager.less b/awx/ui/client/lib/twitter/less/pager.less similarity index 100% rename from awx/ui/static/lib/bootstrap/less/pager.less rename to awx/ui/client/lib/twitter/less/pager.less diff --git a/awx/ui/static/lib/bootstrap/less/pagination.less b/awx/ui/client/lib/twitter/less/pagination.less similarity index 100% rename from awx/ui/static/lib/bootstrap/less/pagination.less rename to awx/ui/client/lib/twitter/less/pagination.less diff --git a/awx/ui/static/lib/twitter/less/panels.less b/awx/ui/client/lib/twitter/less/panels.less similarity index 100% rename from awx/ui/static/lib/twitter/less/panels.less rename to awx/ui/client/lib/twitter/less/panels.less diff --git a/awx/ui/static/lib/twitter/less/popovers.less b/awx/ui/client/lib/twitter/less/popovers.less similarity index 100% rename from awx/ui/static/lib/twitter/less/popovers.less rename to awx/ui/client/lib/twitter/less/popovers.less diff --git a/awx/ui/static/lib/bootstrap/less/print.less b/awx/ui/client/lib/twitter/less/print.less similarity index 100% rename from awx/ui/static/lib/bootstrap/less/print.less rename to awx/ui/client/lib/twitter/less/print.less diff --git a/awx/ui/static/lib/twitter/less/progress-bars.less b/awx/ui/client/lib/twitter/less/progress-bars.less similarity index 100% rename from awx/ui/static/lib/twitter/less/progress-bars.less rename to awx/ui/client/lib/twitter/less/progress-bars.less diff --git a/awx/ui/static/lib/twitter/less/responsive-embed.less b/awx/ui/client/lib/twitter/less/responsive-embed.less similarity index 100% rename from awx/ui/static/lib/twitter/less/responsive-embed.less rename to awx/ui/client/lib/twitter/less/responsive-embed.less diff --git a/awx/ui/static/lib/twitter/less/responsive-utilities.less b/awx/ui/client/lib/twitter/less/responsive-utilities.less similarity index 100% rename from awx/ui/static/lib/twitter/less/responsive-utilities.less rename to awx/ui/client/lib/twitter/less/responsive-utilities.less diff --git a/awx/ui/static/lib/twitter/less/scaffolding.less b/awx/ui/client/lib/twitter/less/scaffolding.less similarity index 100% rename from awx/ui/static/lib/twitter/less/scaffolding.less rename to awx/ui/client/lib/twitter/less/scaffolding.less diff --git a/awx/ui/static/lib/twitter/less/tables.less b/awx/ui/client/lib/twitter/less/tables.less similarity index 100% rename from awx/ui/static/lib/twitter/less/tables.less rename to awx/ui/client/lib/twitter/less/tables.less diff --git a/awx/ui/static/lib/twitter/less/theme.less b/awx/ui/client/lib/twitter/less/theme.less similarity index 100% rename from awx/ui/static/lib/twitter/less/theme.less rename to awx/ui/client/lib/twitter/less/theme.less diff --git a/awx/ui/static/lib/bootstrap/less/thumbnails.less b/awx/ui/client/lib/twitter/less/thumbnails.less similarity index 100% rename from awx/ui/static/lib/bootstrap/less/thumbnails.less rename to awx/ui/client/lib/twitter/less/thumbnails.less diff --git a/awx/ui/static/lib/bootstrap/less/tooltip.less b/awx/ui/client/lib/twitter/less/tooltip.less similarity index 100% rename from awx/ui/static/lib/bootstrap/less/tooltip.less rename to awx/ui/client/lib/twitter/less/tooltip.less diff --git a/awx/ui/static/lib/twitter/less/type.less b/awx/ui/client/lib/twitter/less/type.less similarity index 100% rename from awx/ui/static/lib/twitter/less/type.less rename to awx/ui/client/lib/twitter/less/type.less diff --git a/awx/ui/static/lib/twitter/less/utilities.less b/awx/ui/client/lib/twitter/less/utilities.less similarity index 100% rename from awx/ui/static/lib/twitter/less/utilities.less rename to awx/ui/client/lib/twitter/less/utilities.less diff --git a/awx/ui/static/lib/twitter/less/variables.less b/awx/ui/client/lib/twitter/less/variables.less similarity index 100% rename from awx/ui/static/lib/twitter/less/variables.less rename to awx/ui/client/lib/twitter/less/variables.less diff --git a/awx/ui/static/lib/bootstrap/less/wells.less b/awx/ui/client/lib/twitter/less/wells.less similarity index 100% rename from awx/ui/static/lib/bootstrap/less/wells.less rename to awx/ui/client/lib/twitter/less/wells.less diff --git a/awx/ui/static/lib/twitter/package.json b/awx/ui/client/lib/twitter/package.json similarity index 100% rename from awx/ui/static/lib/twitter/package.json rename to awx/ui/client/lib/twitter/package.json diff --git a/awx/ui/static/lib/underscore/.bower.json b/awx/ui/client/lib/underscore/.bower.json similarity index 100% rename from awx/ui/static/lib/underscore/.bower.json rename to awx/ui/client/lib/underscore/.bower.json diff --git a/awx/ui/static/lib/underscore/LICENSE b/awx/ui/client/lib/underscore/LICENSE similarity index 100% rename from awx/ui/static/lib/underscore/LICENSE rename to awx/ui/client/lib/underscore/LICENSE diff --git a/awx/ui/static/lib/underscore/README.md b/awx/ui/client/lib/underscore/README.md similarity index 100% rename from awx/ui/static/lib/underscore/README.md rename to awx/ui/client/lib/underscore/README.md diff --git a/awx/ui/static/lib/underscore/bower.json b/awx/ui/client/lib/underscore/bower.json similarity index 100% rename from awx/ui/static/lib/underscore/bower.json rename to awx/ui/client/lib/underscore/bower.json diff --git a/awx/ui/static/lib/underscore/underscore-min.js b/awx/ui/client/lib/underscore/underscore-min.js similarity index 100% rename from awx/ui/static/lib/underscore/underscore-min.js rename to awx/ui/client/lib/underscore/underscore-min.js diff --git a/awx/ui/static/lib/underscore/underscore-min.map b/awx/ui/client/lib/underscore/underscore-min.map similarity index 100% rename from awx/ui/static/lib/underscore/underscore-min.map rename to awx/ui/client/lib/underscore/underscore-min.map diff --git a/awx/ui/static/lib/underscore/underscore.js b/awx/ui/client/lib/underscore/underscore.js similarity index 100% rename from awx/ui/static/lib/underscore/underscore.js rename to awx/ui/client/lib/underscore/underscore.js diff --git a/awx/ui/client/src/about/about.block.less b/awx/ui/client/src/about/about.block.less new file mode 100644 index 0000000000..4e46b24b50 --- /dev/null +++ b/awx/ui/client/src/about/about.block.less @@ -0,0 +1,14 @@ +/** @define About */ +.About { + height: 309px !important; +} + +.About-cowsay { + margin-top: 30px; +} + +.About-redhat { + max-width: 100%; + margin-top: -61px; + margin-bottom: -33px; +} diff --git a/awx/ui/client/src/adhoc/adhoc.controller.js b/awx/ui/client/src/adhoc/adhoc.controller.js new file mode 100644 index 0000000000..28a692a0df --- /dev/null +++ b/awx/ui/client/src/adhoc/adhoc.controller.js @@ -0,0 +1,317 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + +/** + * @ngdoc function + * @name controllers.function:Adhoc + * @description This controller controls the adhoc form creation, command launching and navigating to standard out after command has been succesfully ran. +*/ +function adhocController($q, $scope, $rootScope, $location, $routeParams, + CheckPasswords, PromptForPasswords, CreateLaunchDialog, adhocForm, + GenerateForm, Rest, ProcessErrors, ClearScope, GetBasePath, GetChoices, + KindChange, LookUpInit, CredentialList, Empty, Wait) { + + ClearScope(); + + // this is done so that we can access private functions for testing, but + // we don't want to populate the "public" scope with these internal + // functions + var privateFn = {}; + this.privateFn = privateFn; + + // note: put any urls that the controller will use in here!!!! + privateFn.setAvailableUrls = function() { + return { + adhocUrl: GetBasePath('inventory') + id + '/ad_hoc_commands/', + inventoryUrl: GetBasePath('inventory') + id + '/', + machineCredentialUrl: GetBasePath('credentials') + '?kind=ssh' + }; + }; + + var id = $routeParams.inventory_id, + urls = privateFn.setAvailableUrls(), + hostPattern = $rootScope.hostPatterns || "all"; + + // set the default options for the selects of the adhoc form + privateFn.setFieldDefaults = function(verbosity_options, forks_default) { + var verbosity; + for (verbosity in verbosity_options) { + if (verbosity_options[verbosity].isDefault) { + $scope.verbosity = verbosity_options[verbosity]; + } + } + $("#forks-number").spinner("value", forks_default); + $scope.forks = forks_default; + }; + + // set when "working" starts and stops + privateFn.setLoadingStartStop = function() { + var asyncHelper = {}, + formReadyPromise = 0; + + Wait('start'); + + if (asyncHelper.removeChoicesReady) { + asyncHelper.removeChoicesReady(); + } + asyncHelper.removeChoicesReady = $scope.$on('adhocFormReady', + isFormDone); + + // check to see if all requests have completed + function isFormDone() { + formReadyPromise++; + + if (formReadyPromise === 2) { + privateFn.setFieldDefaults($scope.adhoc_verbosity_options, + $scope.forks_field.default); + Wait('stop'); + } + } + }; + + privateFn.getInventoryNameForBreadcrumbs = function(url) { + + Rest.setUrl(url); + var promise = Rest.get(); + promise.then(function (response) { + $scope.inv_name = response.data.name; + }); + promise.catch(function (response) { + ProcessErrors($rootScope, response.data, response.status, null, { + hdr: 'Error!', + msg: 'Failed to get inventory name. GET returned status: ' + + response.status }); + $location.path("/inventories/"); + }); + return promise; + }; + + // set the arguments help to watch on change of the module + privateFn.instantiateArgumentHelp = function() { + $scope.$watch('module_name', function(val) { + if (val) { + // give the docs for the selected module in the popover + $scope.argsPopOver = '

      These arguments are used with the ' + + 'specified module. You can find information about the ' + + val.value + ' module here.

      '; + } else { + // no module selected + $scope.argsPopOver = "

      These arguments are used with the" + + " specified module.

      "; + } + }, true); + + // initially set to the same as no module selected + $scope.argsPopOver = "

      These arguments are used with the " + + "specified module.

      "; + }; + + // pre-populate host patterns from the inventory page and + // delete the value off of rootScope + privateFn.instantiateHostPatterns = function(hostPattern) { + $scope.limit = hostPattern; + $scope.providedHostPatterns = $scope.limit; + delete $rootScope.hostPatterns; + }; + + // call helpers to initialize lookup and select fields through get + // requests + privateFn.initializeFields = function(machineCredentialUrl, adhocUrl) { + // setup machine credential lookup + LookUpInit({ + url: machineCredentialUrl, + scope: $scope, + form: adhocForm, + current_item: (!Empty($scope.credential_id)) ? + $scope.credential_id : null, + list: CredentialList, + field: 'credential', + input_type: 'radio' + }); + + // setup module name select + GetChoices({ + scope: $scope, + url: adhocUrl, + field: 'module_name', + variable: 'adhoc_module_options', + callback: 'adhocFormReady' + }); + + // setup verbosity options select + GetChoices({ + scope: $scope, + url: adhocUrl, + field: 'verbosity', + variable: 'adhoc_verbosity_options', + callback: 'adhocFormReady' + }); + }; + + // instantiate all variables on scope for display in the partial + privateFn.initializeForm = function(id, urls, hostPattern) { + // inject the adhoc command form + GenerateForm.inject(adhocForm, + { mode: 'add', related: true, scope: $scope }); + + // set when "working" starts and stops + privateFn.setLoadingStartStop(); + + // put the inventory id on scope for the partial to use + $scope.inv_id = id; + + // get the inventory name + privateFn.getInventoryNameForBreadcrumbs(urls.inventoryUrl); + + // set the arguments help to watch on change of the module + privateFn.instantiateArgumentHelp(); + + // pre-populate host patterns from the inventory page and + // delete the value off of rootScope + privateFn.instantiateHostPatterns(hostPattern); + + privateFn.initializeFields(urls.machineCredentialUrl, urls.adhocUrl); + }; + + privateFn.initializeForm(id, urls, hostPattern); + + // remove all data input into the form and reset the form back to defaults + $scope.formReset = function () { + GenerateForm.reset(); + + // pre-populate host patterns from the inventory page and + // delete the value off of rootScope + privateFn.instantiateHostPatterns($scope.providedHostPatterns); + + KindChange({ scope: $scope, form: adhocForm, reset: false }); + + // set the default options for the selects of the adhoc form + privateFn.setFieldDefaults($scope.adhoc_verbosity_options, + $scope.forks_default); + }; + + // launch the job with the provided form data + $scope.launchJob = function () { + var adhocUrl = GetBasePath('inventory') + $routeParams.inventory_id + + '/ad_hoc_commands/', fld, data={}, html; + + html = '
      '; + + // stub the payload with defaults from DRF + data = { + "job_type": "run", + "limit": "", + "credential": "", + "module_name": "command", + "module_args": "", + "forks": 0, + "verbosity": 0, + "privilege_escalation": "" + }; + + GenerateForm.clearApiErrors(); + + // populate data with the relevant form values + for (fld in adhocForm.fields) { + if (adhocForm.fields[fld].type === 'select') { + data[fld] = $scope[fld].value; + } else if ($scope[fld]) { + data[fld] = $scope[fld]; + } + } + + Wait('start'); + + if ($scope.removeStartAdhocRun) { + $scope.removeStartAdhocRun(); + } + $scope.removeStartAdhocRun = $scope.$on('StartAdhocRun', function() { + var password; + for (password in $scope.passwords) { + data[$scope.passwords[password]] = $scope[ + $scope.passwords[password] + ]; + } + // Launch the adhoc job + Rest.setUrl(GetBasePath('inventory') + + $routeParams.inventory_id + '/ad_hoc_commands/'); + Rest.post(data) + .success(function (data) { + Wait('stop'); + $location.path("/ad_hoc_commands/" + data.id); + }) + .error(function (data, status) { + ProcessErrors($scope, data, status, adhocForm, { + hdr: 'Error!', + msg: 'Failed to launch adhoc command. POST ' + + 'returned status: ' + status }); + }); + }); + + if ($scope.removeCreateLaunchDialog) { + $scope.removeCreateLaunchDialog(); + } + $scope.removeCreateLaunchDialog = $scope.$on('CreateLaunchDialog', + function(e, html, url) { + CreateLaunchDialog({ + scope: $scope, + html: html, + url: url, + callback: 'StartAdhocRun' + }); + }); + + if ($scope.removePromptForPasswords) { + $scope.removePromptForPasswords(); + } + $scope.removePromptForPasswords = $scope.$on('PromptForPasswords', + function(e, passwords_needed_to_start,html, url) { + PromptForPasswords({ scope: $scope, + passwords: passwords_needed_to_start, + callback: 'CreateLaunchDialog', + html: html, + url: url + }); + }); + + if ($scope.removeContinueCred) { + $scope.removeContinueCred(); + } + $scope.removeContinueCred = $scope.$on('ContinueCred', function(e, + passwords) { + if(passwords.length>0){ + $scope.passwords_needed_to_start = passwords; + // only go through the password prompting steps if there are + // passwords to prompt for + $scope.$emit('PromptForPasswords', passwords, html, adhocUrl); + } else { + // if not, go straight to trying to run the job. + $scope.$emit('StartAdhocRun', adhocUrl); + } + }); + + // start adhoc launching routine + CheckPasswords({ + scope: $scope, + credential: $scope.credential, + callback: 'ContinueCred' + }); + }; + + +} + +export default ['$q', '$scope', '$rootScope', '$location', '$routeParams', + 'CheckPasswords', 'PromptForPasswords', 'CreateLaunchDialog', 'adhocForm', + 'GenerateForm', 'Rest', 'ProcessErrors', 'ClearScope', 'GetBasePath', + 'GetChoices', 'KindChange', 'LookUpInit', 'CredentialList', 'Empty', 'Wait', + adhocController]; diff --git a/awx/ui/client/src/adhoc/adhoc.form.js b/awx/ui/client/src/adhoc/adhoc.form.js new file mode 100644 index 0000000000..d200d37b47 --- /dev/null +++ b/awx/ui/client/src/adhoc/adhoc.form.js @@ -0,0 +1,140 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + + /** + * @ngdoc function + * @name forms.function:Adhoc + * @description This form is for executing an adhoc command +*/ + +export default function() { + return { + editTitle: 'Execute Command', + name: 'adhoc', + well: true, + forceListeners: true, + + fields: { + module_name: { + label: 'Module', + excludeModal: true, + type: 'select', + ngOptions: 'module.label for module in adhoc_module_options' + + ' track by module.value', + ngChange: 'moduleChange()', + addRequired: true, + awPopOver:'

      These are the modules that Tower supports ' + + 'running commands against.', + dataTitle: 'Module', + dataPlacement: 'right', + dataContainer: 'body' + }, + module_args: { + label: 'Arguments', + type: 'text', + awPopOverWatch: 'argsPopOver', + awPopOver: '{{ argsPopOver }}', + dataTitle: 'Arguments', + dataPlacement: 'right', + dataContainer: 'body', + addRequired: false, + autocomplete: false + }, + limit: { + label: 'Host Pattern', + type: 'text', + addRequired: false, + awPopOver: '

      The pattern used to target hosts in the ' + + 'inventory. Leaving the field blank, all, and * will ' + + 'all target all hosts in the inventory. You can find ' + + 'more information about Ansible\'s host patterns ' + + 'here.

      ', + dataTitle: 'Host Pattern', + dataPlacement: 'right', + dataContainer: 'body' + }, + credential: { + label: 'Machine Credential', + type: 'lookup', + sourceModel: 'credential', + sourceField: 'name', + ngClick: 'lookUpCredential()', + class: 'squeeze', + awPopOver: '

      Select the credential you want to use when ' + + 'accessing the remote hosts to run the command. ' + + 'Choose the credential containing ' + + 'the username and SSH key or password that Ansbile ' + + 'will need to log into the remote hosts.

      ', + dataTitle: 'Credential', + dataPlacement: 'right', + dataContainer: 'body', + awRequiredWhen: { + variable: 'credRequired', + init: 'false' + } + }, + become_enabled: { + label: 'Enable Privilege Escalation', + type: 'checkbox', + addRequired: false, + column: 2, + awPopOver: "

      If enabled, run this playbook as an administrator. This is the equivalent of passing the --become option to the ansible command.

      ", + dataPlacement: 'right', + dataTitle: 'Become Privilege Escalation', + dataContainer: "body" + }, + verbosity: { + label: 'Verbosity', + excludeModal: true, + type: 'select', + ngOptions: 'verbosity.label for verbosity in ' + + 'adhoc_verbosity_options ' + + 'track by verbosity.value', + addRequired: true, + awPopOver:'

      These are the verbosity levels for standard ' + + 'out of the command run that are supported.', + dataTitle: 'Module', + dataPlacement: 'right', + dataContainer: 'body', + "default": 1 + }, + forks: { + label: 'Forks', + id: 'forks-number', + type: 'number', + integer: true, + min: 0, + spinner: true, + "default": 0, + addRequired: true, + 'class': "input-small", + column: 1, + awPopOver: '

      The number of parallel or simultaneous processes to use while executing the command. 0 signifies ' + + 'the default value from the ansible configuration file.

      ', + dataTitle: 'Forks', + dataPlacement: 'right', + dataContainer: "body" + }, + }, + + buttons: { + launch: { + label: 'Launch', + ngClick: 'launchJob()', + ngDisabled: true + }, + reset: { + ngClick: 'formReset()', + ngDisabled: true + } + }, + + related: {} + }; +} diff --git a/awx/ui/static/partials/adhoc.html b/awx/ui/client/src/adhoc/adhoc.partial.html similarity index 100% rename from awx/ui/static/partials/adhoc.html rename to awx/ui/client/src/adhoc/adhoc.partial.html diff --git a/awx/ui/client/src/adhoc/adhoc.route.js b/awx/ui/client/src/adhoc/adhoc.route.js new file mode 100644 index 0000000000..f5fa7e9639 --- /dev/null +++ b/awx/ui/client/src/adhoc/adhoc.route.js @@ -0,0 +1,19 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + + import {templateUrl} from '../shared/template-url/template-url.factory'; + +export default { + route: '/inventories/:inventory_id/adhoc', + name: 'inventoryAdhoc', + templateUrl: templateUrl('adhoc/adhoc'), + controller: 'adhocController', + resolve: { + features: ['FeaturesService', function(FeaturesService) { + return FeaturesService.get(); + }] + } +}; diff --git a/awx/ui/client/src/adhoc/main.js b/awx/ui/client/src/adhoc/main.js new file mode 100644 index 0000000000..e4d8d26bf7 --- /dev/null +++ b/awx/ui/client/src/adhoc/main.js @@ -0,0 +1,12 @@ +import route from './adhoc.route'; +import adhocController from './adhoc.controller'; +import form from './adhoc.form'; + +export default angular.module('adhoc', ["ngRoute"]) + .controller('adhocController', adhocController) + .config(['$routeProvider', function($routeProvider) { + var url = route.route; + delete route.route; + $routeProvider.when(url, route); + }]) + .factory('adhocForm', form); diff --git a/awx/ui/static/js/app.js b/awx/ui/client/src/app.js similarity index 82% rename from awx/ui/static/js/app.js rename to awx/ui/client/src/app.js index 41f795e625..97abad5a7f 100644 --- a/awx/ui/static/js/app.js +++ b/awx/ui/client/src/app.js @@ -16,75 +16,85 @@ if ($basePath) { urlPrefix = $basePath; } -import 'tower/helpers'; -import 'tower/forms'; -import 'tower/lists'; -import 'tower/widgets'; -import 'tower/help'; -import 'tower/filters'; -import {Home, HomeGroups, HomeHosts} from 'tower/controllers/Home'; -import {SocketsController} from 'tower/controllers/Sockets'; -import {Authenticate} from 'tower/controllers/Authentication'; -import {CredentialsAdd, CredentialsEdit, CredentialsList} from 'tower/controllers/Credentials'; -import {JobsListController} from 'tower/controllers/Jobs'; -import {PortalController} from 'tower/controllers/Portal'; -import systemTracking from 'tower/system-tracking/main'; -import routeExtensions from 'tower/shared/route-extensions/main'; -import breadcrumbs from 'tower/shared/breadcrumbs/main'; +import './helpers'; +import './forms'; +import './lists'; +import './widgets'; +import './help'; +import './filters'; +import {Home, HomeGroups, HomeHosts} from './controllers/Home'; +import {SocketsController} from './controllers/Sockets'; +import {CredentialsAdd, CredentialsEdit, CredentialsList} from './controllers/Credentials'; +import {JobsListController} from './controllers/Jobs'; +import {PortalController} from './controllers/Portal'; +import systemTracking from './system-tracking/main'; +import inventoryScripts from './inventory-scripts/main'; +import permissions from './permissions/main'; +import managementJobs from './management-jobs/main'; +import routeExtensions from './shared/route-extensions/main'; +import breadcrumbs from './shared/breadcrumbs/main'; + // modules -import setupMenu from 'tower/setup-menu/main'; -import mainMenu from 'tower/main-menu/main'; -import browserData from 'tower/browser-data/main'; -import dashboard from 'tower/dashboard/main'; -import moment from 'tower/shared/moment/main'; +import setupMenu from './setup-menu/main'; +import mainMenu from './main-menu/main'; +import browserData from './browser-data/main'; +import dashboard from './dashboard/main'; +import moment from './shared/moment/main'; +import templateUrl from './shared/template-url/main'; +import adhoc from './adhoc/main'; +import login from './login/main'; +import {JobDetailController} from './controllers/JobDetail'; +import {JobStdoutController} from './controllers/JobStdout'; +import {JobTemplatesList, JobTemplatesAdd, JobTemplatesEdit} from './controllers/JobTemplates'; +import {LicenseController} from './controllers/License'; +import {ScheduleEditController} from './controllers/Schedules'; +import {ProjectsList, ProjectsAdd, ProjectsEdit} from './controllers/Projects'; +import {OrganizationsList, OrganizationsAdd, OrganizationsEdit} from './controllers/Organizations'; +import {InventoriesList, InventoriesAdd, InventoriesEdit, InventoriesManage} from './controllers/Inventories'; +import {AdminsList} from './controllers/Admins'; +import {UsersList, UsersAdd, UsersEdit} from './controllers/Users'; +import {TeamsList, TeamsAdd, TeamsEdit} from './controllers/Teams'; -import {JobDetailController} from 'tower/controllers/JobDetail'; -import {JobStdoutController} from 'tower/controllers/JobStdout'; -import {JobTemplatesList, JobTemplatesAdd, JobTemplatesEdit} from 'tower/controllers/JobTemplates'; -import {LicenseController} from 'tower/controllers/License'; -import {ScheduleEditController} from 'tower/controllers/Schedules'; -import {ProjectsList, ProjectsAdd, ProjectsEdit} from 'tower/controllers/Projects'; -import {OrganizationsList, OrganizationsAdd, OrganizationsEdit} from 'tower/controllers/Organizations'; -import {InventoriesList, InventoriesAdd, InventoriesEdit, InventoriesManage} from 'tower/controllers/Inventories'; -import {AdhocCtrl} from 'tower/controllers/Adhoc'; -import {AdminsList} from 'tower/controllers/Admins'; -import {UsersList, UsersAdd, UsersEdit} from 'tower/controllers/Users'; -import {TeamsList, TeamsAdd, TeamsEdit} from 'tower/controllers/Teams'; -import {PermissionsAdd, PermissionsList, PermissionsEdit} from 'tower/controllers/Permissions'; -import 'tower/shared/RestServices'; -import 'tower/shared/api-loader'; -import 'tower/shared/form-generator'; -import 'tower/shared/Modal'; -import 'tower/shared/prompt-dialog'; -import 'tower/shared/directives'; -import 'tower/shared/filters'; -import 'tower/shared/InventoryTree'; -import 'tower/shared/Timer'; -import 'tower/shared/Socket'; +import RestServices from './rest/main'; +import './shared/api-loader'; +import './shared/form-generator'; +import './shared/Modal'; +import './shared/prompt-dialog'; +import './shared/directives'; +import './shared/filters'; +import './shared/InventoryTree'; +import './shared/Socket'; +import './job-templates/main'; +import './shared/features/main'; -import 'tower/job-templates/main'; -import 'tower/shared/features/main'; /*#if DEBUG#*/ -import {__deferLoadIfEnabled} from 'tower/debug'; +import {__deferLoadIfEnabled} from './debug'; __deferLoadIfEnabled(); /*#endif#*/ var tower = angular.module('Tower', [ + 'pendolytics', 'ngRoute', 'ngSanitize', 'ngCookies', - 'RestServices', + RestServices.name, routeExtensions.name, browserData.name, breadcrumbs.name, systemTracking.name, + inventoryScripts.name, + permissions.name, + managementJobs.name, setupMenu.name, mainMenu.name, dashboard.name, moment.name, - 'AuthService', + templateUrl.name, + adhoc.name, + login.name, + 'templates', 'Utilities', 'LicenseHelper', 'OrganizationFormDefinition', @@ -101,9 +111,7 @@ var tower = angular.module('Tower', [ 'PaginationHelpers', 'RefreshHelper', 'AdminListDefinition', - 'CustomInventoryListDefinition', 'AWDirectives', - 'AdhocFormDefinition', 'InventoriesListDefinition', 'InventoryFormDefinition', 'InventoryHelper', @@ -132,9 +140,6 @@ var tower = angular.module('Tower', [ 'ProjectFormDefinition', 'ProjectStatusDefinition', 'ProjectsHelper', - 'PermissionFormDefinition', - 'PermissionListDefinition', - 'PermissionsHelper', 'CompletedJobsDefinition', 'AllJobsDefinition', 'JobFormDefinition', @@ -143,7 +148,6 @@ var tower = angular.module('Tower', [ 'ChildrenHelper', 'ProjectPathHelper', 'md5Helper', - 'AccessHelper', 'SelectionHelper', 'HostGroupsFormDefinition', 'PortalJobsWidget', @@ -152,7 +156,6 @@ var tower = angular.module('Tower', [ 'InventoryGroupsHelpDefinition', 'InventoryTree', 'CredentialsHelper', - 'TimerService', 'StreamListDefinition', 'HomeGroupListDefinition', 'HomeHostListDefinition', @@ -169,20 +172,13 @@ var tower = angular.module('Tower', [ 'LogViewerOptionsDefinition', 'EventViewerHelper', 'HostEventsViewerHelper', - 'SurveyHelper', 'JobDetailHelper', 'SocketIO', 'lrInfiniteScroll', 'LoadConfigHelper', 'SocketHelper', 'AboutAnsibleHelpModal', - 'SurveyQuestionFormDefinition', 'PortalJobsListDefinition', - 'ConfigureTowerHelper', - 'ConfigureTowerJobsListDefinition', - 'CreateCustomInventoryHelper', - 'CustomInventoryListDefinition', - 'AdhocHelper', 'features', 'longDateFilter' ]) @@ -191,6 +187,9 @@ var tower = angular.module('Tower', [ .constant('AngularScheduler.useTimezone', true) .constant('AngularScheduler.showUTCField', true) .constant('$timezones.definitions.location', urlPrefix + 'lib/angular-tz-extensions/tz/data') + .config(['$pendolyticsProvider', function($pendolyticsProvider) { + $pendolyticsProvider.doNotAutoStart(); + }]) .config(['$routeProvider', function ($routeProvider) { $routeProvider. @@ -466,17 +465,6 @@ var tower = angular.module('Tower', [ } }). - when('/inventories/:inventory_id/adhoc', { - name: 'inventoryAdhoc', - templateUrl: urlPrefix + 'partials/adhoc.html', - controller: AdhocCtrl, - resolve: { - features: ['FeaturesService', function(FeaturesService) { - return FeaturesService.get(); - }] - } - }). - when('/organizations', { name: 'organizations', templateUrl: urlPrefix + 'partials/organizations.html', @@ -587,39 +575,6 @@ var tower = angular.module('Tower', [ } }). - when('/teams/:team_id/permissions/add', { - name: 'teamPermissionAdd', - templateUrl: urlPrefix + 'partials/teams.html', - controller: PermissionsAdd, - resolve: { - features: ['FeaturesService', function(FeaturesService) { - return FeaturesService.get(); - }] - } - }). - - when('/teams/:team_id/permissions', { - name: 'teamPermissions', - templateUrl: urlPrefix + 'partials/teams.html', - controller: PermissionsList, - resolve: { - features: ['FeaturesService', function(FeaturesService) { - return FeaturesService.get(); - }] - } - }). - - when('/teams/:team_id/permissions/:permission_id', { - name: 'teamPermissionEdit', - templateUrl: urlPrefix + 'partials/teams.html', - controller: PermissionsEdit, - resolve: { - features: ['FeaturesService', function(FeaturesService) { - return FeaturesService.get(); - }] - } - }). - when('/teams/:team_id/users', { name: 'teamUsers', templateUrl: urlPrefix + 'partials/teams.html', @@ -785,39 +740,6 @@ var tower = angular.module('Tower', [ } }). - when('/users/:user_id/permissions/add', { - name: 'userPermissionAdd', - templateUrl: urlPrefix + 'partials/users.html', - controller: PermissionsAdd, - resolve: { - features: ['FeaturesService', function(FeaturesService) { - return FeaturesService.get(); - }] - } - }). - - when('/users/:user_id/permissions', { - name: 'userPermissions', - templateUrl: urlPrefix + 'partials/users.html', - controller: PermissionsList, - resolve: { - features: ['FeaturesService', function(FeaturesService) { - return FeaturesService.get(); - }] - } - }). - - when('/users/:user_id/permissions/:permission_id', { - name: 'userPermissionEdit', - templateUrl: urlPrefix + 'partials/users.html', - controller: PermissionsEdit, - resolve: { - features: ['FeaturesService', function(FeaturesService) { - return FeaturesService.get(); - }] - } - }). - when('/users/:user_id/credentials/add', { name: 'userCredentialAdd', templateUrl: urlPrefix + 'partials/teams.html', @@ -840,23 +762,6 @@ var tower = angular.module('Tower', [ } }). - when('/login', { - name: 'signIn', - templateUrl: urlPrefix + 'partials/blank.html', - controller: Authenticate - }). - - when('/logout', { - name: 'signOut', - templateUrl: urlPrefix + 'partials/blank.html', - controller: Authenticate, - resolve: { - features: ['FeaturesService', function(FeaturesService) { - return FeaturesService.get(); - }] - } - }). - when('/home', { name: 'dashboard', templateUrl: urlPrefix + 'partials/home.html', @@ -929,10 +834,10 @@ var tower = angular.module('Tower', [ }]); }]) - .run(['$compile', '$cookieStore', '$rootScope', '$log', 'CheckLicense', '$location', 'Authorization', 'LoadBasePaths', 'Timer', 'ClearScope', 'HideStream', 'Socket', - 'LoadConfig', 'Store', 'ShowSocketHelp', 'AboutAnsibleHelp', 'ConfigureTower', 'CreateCustomInventory', - function ($compile, $cookieStore, $rootScope, $log, CheckLicense, $location, Authorization, LoadBasePaths, Timer, ClearScope, HideStream, Socket, - LoadConfig, Store, ShowSocketHelp, AboutAnsibleHelp, ConfigureTower, CreateCustomInventory) { + .run(['$q', '$compile', '$cookieStore', '$rootScope', '$log', 'CheckLicense', '$location', 'Authorization', 'LoadBasePaths', 'Timer', 'ClearScope', 'HideStream', 'Socket', + 'LoadConfig', 'Store', 'ShowSocketHelp', 'AboutAnsibleHelp', 'pendoService', + function ($q, $compile, $cookieStore, $rootScope, $log, CheckLicense, $location, Authorization, LoadBasePaths, Timer, ClearScope, HideStream, Socket, + LoadConfig, Store, ShowSocketHelp, AboutAnsibleHelp, pendoService) { var sock; @@ -977,7 +882,6 @@ var tower = angular.module('Tower', [ $rootScope.breadcrumbs = []; $rootScope.crumbCache = []; - $rootScope.sessionTimer = Timer.init(); if ($rootScope.removeOpenSocket) { $rootScope.removeOpenSocket(); @@ -986,7 +890,7 @@ var tower = angular.module('Tower', [ // Listen for job changes and issue callbacks to initiate // DOM updates function openSocket() { - var schedule_socket; + var schedule_socket, control_socket; sock = Socket({ scope: $rootScope, endpoint: "jobs" }); sock.init(); @@ -1035,6 +939,17 @@ var tower = angular.module('Tower', [ $log.debug('Schedule ' + data.unified_job_id + ' status changed to ' + data.status); $rootScope.$emit('ScheduleStatusChange', data); }); + + control_socket = Socket({ + scope: $rootScope, + endpoint: "control" + }); + control_socket.init(); + control_socket.on("limit_reached", function(data) { + $log.debug(data.reason); + $rootScope.sessionTimer.expireSession('session_limit'); + $location.url('/login'); + }); } openSocket(); @@ -1048,8 +963,9 @@ var tower = angular.module('Tower', [ $rootScope.$on("$routeChangeStart", function (event, next, prev) { // this line removes the query params attached to a route - if(prev.$$route.name === 'systemTracking'){ - $location.replace($location.search('').$$url); + if(prev && prev.$$route && + prev.$$route.name === 'systemTracking'){ + $location.replace($location.search('').$$url); } // Before navigating away from current tab, make sure the primary view is visible @@ -1074,14 +990,14 @@ var tower = angular.module('Tower', [ } if (Authorization.isUserLoggedIn() === false) { - if (next.templateUrl !== (urlPrefix + 'partials/login.html')) { + if (next.templateUrl !== (urlPrefix + 'login/loginBackDrop.partial.html')) { $location.path('/login'); } - } else if ($rootScope.sessionTimer.isExpired()) { + } else if ($rootScope && $rootScope.sessionTimer && $rootScope.sessionTimer.isExpired()) { // gets here on timeout - if (next.templateUrl !== (urlPrefix + 'partials/login.html')) { - $rootScope.sessionTimer.expireSession(); - if (sock) { + if (next.templateUrl !== (urlPrefix + 'login/loginBackDrop.partial.html')) { + $rootScope.sessionTimer.expireSession('idle'); + if (sock&& sock.socket && sock.socket.socket) { sock.socket.socket.disconnect(); } $location.path('/login'); @@ -1107,8 +1023,12 @@ var tower = angular.module('Tower', [ // If browser refresh, set the user_is_superuser value $rootScope.user_is_superuser = Authorization.getUserInfo('is_superuser'); // when the user refreshes we want to open the socket, except if the user is on the login page, which should happen after the user logs in (see the AuthService module for that call to OpenSocket) - if($location.$$url !== '/login'){ - $rootScope.$emit('OpenSocket'); + if(!_.contains($location.$$url, '/login')){ + Timer.init().then(function(timer){ + $rootScope.sessionTimer = timer; + $rootScope.$emit('OpenSocket'); + pendoService.issuePendoIdentity(); + }); } } @@ -1139,25 +1059,12 @@ var tower = angular.module('Tower', [ $location.path('/home/'); }; - $rootScope.configureTower = function(){ - ConfigureTower({ - scope: $rootScope, - parent_scope: $rootScope - }); - }; - - $rootScope.createCustomInv = function(){ - CreateCustomInventory({ - parent_scope: $rootScope - }); - }; - }); // end of 'ConfigReady' if (!$AnsibleConfig) { - // there may be time lag when loading the config file, so temporarily use what's in local storage - $AnsibleConfig = Store('AnsibleConfig'); + // create a promise that will resolve when $AnsibleConfig is loaded + $rootScope.loginConfig = $q.defer(); } //the authorization controller redirects to the home page automatcially if there is no last path defined. in order to override diff --git a/awx/ui/static/js/browser-data/browser-data.factory.js b/awx/ui/client/src/browser-data/browser-data.factory.js similarity index 100% rename from awx/ui/static/js/browser-data/browser-data.factory.js rename to awx/ui/client/src/browser-data/browser-data.factory.js diff --git a/awx/ui/static/js/browser-data/main.js b/awx/ui/client/src/browser-data/main.js similarity index 100% rename from awx/ui/static/js/browser-data/main.js rename to awx/ui/client/src/browser-data/main.js diff --git a/awx/ui/static/js/browser-data/ng-app.directive.js b/awx/ui/client/src/browser-data/ng-app.directive.js similarity index 100% rename from awx/ui/static/js/browser-data/ng-app.directive.js rename to awx/ui/client/src/browser-data/ng-app.directive.js diff --git a/awx/ui/static/js/config.js b/awx/ui/client/src/config.js similarity index 87% rename from awx/ui/static/js/config.js rename to awx/ui/client/src/config.js index e8e036cee2..d420608c51 100644 --- a/awx/ui/static/js/config.js +++ b/awx/ui/client/src/config.js @@ -27,7 +27,8 @@ $.fn.systemTrackingDP = datepicker; return { - + // custom_logo: true // load /var/lib/awx/public/static/assets/custom_console_logo.png as the login modal header. if false, will load the standard tower console logo + // custom_login_info: "example notice" // have a notice displayed in the login modal for users. note that, as a security measure, custom html is not supported and will be escaped. tooltip_delay: {show: 500, hide: 100}, // Default number of milliseconds to delay displaying/hiding tooltips debug_mode: false, // Enable console logging messages @@ -39,10 +40,6 @@ password_hasSymbol: false, // require one of these symbols to be // in the password: -!$%^&*()_+|~=`{}[]:";'<>?,./ - session_timeout: 1800, // Number of seconds before an inactive session is automatically timed out and forced to log in again. - // Separate from time out value set in API. - - variable_edit_modes: { // Options we pass to ControlMirror for editing YAML/JSON variables yaml: { mode:"text/x-yaml", diff --git a/awx/ui/static/js/controllers/Admins.js b/awx/ui/client/src/controllers/Admins.js similarity index 100% rename from awx/ui/static/js/controllers/Admins.js rename to awx/ui/client/src/controllers/Admins.js diff --git a/awx/ui/static/js/controllers/Credentials.js b/awx/ui/client/src/controllers/Credentials.js similarity index 94% rename from awx/ui/static/js/controllers/Credentials.js rename to awx/ui/client/src/controllers/Credentials.js index cd792dda85..8655386e26 100644 --- a/awx/ui/static/js/controllers/Credentials.js +++ b/awx/ui/client/src/controllers/Credentials.js @@ -3,7 +3,7 @@ * * All Rights Reserved *************************************************/ - + /** * @ngdoc function * @name controllers.function:Credentials @@ -142,6 +142,8 @@ export function CredentialsAdd($scope, $rootScope, $compile, $location, $log, $r defaultUrl = GetBasePath('credentials'), url; + $scope.keyEntered = false; + generator.inject(form, { mode: 'add', related: false, scope: $scope }); generator.reset(); @@ -176,6 +178,7 @@ export function CredentialsAdd($scope, $rootScope, $compile, $location, $log, $r current_item: (!Empty($routeParams.team_id)) ? $routeParams.team_id : null, list: TeamList, field: 'team', + input_type: 'radio', autopopulateLookup: false }); @@ -213,6 +216,15 @@ export function CredentialsAdd($scope, $rootScope, $compile, $location, $log, $r OwnerChange({ scope: $scope }); } + $scope.$watch("ssh_key_data", function(val) { + if (val === "" || val === null || val === undefined) { + $scope.keyEntered = false; + $scope.ssh_key_unlock_ask = false; + $scope.ssh_key_unlock = ""; + } else { + $scope.keyEntered = true; + } + }); // Handle Kind change $scope.kindChange = function () { @@ -347,6 +359,7 @@ export function CredentialsEdit($scope, $rootScope, $compile, $location, $log, $ form: form, current_item: (!Empty($scope.team_id)) ? $scope.team_id : null, list: TeamList, + input_type: 'radio', field: 'team' }); @@ -357,6 +370,15 @@ export function CredentialsEdit($scope, $rootScope, $compile, $location, $log, $ reset: false }); OwnerChange({ scope: $scope }); + $scope.$watch("ssh_key_data", function(val) { + if (val === "" || val === null || val === undefined) { + $scope.keyEntered = false; + $scope.ssh_key_unlock_ask = false; + $scope.ssh_key_unlock = ""; + } else { + $scope.keyEntered = true; + } + }); Wait('stop'); }); @@ -400,8 +422,21 @@ export function CredentialsEdit($scope, $rootScope, $compile, $location, $log, $ break; } } + + if ($scope.become_method && $scope.become_method.value === "") { + $scope.become_method = null; + } master.become_method = $scope.become_method; + $scope.$watch('become_method', function(val) { + if (val !== null) { + if (val.value === "") { + $scope.become_username = ""; + $scope.become_password = ""; + } + } + }); + for (i = 0; i < $scope.credential_kind_options.length; i++) { if ($scope.credential_kind_options[i].value === data.kind) { $scope.kind = $scope.credential_kind_options[i]; diff --git a/awx/ui/static/js/controllers/Home.js b/awx/ui/client/src/controllers/Home.js similarity index 98% rename from awx/ui/static/js/controllers/Home.js rename to awx/ui/client/src/controllers/Home.js index 158f8910e9..c768be617c 100644 --- a/awx/ui/static/js/controllers/Home.js +++ b/awx/ui/client/src/controllers/Home.js @@ -29,6 +29,15 @@ export function Home($scope, $compile, $routeParams, $rootScope, $location, $log var dataCount = 0; $rootScope.$on('JobStatusChange-home', function () { + Rest.setUrl(GetBasePath('dashboard')); + Rest.get() + .success(function (data) { + $scope.dashboardData = data; + }) + .error(function (data, status) { + ProcessErrors($scope, data, status, null, { hdr: 'Error!', msg: 'Failed to get dashboard host graph data: ' + status }); + }); + Rest.setUrl(GetBasePath("jobs") + "?order_by=-finished&page_size=5&finished__isnull=false"); Rest.get() .success(function (data) { @@ -37,6 +46,7 @@ export function Home($scope, $compile, $routeParams, $rootScope, $location, $log .error(function (data, status) { ProcessErrors($scope, data, status, null, { hdr: 'Error!', msg: 'Failed to get dashboard jobs list: ' + status }); }); + Rest.setUrl(GetBasePath("job_templates") + "?order_by=-last_job_run&page_size=5&last_job_run__isnull=false"); Rest.get() .success(function (data) { @@ -45,6 +55,7 @@ export function Home($scope, $compile, $routeParams, $rootScope, $location, $log .error(function (data, status) { ProcessErrors($scope, data, status, null, { hdr: 'Error!', msg: 'Failed to get dashboard jobs list: ' + status }); }); + }); if ($scope.removeDashboardDataLoadComplete) { diff --git a/awx/ui/static/js/controllers/Inventories.js b/awx/ui/client/src/controllers/Inventories.js similarity index 99% rename from awx/ui/static/js/controllers/Inventories.js rename to awx/ui/client/src/controllers/Inventories.js index 43b01c62e2..187a99d10e 100644 --- a/awx/ui/static/js/controllers/Inventories.js +++ b/awx/ui/client/src/controllers/Inventories.js @@ -3,14 +3,14 @@ * * All Rights Reserved *************************************************/ - + /** * @ngdoc function * @name controllers.function:Inventories * @description This controller's for the Inventory page */ -import 'tower/job-templates/main'; +import '../job-templates/main'; export function InventoriesList($scope, $rootScope, $location, $log, $routeParams, $compile, $filter, sanitizeFilter, Rest, Alert, InventoryList, generateList, @@ -433,7 +433,7 @@ export function InventoriesAdd($scope, $rootScope, $compile, $location, $log, $r .success(function (data) { var inventory_id = data.id; Wait('stop'); - $location.path('/inventories/' + inventory_id + '/'); + $location.path('/inventories/' + inventory_id + '/manage'); }) .error(function (data, status) { ProcessErrors( $scope, data, status, form, { hdr: 'Error!', diff --git a/awx/ui/static/js/controllers/JobDetail.js b/awx/ui/client/src/controllers/JobDetail.js similarity index 95% rename from awx/ui/static/js/controllers/JobDetail.js rename to awx/ui/client/src/controllers/JobDetail.js index 169712ba8d..2aea1525d9 100644 --- a/awx/ui/static/js/controllers/JobDetail.js +++ b/awx/ui/client/src/controllers/JobDetail.js @@ -13,7 +13,7 @@ export function JobDetailController ($location, $rootScope, $filter, $scope, $compile, $routeParams, $log, ClearScope, Breadcrumbs, LoadBreadCrumbs, GetBasePath, Wait, Rest, ProcessErrors, SelectPlay, SelectTask, Socket, GetElapsed, DrawGraph, LoadHostSummary, ReloadHostSummaryList, JobIsFinished, SetTaskStyles, DigestEvent, - UpdateDOM, EventViewer, DeleteJob, PlaybookRun, HostEventsViewer, LoadPlays, LoadTasks, LoadHosts, HostsEdit, ParseVariableString, GetChoices) { + UpdateDOM, EventViewer, DeleteJob, PlaybookRun, HostEventsViewer, LoadPlays, LoadTasks, LoadHosts, HostsEdit, ParseVariableString, GetChoices, fieldChoices, fieldLabels) { ClearScope(); @@ -27,6 +27,36 @@ export function JobDetailController ($location, $rootScope, $filter, $scope, $co scope.plays = []; + scope.previousTaskFailed = false; + + scope.$watch('job_status', function(job_status) { + if (job_status && job_status.explanation && job_status.explanation.split(":")[0] === "Previous Task Failed") { + scope.previousTaskFailed = true; + var taskObj = JSON.parse(job_status.explanation.substring(job_status.explanation.split(":")[0].length + 1)); + // return a promise from the options request with the permission type choices (including adhoc) as a param + var fieldChoice = fieldChoices({ + scope: $scope, + url: 'api/v1/unified_jobs/', + field: 'type' + }); + + // manipulate the choices from the options request to be set on + // scope and be usable by the list form + fieldChoice.then(function (choices) { + choices = + fieldLabels({ + choices: choices + }); + scope.explanation_fail_type = choices[taskObj.job_type]; + scope.explanation_fail_name = taskObj.job_name; + scope.explanation_fail_id = taskObj.job_id; + scope.task_detail = scope.explanation_fail_type + " failed for " + scope.explanation_fail_name + " with ID " + scope.explanation_fail_id + "."; + }); + } else { + scope.previousTaskFailed = false; + } + }, true); + scope.$watch('plays', function(plays) { for (var play in plays) { if (plays[play].elapsed) { @@ -298,7 +328,7 @@ export function JobDetailController ($location, $rootScope, $filter, $scope, $co else { name = ""; } - scope.jobData.hostSummaries[name] = { + scope.jobData.hostSummaries[event.host] = { id: event.host, name: name, ok: event.ok, @@ -641,61 +671,6 @@ export function JobDetailController ($location, $rootScope, $filter, $scope, $co }); - if (scope.removeGetCredentialNames) { - scope.removeGetCredentialNames(); - } - scope.removeGetCredentialNames = scope.$on('GetCredentialNames', function(e, data) { - var url; - if (data.credential) { - url = GetBasePath('credentials') + data.credential + '/'; - Rest.setUrl(url); - Rest.get() - .success( function(data) { - scope.credential_name = data.name; - }) - .error( function(data, status) { - scope.credential_name = ''; - ProcessErrors(scope, data, status, null, { hdr: 'Error!', - msg: 'Call to ' + url + '. GET returned: ' + status }); - }); - } - if (data.cloud_credential) { - url = GetBasePath('credentials') + data.cloud_credential + '/'; - Rest.setUrl(url); - Rest.get() - .success( function(data) { - scope.cloud_credential_name = data.name; - }) - .error( function(data, status) { - scope.credential_name = ''; - ProcessErrors(scope, data, status, null, { hdr: 'Error!', - msg: 'Call to ' + url + '. GET returned: ' + status }); - }); - } - }); - - if (scope.removeGetCreatedByNames) { - scope.removeGetCreatedByNames(); - } - scope.removeGetCreatedByNames = scope.$on('GetCreatedByNames', function(e, data) { - var url; - data = data.slice(0, data.length-1); - data = data.slice(data.lastIndexOf('/')+1, data.length); - url = GetBasePath('users') + data + '/'; - scope.users_url = '/#/users/' + data; - Rest.setUrl(url); - Rest.get() - .success( function(data) { - scope.created_by = data.username; - }) - .error( function(data, status) { - scope.credential_name = ''; - ProcessErrors(scope, data, status, null, { hdr: 'Error!', - msg: 'Call to ' + url + '. GET returned: ' + status }); - }); - }); - - if (scope.removeLoadJob) { scope.removeLoadJob(); } @@ -730,6 +705,24 @@ export function JobDetailController ($location, $rootScope, $filter, $scope, $co scope.verbosity = data.verbosity; scope.job_tags = data.job_tags; scope.variables = ParseVariableString(data.extra_vars); + scope.users_url = (data.summary_fields.created_by) ? '/#/users/' + data.summary_fields.created_by.id : ''; + scope.created_by = (data.summary_fields.created_by) ? data.summary_fields.created_by.username : ''; + + if (data.summary_fields.credential) { + scope.credential_name = data.summary_fields.credential.name; + scope.credential_url = data.related.credential + .replace('api/v1', '#'); + } else { + scope.credential_name = ""; + } + + if (data.summary_fields.cloud_credential) { + scope.cloud_credential_name = data.summary_fields.cloud_credential.name; + scope.cloud_credential_url = data.related.cloud_credential + .replace('api/v1', '#'); + } else { + scope.cloud_credential_name = ""; + } for (i=0; i < verbosity_options.length; i++) { if (verbosity_options[i].value === data.verbosity) { @@ -784,10 +777,6 @@ export function JobDetailController ($location, $rootScope, $filter, $scope, $co }); //scope.setSearchAll('host'); scope.$emit('LoadPlays', data.related.job_events); - scope.$emit('GetCreatedByNames', data.related.created_by); - if (!scope.credential_name) { - scope.$emit('GetCredentialNames', data); - } }) .error(function(data, status) { ProcessErrors(scope, data, status, null, { hdr: 'Error!', @@ -1407,5 +1396,5 @@ export function JobDetailController ($location, $rootScope, $filter, $scope, $co JobDetailController.$inject = [ '$location', '$rootScope', '$filter', '$scope', '$compile', '$routeParams', '$log', 'ClearScope', 'Breadcrumbs', 'LoadBreadCrumbs', 'GetBasePath', 'Wait', 'Rest', 'ProcessErrors', 'SelectPlay', 'SelectTask', 'Socket', 'GetElapsed', 'DrawGraph', 'LoadHostSummary', 'ReloadHostSummaryList', 'JobIsFinished', 'SetTaskStyles', 'DigestEvent', 'UpdateDOM', 'EventViewer', 'DeleteJob', 'PlaybookRun', 'HostEventsViewer', 'LoadPlays', 'LoadTasks', - 'LoadHosts', 'HostsEdit', 'ParseVariableString', 'GetChoices' + 'LoadHosts', 'HostsEdit', 'ParseVariableString', 'GetChoices', 'fieldChoices', 'fieldLabels' ]; diff --git a/awx/ui/static/js/controllers/JobEvents.js b/awx/ui/client/src/controllers/JobEvents.js similarity index 100% rename from awx/ui/static/js/controllers/JobEvents.js rename to awx/ui/client/src/controllers/JobEvents.js diff --git a/awx/ui/static/js/controllers/JobHosts.js b/awx/ui/client/src/controllers/JobHosts.js similarity index 100% rename from awx/ui/static/js/controllers/JobHosts.js rename to awx/ui/client/src/controllers/JobHosts.js diff --git a/awx/ui/static/js/controllers/JobStdout.js b/awx/ui/client/src/controllers/JobStdout.js similarity index 96% rename from awx/ui/static/js/controllers/JobStdout.js rename to awx/ui/client/src/controllers/JobStdout.js index dee0dc1cce..3b07f31502 100644 --- a/awx/ui/static/js/controllers/JobStdout.js +++ b/awx/ui/client/src/controllers/JobStdout.js @@ -105,16 +105,14 @@ export function JobStdoutController ($location, $log, $rootScope, $scope, $compi api_complete = true; $('#pre-container-content').html(data.content); current_range = data.range; - loaded_sections.push({ - start: (data.range.start < 0) ? 0 : data.range.start, - end: data.range.end - }); - - //console.log('loaded start: ' + data.range.start + ' end: ' + data.range.end); - //console.log(data.content); + if (data.content !== "Waiting for results...") { + loaded_sections.push({ + start: (data.range.start < 0) ? 0 : data.range.start, + end: data.range.end + }); + } $('#pre-container').scrollTop($('#pre-container').prop("scrollHeight")); - //console.log($('#pre-container-content').prop("scrollHeight")); } else { api_complete = true; @@ -158,6 +156,8 @@ export function JobStdoutController ($location, $log, $rootScope, $scope, $compi } }; + $(".StandardOut").height($("body").height() - 60); + // Note: could be ad_hoc_commands or jobs var jobType = $location.path().replace(/^\//, '').split('/')[0]; Rest.setUrl(GetBasePath(jobType) + job_id + '/'); diff --git a/awx/ui/static/js/controllers/JobTemplates.js b/awx/ui/client/src/controllers/JobTemplates.js similarity index 98% rename from awx/ui/static/js/controllers/JobTemplates.js rename to awx/ui/client/src/controllers/JobTemplates.js index c83654aa71..f1dc484dbd 100644 --- a/awx/ui/static/js/controllers/JobTemplates.js +++ b/awx/ui/client/src/controllers/JobTemplates.js @@ -144,7 +144,7 @@ export function JobTemplatesList($scope, $rootScope, $location, $log, $routePara CreateDialog({ - id: 'copy-job-modal' , + id: 'copy-job-modal', title: "Copy", scope: $scope, buttons: buttons, @@ -274,7 +274,7 @@ export function JobTemplatesAdd($filter, $scope, $rootScope, $compile, $location ParseTypeChange({ scope: $scope, field_id: 'job_templates_variables', onChange: callback }); $scope.playbook_options = []; - $scope.allow_callbacks = 'false'; + $scope.allow_callbacks = false; generator.reset(); LoadBreadCrumbs(); @@ -478,13 +478,21 @@ export function JobTemplatesAdd($filter, $scope, $rootScope, $compile, $location } }; + + // $scope.selectPlaybookUnregister = $scope.$watch('project_name', function (newval, oldval) { + // selectPlaybook(oldval, newval); + // checkSCMStatus(oldval, newval); + // }); + // Register a watcher on project_name if ($scope.selectPlaybookUnregister) { $scope.selectPlaybookUnregister(); } - $scope.selectPlaybookUnregister = $scope.$watch('project_name', function (newval, oldval) { - selectPlaybook(oldval, newval); - checkSCMStatus(oldval, newval); + $scope.selectPlaybookUnregister = $scope.$watch('project', function (newValue, oldValue) { + if (newValue !== oldValue) { + selectPlaybook(oldValue, newValue); + checkSCMStatus(); + } }); LookUpInit({ @@ -654,7 +662,7 @@ export function JobTemplatesAdd($filter, $scope, $rootScope, $compile, $location JobTemplatesAdd.$inject = ['$filter', '$scope', '$rootScope', '$compile', '$location', '$log', '$routeParams', 'JobTemplateForm', 'GenerateForm', 'Rest', 'Alert', 'ProcessErrors', 'LoadBreadCrumbs', 'ReturnToCaller', 'ClearScope', 'GetBasePath', 'InventoryList', 'CredentialList', 'ProjectList', 'LookUpInit', - 'md5Setup', 'ParseTypeChange', 'Wait', 'Empty', 'ToJSON', 'CallbackHelpInit', 'SurveyControllerInit', 'Prompt', 'GetChoices' + 'md5Setup', 'ParseTypeChange', 'Wait', 'Empty', 'ToJSON', 'CallbackHelpInit', 'initSurvey', 'Prompt', 'GetChoices' ]; @@ -816,9 +824,6 @@ export function JobTemplatesEdit($filter, $scope, $rootScope, $compile, $locatio } $scope.watchProjectUnregister = $scope.$watch('project', function (newValue, oldValue) { if (newValue !== oldValue) { - if (!Empty(oldValue)) { - $scope.playbook = null; - } getPlaybooks($scope.project); checkSCMStatus(); } @@ -1231,5 +1236,5 @@ JobTemplatesEdit.$inject = ['$filter', '$scope', '$rootScope', '$compile', '$loc 'ReturnToCaller', 'ClearScope', 'InventoryList', 'CredentialList', 'ProjectList', 'LookUpInit', 'GetBasePath', 'md5Setup', 'ParseTypeChange', 'JobStatusToolTip', 'FormatDate', 'Wait', 'Stream', 'Empty', 'Prompt', 'ParseVariableString', 'ToJSON', 'SchedulesControllerInit', 'JobsControllerInit', 'JobsListUpdate', 'GetChoices', - 'SchedulesListInit', 'SchedulesList', 'CallbackHelpInit', 'PlaybookRun' , 'SurveyControllerInit' + 'SchedulesListInit', 'SchedulesList', 'CallbackHelpInit', 'PlaybookRun' , 'initSurvey' ]; diff --git a/awx/ui/static/js/controllers/Jobs.js b/awx/ui/client/src/controllers/Jobs.js similarity index 100% rename from awx/ui/static/js/controllers/Jobs.js rename to awx/ui/client/src/controllers/Jobs.js diff --git a/awx/ui/static/js/controllers/License.js b/awx/ui/client/src/controllers/License.js similarity index 100% rename from awx/ui/static/js/controllers/License.js rename to awx/ui/client/src/controllers/License.js diff --git a/awx/ui/static/js/controllers/Organizations.js b/awx/ui/client/src/controllers/Organizations.js similarity index 100% rename from awx/ui/static/js/controllers/Organizations.js rename to awx/ui/client/src/controllers/Organizations.js diff --git a/awx/ui/static/js/controllers/Portal.js b/awx/ui/client/src/controllers/Portal.js similarity index 100% rename from awx/ui/static/js/controllers/Portal.js rename to awx/ui/client/src/controllers/Portal.js diff --git a/awx/ui/static/js/controllers/Projects.js b/awx/ui/client/src/controllers/Projects.js similarity index 94% rename from awx/ui/static/js/controllers/Projects.js rename to awx/ui/client/src/controllers/Projects.js index 281d6bb0ad..4083dbe2d4 100644 --- a/awx/ui/static/js/controllers/Projects.js +++ b/awx/ui/client/src/controllers/Projects.js @@ -13,7 +13,7 @@ export function ProjectsList ($scope, $rootScope, $location, $log, $routeParams, Rest, Alert, ProjectList, GenerateList, LoadBreadCrumbs, Prompt, SearchInit, PaginateInit, ReturnToCaller, ClearScope, ProcessErrors, GetBasePath, SelectionInit, ProjectUpdate, - Refresh, Wait, Stream, GetChoices, Empty, Find, LogViewer, GetProjectIcon, GetProjectToolTip) { + Refresh, Wait, Stream, GetChoices, Empty, Find, LogViewer, GetProjectIcon, GetProjectToolTip, $filter) { ClearScope(); @@ -309,29 +309,37 @@ export function ProjectsList ($scope, $rootScope, $location, $log, $routeParams, }); $scope.cancelUpdate = function (id, name) { - // Start the cancel process - var i, project, found = false; - for (i = 0; i < $scope.projects.length; i++) { - if ($scope.projects[i].id === id) { - project = $scope.projects[i]; - found = true; - break; - } - } - if (found && project.related.current_update) { - Rest.setUrl(project.related.current_update); - Rest.get() - .success(function (data) { - $scope.$emit('Check_Cancel', data); - }) - .error(function (data, status) { - ProcessErrors($scope, data, status, null, { hdr: 'Error!', - msg: 'Call to ' + project.related.current_update + ' failed. GET status: ' + status }); - }); - } else { - Alert('Update Not Found', 'An SCM update does not appear to be running for project: ' + name + '. Click the Refresh ' + - 'button to view the latet status.', 'alert-info'); - } + // // Start the cancel process + // var i, project, found = false; + // for (i = 0; i < $scope.projects.length; i++) { + // if ($scope.projects[i].id === id) { + // project = $scope.projects[i]; + // found = true; + // break; + // } + // } + Rest.setUrl(GetBasePath("projects") + id); + Rest.get() + .success(function (data) { + if (data.related.current_update) { + Rest.setUrl(data.related.current_update); + Rest.get() + .success(function (data) { + $scope.$emit('Check_Cancel', data); + }) + .error(function (data, status) { + ProcessErrors($scope, data, status, null, { hdr: 'Error!', + msg: 'Call to ' + data.related.current_update + ' failed. GET status: ' + status }); + }); + } else { + Alert('Update Not Found', 'An SCM update does not appear to be running for project: ' + $filter('sanitize')(name) + '. Click the Refresh ' + + 'button to view the latest status.', 'alert-info',undefined,undefined,undefined,undefined,true); + } + }) + .error(function (data, status) { + ProcessErrors($scope, data, status, null, { hdr: 'Error!', + msg: 'Call to get project failed. GET status: ' + status }); + }) }; $scope.refresh = function () { @@ -384,7 +392,7 @@ export function ProjectsList ($scope, $rootScope, $location, $log, $routeParams, ProjectsList.$inject = ['$scope', '$rootScope', '$location', '$log', '$routeParams', 'Rest', 'Alert', 'ProjectList', 'generateList', 'LoadBreadCrumbs', 'Prompt', 'SearchInit', 'PaginateInit', 'ReturnToCaller', 'ClearScope', 'ProcessErrors', 'GetBasePath', 'SelectionInit', 'ProjectUpdate', 'Refresh', 'Wait', 'Stream', 'GetChoices', 'Empty', 'Find', - 'LogViewer', 'GetProjectIcon', 'GetProjectToolTip' + 'LogViewer', 'GetProjectIcon', 'GetProjectToolTip', '$filter' ]; diff --git a/awx/ui/static/js/controllers/Schedules.js b/awx/ui/client/src/controllers/Schedules.js similarity index 100% rename from awx/ui/static/js/controllers/Schedules.js rename to awx/ui/client/src/controllers/Schedules.js diff --git a/awx/ui/static/js/controllers/Sockets.js b/awx/ui/client/src/controllers/Sockets.js similarity index 100% rename from awx/ui/static/js/controllers/Sockets.js rename to awx/ui/client/src/controllers/Sockets.js diff --git a/awx/ui/static/js/controllers/Teams.js b/awx/ui/client/src/controllers/Teams.js similarity index 71% rename from awx/ui/static/js/controllers/Teams.js rename to awx/ui/client/src/controllers/Teams.js index cd60103dbe..2eb49e7ac2 100644 --- a/awx/ui/static/js/controllers/Teams.js +++ b/awx/ui/client/src/controllers/Teams.js @@ -3,7 +3,7 @@ * * All Rights Reserved *************************************************/ - + /** * @ngdoc function * @name controllers.function:Teams @@ -176,7 +176,7 @@ TeamsAdd.$inject = ['$scope', '$rootScope', '$compile', '$location', '$log', '$r export function TeamsEdit($scope, $rootScope, $compile, $location, $log, $routeParams, TeamForm, GenerateForm, Rest, Alert, ProcessErrors, LoadBreadCrumbs, RelatedSearchInit, RelatedPaginateInit, ReturnToCaller, ClearScope, LookUpInit, Prompt, GetBasePath, CheckAccess, - OrganizationList, Wait, Stream) { + OrganizationList, Wait, Stream, fieldChoices, fieldLabels, permissionsSearchSelect) { ClearScope(); @@ -188,94 +188,122 @@ export function TeamsEdit($scope, $rootScope, $compile, $location, $log, $routeP id = $routeParams.team_id, relatedSets = {}; - $scope.team_id = id; + $scope.permission_label = {}; + $scope.permission_search_select = []; - generator.inject(form, { mode: 'edit', related: true, scope: $scope }); - generator.reset(); + // return a promise from the options request with the permission type choices (including adhoc) as a param + var permissionsChoice = fieldChoices({ + scope: $scope, + url: 'api/v1/' + base + '/' + id + '/permissions/', + field: 'permission_type' + }); + + // manipulate the choices from the options request to be set on + // scope and be usable by the list form + permissionsChoice.then(function (choices) { + choices = + fieldLabels({ + choices: choices + }); + _.map(choices, function(n, key) { + $scope.permission_label[key] = n; + }); + }); + + // manipulate the choices from the options request to be usable + // by the search option for permission_type, you can't inject the + // list until this is done! + permissionsChoice.then(function (choices) { + form.related.permissions.fields.permission_type.searchOptions = + permissionsSearchSelect({ + choices: choices + }); + generator.inject(form, { mode: 'edit', related: true, scope: $scope }); + generator.reset(); + $scope.$emit('loadTeam'); + }); + + $scope.team_id = id; $scope.PermissionAddAllowed = false; // Retrieve each related set and any lookups - if ($scope.teamLoadedRemove) { - $scope.teamLoadedRemove(); + if ($scope.loadTeamRemove) { + $scope.loadTeamRemove(); } - $scope.teamLoadedRemove = $scope.$on('teamLoaded', function () { - CheckAccess({ scope: $scope }); - if ($scope.organization_url) { - Rest.setUrl($scope.organization_url); - Rest.get() - .success(function (data) { - $scope.organization_name = data.name; - master.organization_name = data.name; - Wait('stop'); - }) - .error(function (data, status) { - ProcessErrors($scope, data, status, null, { hdr: 'Error!', msg: 'Failed to retrieve organization: ' + - $scope.orgnization_url + '. GET status: ' + status }); - }); - for (var set in relatedSets) { - $scope.search(relatedSets[set].iterator); + $scope.loadTeamRemove = $scope.$on('loadTeam', function () { + // Retrieve detail record and prepopulate the form + Wait('start'); + Rest.setUrl(defaultUrl + ':id/'); + Rest.get({ + params: { + id: id } - } else { - $scope.organization_name = ""; - master.organization_name = ""; - Wait('stop'); - } + }) + .success(function (data) { + var fld, related, set; + $scope.team_name = data.name; + for (fld in form.fields) { + if (data[fld]) { + $scope[fld] = data[fld]; + master[fld] = $scope[fld]; + } + } + related = data.related; + for (set in form.related) { + if (related[set]) { + relatedSets[set] = { + url: related[set], + iterator: form.related[set].iterator + }; + } + } + // Initialize related search functions. Doing it here to make sure relatedSets object is populated. + RelatedSearchInit({ + scope: $scope, + form: form, + relatedSets: relatedSets + }); + RelatedPaginateInit({ + scope: $scope, + relatedSets: relatedSets + }); + + LookUpInit({ + scope: $scope, + form: form, + current_item: data.organization, + list: OrganizationList, + field: 'organization', + input_type: 'radio' + }); + + $scope.organization_url = data.related.organization; + $scope.organization_name = data.summary_fields.organization.name; + master.organization_name = data.summary_fields.organization.name; + + // get related object values and populate + for (var relatedValues in relatedSets) { + $scope.search(relatedSets[relatedValues].iterator); + } + CheckAccess({ scope: $scope }); //Does the user have access to add/edit Permissions? + Wait('stop'); + }) + .error(function (data, status) { + ProcessErrors($scope, data, status, form, { hdr: 'Error!', msg: 'Failed to retrieve team: ' + $routeParams.team_id + + '. GET status: ' + status }); + Wait('stop'); + }); }); - // Retrieve detail record and prepopulate the form - Wait('start'); - Rest.setUrl(defaultUrl + ':id/'); - Rest.get({ - params: { - id: id + $scope.getPermissionText = function () { + if (this.permission.permission_type !== "admin" && this.permission.run_ad_hoc_commands) { + return $scope.permission_label[this.permission.permission_type] + + " and " + $scope.permission_label.adhoc; + } else { + return $scope.permission_label[this.permission.permission_type]; } - }) - .success(function (data) { - var fld, related, set; - $scope.team_name = data.name; - for (fld in form.fields) { - if (data[fld]) { - $scope[fld] = data[fld]; - master[fld] = $scope[fld]; - } - } - related = data.related; - for (set in form.related) { - if (related[set]) { - relatedSets[set] = { - url: related[set], - iterator: form.related[set].iterator - }; - } - } - // Initialize related search functions. Doing it here to make sure relatedSets object is populated. - RelatedSearchInit({ - scope: $scope, - form: form, - relatedSets: relatedSets - }); - RelatedPaginateInit({ - scope: $scope, - relatedSets: relatedSets - }); - - LookUpInit({ - scope: $scope, - form: form, - current_item: data.organization, - list: OrganizationList, - field: 'organization', - input_type: 'radio' - }); - - $scope.organization_url = data.related.organization; - $scope.$emit('teamLoaded'); - }) - .error(function (data, status) { - ProcessErrors($scope, data, status, form, { hdr: 'Error!', msg: 'Failed to retrieve team: ' + $routeParams.team_id + - '. GET status: ' + status }); - }); + }; $scope.showActivity = function () { Stream({ scope: $scope }); @@ -392,5 +420,5 @@ export function TeamsEdit($scope, $rootScope, $compile, $location, $log, $routeP TeamsEdit.$inject = ['$scope', '$rootScope', '$compile', '$location', '$log', '$routeParams', 'TeamForm', 'GenerateForm', 'Rest', 'Alert', 'ProcessErrors', 'LoadBreadCrumbs', 'RelatedSearchInit', 'RelatedPaginateInit', - 'ReturnToCaller', 'ClearScope', 'LookUpInit', 'Prompt', 'GetBasePath', 'CheckAccess', 'OrganizationList', 'Wait', 'Stream' + 'ReturnToCaller', 'ClearScope', 'LookUpInit', 'Prompt', 'GetBasePath', 'CheckAccess', 'OrganizationList', 'Wait', 'Stream', 'fieldChoices', 'fieldLabels', 'permissionsSearchSelect' ]; diff --git a/awx/ui/static/js/controllers/Users.js b/awx/ui/client/src/controllers/Users.js similarity index 83% rename from awx/ui/static/js/controllers/Users.js rename to awx/ui/client/src/controllers/Users.js index b2b9794378..6c2aa2bd1a 100644 --- a/awx/ui/static/js/controllers/Users.js +++ b/awx/ui/client/src/controllers/Users.js @@ -119,6 +119,7 @@ export function UsersAdd($scope, $rootScope, $compile, $location, $log, $routePa $scope.ldap_user = false; $scope.not_ldap_user = !$scope.ldap_user; $scope.ldap_dn = null; + $scope.socialAuthUser = false; generator.reset(); @@ -208,7 +209,7 @@ UsersAdd.$inject = ['$scope', '$rootScope', '$compile', '$location', '$log', '$r export function UsersEdit($scope, $rootScope, $compile, $location, $log, $routeParams, UserForm, GenerateForm, Rest, Alert, ProcessErrors, LoadBreadCrumbs, RelatedSearchInit, RelatedPaginateInit, ReturnToCaller, ClearScope, GetBasePath, - Prompt, CheckAccess, ResetForm, Wait, Stream) { + Prompt, CheckAccess, ResetForm, Wait, Stream, fieldChoices, fieldLabels, permissionsSearchSelect) { ClearScope(); @@ -220,13 +221,45 @@ export function UsersEdit($scope, $rootScope, $compile, $location, $log, $routeP id = $routeParams.user_id, relatedSets = {}; + $scope.permission_label = {}; + $scope.permission_search_select = []; + + // return a promise from the options request with the permission type choices (including adhoc) as a param + var permissionsChoice = fieldChoices({ + scope: $scope, + url: 'api/v1/' + base + '/' + id + '/permissions/', + field: 'permission_type' + }); + + // manipulate the choices from the options request to be set on + // scope and be usable by the list form + permissionsChoice.then(function (choices) { + choices = + fieldLabels({ + choices: choices + }); + _.map(choices, function(n, key) { + $scope.permission_label[key] = n; + }); + }); + + // manipulate the choices from the options request to be usable + // by the search option for permission_type, you can't inject the + // list until this is done! + permissionsChoice.then(function (choices) { + form.related.permissions.fields.permission_type.searchOptions = + permissionsSearchSelect({ + choices: choices + }); + generator.inject(form, { mode: 'edit', related: true, scope: $scope }); + generator.reset(); + $scope.$emit("loadForm"); + }); + if ($scope.removeFormReady) { $scope.removeFormReady(); } $scope.removeFormReady = $scope.$on('formReady', function () { - generator.inject(form, { mode: 'edit', related: true, scope: $scope }); - generator.reset(); - if ($scope.removePostRefresh) { $scope.removePostRefresh(); } @@ -275,6 +308,7 @@ export function UsersEdit($scope, $rootScope, $compile, $location, $log, $routeP $scope.ldap_user = (data.ldap_dn !== null && data.ldap_dn !== undefined && data.ldap_dn !== '') ? true : false; $scope.not_ldap_user = !$scope.ldap_user; master.ldap_user = $scope.ldap_user; + $scope.socialAuthUser = (data.auth.length > 0) ? true : false; // Initialize related search functions. Doing it here to make sure relatedSets object is populated. RelatedSearchInit({ @@ -293,12 +327,12 @@ export function UsersEdit($scope, $rootScope, $compile, $location, $log, $routeP $routeParams.id + '. GET status: ' + status }); }); - // if the permission includes adhoc (and is not admin), display that $scope.getPermissionText = function () { if (this.permission.permission_type !== "admin" && this.permission.run_ad_hoc_commands) { - return this.permission.permission_type + " + run commands"; + return $scope.permission_label[this.permission.permission_type] + + " and " + $scope.permission_label.adhoc; } else { - return this.permission.permission_type; + return $scope.permission_label[this.permission.permission_type]; } }; @@ -440,54 +474,60 @@ export function UsersEdit($scope, $rootScope, $compile, $location, $log, $routeP // Put form back to its original state ResetForm(); - - if ($scope.removeModifyForm) { - $scope.removeModifyForm(); + if ($scope.removeLoadForm) { + $scope.removeLoadForm(); } - $scope.removeModifyForm = $scope.$on('modifyForm', function () { - // Modify form based on LDAP settings - Rest.setUrl(GetBasePath('config')); - Rest.get() - .success(function (data) { - var i, fld; - if (data.user_ldap_fields) { - for (i = 0; i < data.user_ldap_fields.length; i++) { - fld = data.user_ldap_fields[i]; - if (form.fields[fld]) { - form.fields[fld].readonly = true; - form.fields[fld].editRequired = false; - if (form.fields[fld].awRequiredWhen) { - delete form.fields[fld].awRequiredWhen; + $scope.removeLoadForm = $scope.$on('loadForm', function () { + + + if ($scope.removeModifyForm) { + $scope.removeModifyForm(); + } + $scope.removeModifyForm = $scope.$on('modifyForm', function () { + // Modify form based on LDAP settings + Rest.setUrl(GetBasePath('config')); + Rest.get() + .success(function (data) { + var i, fld; + if (data.user_ldap_fields) { + for (i = 0; i < data.user_ldap_fields.length; i++) { + fld = data.user_ldap_fields[i]; + if (form.fields[fld]) { + form.fields[fld].readonly = true; + form.fields[fld].editRequired = false; + if (form.fields[fld].awRequiredWhen) { + delete form.fields[fld].awRequiredWhen; + } } } } + $scope.$emit('formReady'); + }) + .error(function (data, status) { + ProcessErrors($scope, data, status, null, { hdr: 'Error!', + msg: 'Failed to retrieve application config. GET status: ' + status }); + }); + }); + + Wait('start'); + Rest.setUrl(defaultUrl + id + '/'); + Rest.get() + .success(function (data) { + if (data.ldap_dn !== null && data.ldap_dn !== undefined && data.ldap_dn !== '') { + //this is an LDAP user + $scope.$emit('modifyForm'); + } else { + $scope.$emit('formReady'); } - $scope.$emit('formReady'); }) .error(function (data, status) { ProcessErrors($scope, data, status, null, { hdr: 'Error!', - msg: 'Failed to retrieve application config. GET status: ' + status }); + msg: 'Failed to retrieve user: ' + id + '. GET status: ' + status }); }); }); - - Wait('start'); - Rest.setUrl(defaultUrl + id + '/'); - Rest.get() - .success(function (data) { - if (data.ldap_dn !== null && data.ldap_dn !== undefined && data.ldap_dn !== '') { - //this is an LDAP user - $scope.$emit('modifyForm'); - } else { - $scope.$emit('formReady'); - } - }) - .error(function (data, status) { - ProcessErrors($scope, data, status, null, { hdr: 'Error!', - msg: 'Failed to retrieve user: ' + id + '. GET status: ' + status }); - }); } UsersEdit.$inject = ['$scope', '$rootScope', '$compile', '$location', '$log', '$routeParams', 'UserForm', 'GenerateForm', 'Rest', 'Alert', 'ProcessErrors', 'LoadBreadCrumbs', 'RelatedSearchInit', 'RelatedPaginateInit', 'ReturnToCaller', 'ClearScope', - 'GetBasePath', 'Prompt', 'CheckAccess', 'ResetForm', 'Wait', 'Stream' + 'GetBasePath', 'Prompt', 'CheckAccess', 'ResetForm', 'Wait', 'Stream', 'fieldChoices', 'fieldLabels', 'permissionsSearchSelect' ]; diff --git a/awx/ui/static/js/dashboard/counts/dashboard-counts.block.less b/awx/ui/client/src/dashboard/counts/dashboard-counts.block.less similarity index 100% rename from awx/ui/static/js/dashboard/counts/dashboard-counts.block.less rename to awx/ui/client/src/dashboard/counts/dashboard-counts.block.less diff --git a/awx/ui/static/js/dashboard/counts/dashboard-counts.directive.js b/awx/ui/client/src/dashboard/counts/dashboard-counts.directive.js similarity index 95% rename from awx/ui/static/js/dashboard/counts/dashboard-counts.directive.js rename to awx/ui/client/src/dashboard/counts/dashboard-counts.directive.js index ac0f201237..3dafe1f13e 100644 --- a/awx/ui/static/js/dashboard/counts/dashboard-counts.directive.js +++ b/awx/ui/client/src/dashboard/counts/dashboard-counts.directive.js @@ -1,14 +1,14 @@ /* jshint unused: vars */ export default - [ '$rootScope', - function() { + [ 'templateUrl', + function(templateUrl) { return { restrict: 'E', scope: { data: '=' }, replace: false, - templateUrl: '/static/js/dashboard/counts/dashboard-counts.partial.html', + templateUrl: templateUrl('dashboard/counts/dashboard-counts'), link: function(scope, element, attrs) { scope.$watch("data", function(data) { if (data && data.hosts) { diff --git a/awx/ui/static/js/dashboard/counts/dashboard-counts.partial.html b/awx/ui/client/src/dashboard/counts/dashboard-counts.partial.html similarity index 100% rename from awx/ui/static/js/dashboard/counts/dashboard-counts.partial.html rename to awx/ui/client/src/dashboard/counts/dashboard-counts.partial.html diff --git a/awx/ui/static/js/dashboard/counts/main.js b/awx/ui/client/src/dashboard/counts/main.js similarity index 58% rename from awx/ui/static/js/dashboard/counts/main.js rename to awx/ui/client/src/dashboard/counts/main.js index 0c069d9588..ae56888e3b 100644 --- a/awx/ui/static/js/dashboard/counts/main.js +++ b/awx/ui/client/src/dashboard/counts/main.js @@ -1,4 +1,4 @@ -import dashboardCountsDirective from 'tower/dashboard/counts/dashboard-counts.directive'; +import dashboardCountsDirective from './dashboard-counts.directive'; export default angular.module('DashboardCountModules', []) diff --git a/awx/ui/static/js/dashboard/dashboard.block.less b/awx/ui/client/src/dashboard/dashboard.block.less similarity index 100% rename from awx/ui/static/js/dashboard/dashboard.block.less rename to awx/ui/client/src/dashboard/dashboard.block.less diff --git a/awx/ui/static/js/dashboard/dashboard.directive.js b/awx/ui/client/src/dashboard/dashboard.directive.js similarity index 65% rename from awx/ui/static/js/dashboard/dashboard.directive.js rename to awx/ui/client/src/dashboard/dashboard.directive.js index c330aeb137..243a423a67 100644 --- a/awx/ui/static/js/dashboard/dashboard.directive.js +++ b/awx/ui/client/src/dashboard/dashboard.directive.js @@ -1,11 +1,11 @@ /* jshint unused: vars */ export default - [ '$rootScope', - function() { + [ 'templateUrl', + function(templateUrl) { return { restrict: 'E', scope: true, - templateUrl: '/static/js/dashboard/dashboard.partial.html', + templateUrl: templateUrl('dashboard/dashboard'), link: function(scope, element, attrs) { } }; diff --git a/awx/ui/static/js/dashboard/dashboard.partial.html b/awx/ui/client/src/dashboard/dashboard.partial.html similarity index 100% rename from awx/ui/static/js/dashboard/dashboard.partial.html rename to awx/ui/client/src/dashboard/dashboard.partial.html diff --git a/awx/ui/static/js/dashboard/graphs/dashboard-graphs.block.less b/awx/ui/client/src/dashboard/graphs/dashboard-graphs.block.less similarity index 97% rename from awx/ui/static/js/dashboard/graphs/dashboard-graphs.block.less rename to awx/ui/client/src/dashboard/graphs/dashboard-graphs.block.less index ac0fd66480..4824eec6e8 100644 --- a/awx/ui/static/js/dashboard/graphs/dashboard-graphs.block.less +++ b/awx/ui/client/src/dashboard/graphs/dashboard-graphs.block.less @@ -1,6 +1,6 @@ /** @define DashboardGraphs */ -@import "shared/branding/colors.less"; +@import "../../shared/branding/colors.less"; .DashboardGraphs { margin-top: 15px; diff --git a/awx/ui/static/js/dashboard/graphs/dashboard-graphs.directive.js b/awx/ui/client/src/dashboard/graphs/dashboard-graphs.directive.js similarity index 88% rename from awx/ui/static/js/dashboard/graphs/dashboard-graphs.directive.js rename to awx/ui/client/src/dashboard/graphs/dashboard-graphs.directive.js index b27418a94c..ce0052e132 100644 --- a/awx/ui/static/js/dashboard/graphs/dashboard-graphs.directive.js +++ b/awx/ui/client/src/dashboard/graphs/dashboard-graphs.directive.js @@ -1,11 +1,11 @@ /* jshint unused: vars */ export default - [ '$rootScope', - function() { + [ 'templateUrl', + function(templateUrl) { return { restrict: 'E', scope: true, - templateUrl: '/static/js/dashboard/graphs/dashboard-graphs.partial.html', + templateUrl: templateUrl('dashboard/graphs/dashboard-graphs'), link: function(scope, element, attrs) { function clearGraphs() { scope.jobStatusSelected = false; diff --git a/awx/ui/static/js/dashboard/graphs/dashboard-graphs.partial.html b/awx/ui/client/src/dashboard/graphs/dashboard-graphs.partial.html similarity index 100% rename from awx/ui/static/js/dashboard/graphs/dashboard-graphs.partial.html rename to awx/ui/client/src/dashboard/graphs/dashboard-graphs.partial.html diff --git a/awx/ui/static/js/dashboard/graphs/graph-helpers/adjust-graph-size.service.js b/awx/ui/client/src/dashboard/graphs/graph-helpers/adjust-graph-size.service.js similarity index 100% rename from awx/ui/static/js/dashboard/graphs/graph-helpers/adjust-graph-size.service.js rename to awx/ui/client/src/dashboard/graphs/graph-helpers/adjust-graph-size.service.js diff --git a/awx/ui/static/js/dashboard/graphs/graph-helpers/auto-size.directive.js b/awx/ui/client/src/dashboard/graphs/graph-helpers/auto-size.directive.js similarity index 100% rename from awx/ui/static/js/dashboard/graphs/graph-helpers/auto-size.directive.js rename to awx/ui/client/src/dashboard/graphs/graph-helpers/auto-size.directive.js diff --git a/awx/ui/client/src/dashboard/graphs/graph-helpers/main.js b/awx/ui/client/src/dashboard/graphs/graph-helpers/main.js new file mode 100644 index 0000000000..9c2740fd58 --- /dev/null +++ b/awx/ui/client/src/dashboard/graphs/graph-helpers/main.js @@ -0,0 +1,6 @@ +import AutoSize from './auto-size.directive'; +import AdjustGraphSize from './adjust-graph-size.service'; + +export default angular.module('DashboardGraphHelpers', []) + .directive('autoSizeModule', AutoSize) + .service('adjustGraphSize', AdjustGraphSize); diff --git a/awx/ui/static/js/dashboard/graphs/host-status/host-status-graph.directive.js b/awx/ui/client/src/dashboard/graphs/host-status/host-status-graph.directive.js similarity index 93% rename from awx/ui/static/js/dashboard/graphs/host-status/host-status-graph.directive.js rename to awx/ui/client/src/dashboard/graphs/host-status/host-status-graph.directive.js index 8fb44090b8..70afc08fac 100644 --- a/awx/ui/static/js/dashboard/graphs/host-status/host-status-graph.directive.js +++ b/awx/ui/client/src/dashboard/graphs/host-status/host-status-graph.directive.js @@ -8,14 +8,15 @@ [ '$compile', '$window', 'adjustGraphSize', + 'templateUrl', HostStatusGraph, ]; -function HostStatusGraph($compile, $window, adjustGraphSize) { +function HostStatusGraph($compile, $window, adjustGraphSize, templateUrl) { return { restrict: 'E', link: link, - templateUrl: '/static/js/dashboard/graphs/host-status/host_status_graph.partial.html' + templateUrl: templateUrl('dashboard/graphs/host-status/host_status_graph') }; function link(scope, element, attr) { @@ -85,7 +86,7 @@ function HostStatusGraph($compile, $window, adjustGraphSize) { "font-family": 'Open Sans', "font-style": "normal", "font-weight":400, - "src": "url(/static/fonts/OpenSans-Regular.ttf)" + "src": "url(/static/assets/OpenSans-Regular.ttf)" }); adjustGraphSize(); diff --git a/awx/ui/client/src/dashboard/graphs/host-status/host_status_graph.partial.html b/awx/ui/client/src/dashboard/graphs/host-status/host_status_graph.partial.html new file mode 100644 index 0000000000..c02f102eea --- /dev/null +++ b/awx/ui/client/src/dashboard/graphs/host-status/host_status_graph.partial.html @@ -0,0 +1 @@ + diff --git a/awx/ui/client/src/dashboard/graphs/host-status/main.js b/awx/ui/client/src/dashboard/graphs/host-status/main.js new file mode 100644 index 0000000000..c097a79fdb --- /dev/null +++ b/awx/ui/client/src/dashboard/graphs/host-status/main.js @@ -0,0 +1,5 @@ +import HostStatusGraphDirective from './host-status-graph.directive'; +import DashboardGraphHelpers from '../graph-helpers/main'; + +export default angular.module('HostStatusGraph', [DashboardGraphHelpers.name]) + .directive('hostStatusGraph', HostStatusGraphDirective); diff --git a/awx/ui/static/js/dashboard/graphs/job-status/job-status-graph.directive.js b/awx/ui/client/src/dashboard/graphs/job-status/job-status-graph.directive.js similarity index 95% rename from awx/ui/static/js/dashboard/graphs/job-status/job-status-graph.directive.js rename to awx/ui/client/src/dashboard/graphs/job-status/job-status-graph.directive.js index 1d233ab42f..4c86c1e999 100644 --- a/awx/ui/static/js/dashboard/graphs/job-status/job-status-graph.directive.js +++ b/awx/ui/client/src/dashboard/graphs/job-status/job-status-graph.directive.js @@ -12,16 +12,17 @@ 'Wait', 'adjustGraphSize', 'jobStatusGraphData', + 'templateUrl', JobStatusGraph ]; -function JobStatusGraph($rootScope, $compile , $location, $window, Wait, adjustGraphSize, graphDataService) { +function JobStatusGraph($rootScope, $compile , $location, $window, Wait, adjustGraphSize, graphDataService, templateUrl) { return { restrict: 'E', scope: { data: '=' }, - templateUrl: '/static/js/dashboard/graphs/job-status/job_status_graph.partial.html', + templateUrl: templateUrl('dashboard/graphs/job-status/job_status_graph'), link: link }; @@ -104,7 +105,7 @@ function JobStatusGraph($rootScope, $compile , $location, $window, Wait, adjustG "font-family": 'Open Sans', "font-style": "normal", "font-weight":400, - "src": "url(/static/fonts/OpenSans-Regular.ttf)" + "src": "url(/static/assets/OpenSans-Regular.ttf)" }); // when the Period drop down filter is used, create a new graph based on the diff --git a/awx/ui/static/js/dashboard/graphs/job-status/job-status-graph.service.js b/awx/ui/client/src/dashboard/graphs/job-status/job-status-graph.service.js similarity index 80% rename from awx/ui/static/js/dashboard/graphs/job-status/job-status-graph.service.js rename to awx/ui/client/src/dashboard/graphs/job-status/job-status-graph.service.js index 4f659a511b..26b5b89029 100644 --- a/awx/ui/static/js/dashboard/graphs/job-status/job-status-graph.service.js +++ b/awx/ui/client/src/dashboard/graphs/job-status/job-status-graph.service.js @@ -21,7 +21,18 @@ function JobStatusGraphData(Rest, getBasePath, processErrors, $rootScope, $q) { } function getData(period, jobType) { - var url = getBasePath('dashboard')+'graphs/jobs/?period='+period+'&job_type='+jobType; + var url, dash_path = getBasePath('dashboard'); + if(dash_path === '' ){ + processErrors(null, + null, + null, + null, { + hdr: 'Error!', + msg: "There was an error. Please try again." + }); + return; + } + url = dash_path + 'graphs/jobs/?period='+period+'&job_type='+jobType; Rest.setUrl(url); var result = Rest.get() .catch(function(response) { diff --git a/awx/ui/static/js/dashboard/graphs/job-status/job_status_graph.partial.html b/awx/ui/client/src/dashboard/graphs/job-status/job_status_graph.partial.html similarity index 95% rename from awx/ui/static/js/dashboard/graphs/job-status/job_status_graph.partial.html rename to awx/ui/client/src/dashboard/graphs/job-status/job_status_graph.partial.html index 6c07f3674b..8ecfb137bf 100644 --- a/awx/ui/static/js/dashboard/graphs/job-status/job_status_graph.partial.html +++ b/awx/ui/client/src/dashboard/graphs/job-status/job_status_graph.partial.html @@ -43,7 +43,4 @@
      - -
      - -
      + diff --git a/awx/ui/client/src/dashboard/graphs/job-status/main.js b/awx/ui/client/src/dashboard/graphs/job-status/main.js new file mode 100644 index 0000000000..66a6086723 --- /dev/null +++ b/awx/ui/client/src/dashboard/graphs/job-status/main.js @@ -0,0 +1,8 @@ +import JobStatusGraphDirective from './job-status-graph.directive'; +import JobStatusGraphService from './job-status-graph.service'; +import DashboardGraphHelpers from '../graph-helpers/main'; +import templateUrl from '../../../shared/template-url/main'; + +export default angular.module('JobStatusGraph', [DashboardGraphHelpers.name, templateUrl.name]) + .directive('jobStatusGraph', JobStatusGraphDirective) + .service('jobStatusGraphData', JobStatusGraphService); diff --git a/awx/ui/client/src/dashboard/graphs/main.js b/awx/ui/client/src/dashboard/graphs/main.js new file mode 100644 index 0000000000..e6a3a0d21b --- /dev/null +++ b/awx/ui/client/src/dashboard/graphs/main.js @@ -0,0 +1,7 @@ +import hostStatus from './host-status/main'; +import jobStatus from './job-status/main'; +import dashboardGraphsDirective from './dashboard-graphs.directive'; + +export default + angular.module('DashboardGraphModules', [hostStatus.name, jobStatus.name]) + .directive('dashboardGraphs', dashboardGraphsDirective); diff --git a/awx/ui/static/js/dashboard/lists/job-templates/job-templates-list.block.less b/awx/ui/client/src/dashboard/lists/job-templates/job-templates-list.block.less similarity index 100% rename from awx/ui/static/js/dashboard/lists/job-templates/job-templates-list.block.less rename to awx/ui/client/src/dashboard/lists/job-templates/job-templates-list.block.less diff --git a/awx/ui/static/js/dashboard/lists/job-templates/job-templates-list.directive.js b/awx/ui/client/src/dashboard/lists/job-templates/job-templates-list.directive.js similarity index 89% rename from awx/ui/static/js/dashboard/lists/job-templates/job-templates-list.directive.js rename to awx/ui/client/src/dashboard/lists/job-templates/job-templates-list.directive.js index 6dc6f20afb..19ba322888 100644 --- a/awx/ui/static/js/dashboard/lists/job-templates/job-templates-list.directive.js +++ b/awx/ui/client/src/dashboard/lists/job-templates/job-templates-list.directive.js @@ -1,14 +1,15 @@ /* jshint unused: vars */ export default [ "PlaybookRun", - function JobTemplatesList(PlaybookRun) { + 'templateUrl', + function JobTemplatesList(PlaybookRun, templateUrl) { return { restrict: 'E', link: link, scope: { data: '=' }, - templateUrl: '/static/js/dashboard/lists/job-templates/job-templates-list.partial.html' + templateUrl: templateUrl('dashboard/lists/job-templates/job-templates-list') }; function link(scope, element, attr) { diff --git a/awx/ui/static/js/dashboard/lists/job-templates/job-templates-list.partial.html b/awx/ui/client/src/dashboard/lists/job-templates/job-templates-list.partial.html similarity index 100% rename from awx/ui/static/js/dashboard/lists/job-templates/job-templates-list.partial.html rename to awx/ui/client/src/dashboard/lists/job-templates/job-templates-list.partial.html diff --git a/awx/ui/client/src/dashboard/lists/job-templates/main.js b/awx/ui/client/src/dashboard/lists/job-templates/main.js new file mode 100644 index 0000000000..90c7f1deb5 --- /dev/null +++ b/awx/ui/client/src/dashboard/lists/job-templates/main.js @@ -0,0 +1,6 @@ +import JobTemplatesListDirective from './job-templates-list.directive'; +import systemStatus from '../../../smart-status/main'; +import jobSubmissionHelper from '../../../helpers/JobSubmission'; + +export default angular.module('JobTemplatesList', [systemStatus.name, jobSubmissionHelper.name]) + .directive('jobTemplatesList', JobTemplatesListDirective); diff --git a/awx/ui/static/js/dashboard/lists/jobs/jobs-list.block.less b/awx/ui/client/src/dashboard/lists/jobs/jobs-list.block.less similarity index 100% rename from awx/ui/static/js/dashboard/lists/jobs/jobs-list.block.less rename to awx/ui/client/src/dashboard/lists/jobs/jobs-list.block.less diff --git a/awx/ui/client/src/dashboard/lists/jobs/jobs-list.directive.js b/awx/ui/client/src/dashboard/lists/jobs/jobs-list.directive.js new file mode 100644 index 0000000000..f0c9d742e2 --- /dev/null +++ b/awx/ui/client/src/dashboard/lists/jobs/jobs-list.directive.js @@ -0,0 +1,44 @@ +/* jshint unused: vars */ +export default + [ 'moment', + 'templateUrl', + function JobsList(moment, templateUrl) { + return { + restrict: 'E', + link: link, + scope: { + data: '=' + }, + templateUrl: templateUrl('dashboard/lists/jobs/jobs-list') + }; + + function link(scope, element, attr) { + scope.$watch("data", function(data) { + if (data) { + if (data.length > 0) { + createList(data); + scope.noJobs = false; + } else { + scope.noJobs = true; + } + } + }); + + function createList(list) { + // detailsUrl, status, name, time + scope.jobs = _.map(list, function(job){ + return { + detailsUrl: job.url.replace("api/v1", "#"), + status: job.status, + name: job.name, + time: moment(job.finished).fromNow() + }; }); + + scope.snapRows = (list.length < 4); + } + + scope.isSuccessful = function (status) { + return (status === "successful"); + }; + } +}]; diff --git a/awx/ui/static/js/dashboard/lists/jobs/jobs-list.partial.html b/awx/ui/client/src/dashboard/lists/jobs/jobs-list.partial.html similarity index 100% rename from awx/ui/static/js/dashboard/lists/jobs/jobs-list.partial.html rename to awx/ui/client/src/dashboard/lists/jobs/jobs-list.partial.html diff --git a/awx/ui/static/js/dashboard/lists/jobs/main.js b/awx/ui/client/src/dashboard/lists/jobs/main.js similarity index 54% rename from awx/ui/static/js/dashboard/lists/jobs/main.js rename to awx/ui/client/src/dashboard/lists/jobs/main.js index 0c9e2d290d..ed520cb435 100644 --- a/awx/ui/static/js/dashboard/lists/jobs/main.js +++ b/awx/ui/client/src/dashboard/lists/jobs/main.js @@ -1,4 +1,4 @@ -import JobsListDirective from 'tower/dashboard/lists/jobs/jobs-list.directive'; +import JobsListDirective from './jobs-list.directive'; export default angular.module('JobsList', []) .directive('jobsList', JobsListDirective); diff --git a/awx/ui/client/src/dashboard/lists/main.js b/awx/ui/client/src/dashboard/lists/main.js new file mode 100644 index 0000000000..5800cca51e --- /dev/null +++ b/awx/ui/client/src/dashboard/lists/main.js @@ -0,0 +1,5 @@ +import jobTemplates from './job-templates/main'; +import jobs from './jobs/main'; + +export default + angular.module('DashboardListsModules', [jobTemplates.name, jobs.name]); diff --git a/awx/ui/client/src/dashboard/main.js b/awx/ui/client/src/dashboard/main.js new file mode 100644 index 0000000000..80f27a1ff1 --- /dev/null +++ b/awx/ui/client/src/dashboard/main.js @@ -0,0 +1,8 @@ +import dashboardCounts from './counts/main'; +import dashboardGraphs from './graphs/main'; +import dashboardLists from './lists/main'; +import dashboardDirective from './dashboard.directive'; + +export default + angular.module('dashboard', [dashboardCounts.name, dashboardGraphs.name, dashboardLists.name]) + .directive('dashboard', dashboardDirective); diff --git a/awx/ui/static/js/debug.js b/awx/ui/client/src/debug.js similarity index 100% rename from awx/ui/static/js/debug.js rename to awx/ui/client/src/debug.js diff --git a/awx/ui/static/js/docs.js b/awx/ui/client/src/docs.js similarity index 63% rename from awx/ui/static/js/docs.js rename to awx/ui/client/src/docs.js index d851933707..c66f9376a6 100644 --- a/awx/ui/static/js/docs.js +++ b/awx/ui/client/src/docs.js @@ -4,5 +4,5 @@ * All Rights Reserved *************************************************/ -import 'tower/shared/multi-select-list/main.js'; -import 'tower/shared/route-extensions/main.js'; +import './shared/multi-select-list/main.js'; +import './shared/route-extensions/main.js'; diff --git a/awx/ui/static/js/filters.js b/awx/ui/client/src/filters.js similarity index 55% rename from awx/ui/static/js/filters.js rename to awx/ui/client/src/filters.js index 1f9fd75fd6..da0123cad7 100644 --- a/awx/ui/static/js/filters.js +++ b/awx/ui/client/src/filters.js @@ -4,9 +4,9 @@ * All Rights Reserved *************************************************/ -import sanitizeFilter from 'tower/shared/xss-sanitizer.filter'; -import capitalizeFilter from 'tower/shared/capitalize.filter'; -import longDateFilter from 'tower/shared/long-date.filter'; +import sanitizeFilter from './shared/xss-sanitizer.filter'; +import capitalizeFilter from './shared/capitalize.filter'; +import longDateFilter from './shared/long-date.filter'; export { sanitizeFilter, diff --git a/awx/ui/client/src/forms.js b/awx/ui/client/src/forms.js new file mode 100644 index 0000000000..6b03381c22 --- /dev/null +++ b/awx/ui/client/src/forms.js @@ -0,0 +1,56 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved +*************************************************/ + +import ActivityDetail from "./forms/ActivityDetail"; +import Credentials from "./forms/Credentials"; +import EventsViewer from "./forms/EventsViewer"; +import Groups from "./forms/Groups"; +import HostGroups from "./forms/HostGroups"; +import Hosts from "./forms/Hosts"; +import Inventories from "./forms/Inventories"; +import InventoryStatus from "./forms/InventoryStatus"; +import JobEventData from "./forms/JobEventData"; +import JobSummary from "./forms/JobSummary"; +import JobTemplates from "./forms/JobTemplates"; +import JobVarsPrompt from "./forms/JobVarsPrompt"; +import Jobs from "./forms/Jobs"; +import LicenseForm from "./forms/LicenseForm"; +import LicenseUpdate from "./forms/LicenseUpdate"; +import LogViewerOptions from "./forms/LogViewerOptions"; +import LogViewerStatus from "./forms/LogViewerStatus"; +import Organizations from "./forms/Organizations"; +import ProjectStatus from "./forms/ProjectStatus"; +import Projects from "./forms/Projects"; +import Source from "./forms/Source"; +import Teams from "./forms/Teams"; +import Users from "./forms/Users"; + + +export + { ActivityDetail, + Credentials, + EventsViewer, + Groups, + HostGroups, + Hosts, + Inventories, + InventoryStatus, + JobEventData, + JobSummary, + JobTemplates, + JobVarsPrompt, + Jobs, + LicenseForm, + LicenseUpdate, + LogViewerOptions, + LogViewerStatus, + Organizations, + ProjectStatus, + Projects, + Source, + Teams, + Users + }; diff --git a/awx/ui/static/js/forms/ActivityDetail.js b/awx/ui/client/src/forms/ActivityDetail.js similarity index 100% rename from awx/ui/static/js/forms/ActivityDetail.js rename to awx/ui/client/src/forms/ActivityDetail.js diff --git a/awx/ui/static/js/forms/Credentials.js b/awx/ui/client/src/forms/Credentials.js similarity index 92% rename from awx/ui/static/js/forms/Credentials.js rename to awx/ui/client/src/forms/Credentials.js index 15a33fc65d..c1d385eb87 100644 --- a/awx/ui/static/js/forms/Credentials.js +++ b/awx/ui/client/src/forms/Credentials.js @@ -153,6 +153,18 @@ export default hasShowInputButton: true, apiField: 'passwowrd' }, + security_token: { + label: 'STS Token', + type: 'sensitive', + ngShow: "kind.value == 'aws'", + autocomplete: false, + apiField: 'security_token', + awPopOver: "
      Security Token Service (STS) is a web service that enables you to request temporary, limited-privilege credentials for AWS Identity and Access Management (IAM) users.
      To learn more about the IAM STS Token, refer to the Amazon documentation.
      ", + hasShowInputButton: true, + dataTitle: 'STS Token', + dataPlacement: 'right', + dataContainer: "body" + }, "host": { labelBind: 'hostLabel', type: 'text', @@ -275,6 +287,7 @@ export default ngShow: "kind.value == 'ssh' || kind.value == 'scm'", addRequired: false, editRequired: false, + ngDisabled: "keyEntered === false", ask: true, hasShowInputButton: true, askShow: "kind.value == 'ssh'", // Only allow ask for machine credentials @@ -286,7 +299,7 @@ export default ngShow: "kind.value == 'ssh'", dataTitle: 'Privilege Escalation', ngOptions: 'become.label for become in become_options track by become.value', - awPopOver: "

      Specify a username for 'become' operations. " + + awPopOver: "

      Specify a method for 'become' operations. " + "This is equivalent to specifying the --become-method=BECOME_METHOD parameter, where BECOME_METHOD could be "+ "sudo | su | pbrun | pfexec | runas
      (defaults to sudo)

      ", dataPlacement: 'right', @@ -295,7 +308,7 @@ export default "become_username": { label: 'Privilege Escalation Username', type: 'text', - ngShow: "kind.value == 'ssh' && become_method", + ngShow: "kind.value == 'ssh' && (become_method && become_method.value)", addRequired: false, editRequired: false, autocomplete: false @@ -303,7 +316,7 @@ export default "become_password": { label: 'Privilege Escalation Password', type: 'sensitive', - ngShow: "kind.value == 'ssh' && become_method", + ngShow: "kind.value == 'ssh' && (become_method && become_method.value)", addRequired: false, editRequired: false, ask: true, diff --git a/awx/ui/static/js/forms/EventsViewer.js b/awx/ui/client/src/forms/EventsViewer.js similarity index 100% rename from awx/ui/static/js/forms/EventsViewer.js rename to awx/ui/client/src/forms/EventsViewer.js diff --git a/awx/ui/static/js/forms/Groups.js b/awx/ui/client/src/forms/Groups.js similarity index 100% rename from awx/ui/static/js/forms/Groups.js rename to awx/ui/client/src/forms/Groups.js diff --git a/awx/ui/static/js/forms/HostGroups.js b/awx/ui/client/src/forms/HostGroups.js similarity index 100% rename from awx/ui/static/js/forms/HostGroups.js rename to awx/ui/client/src/forms/HostGroups.js diff --git a/awx/ui/static/js/forms/Hosts.js b/awx/ui/client/src/forms/Hosts.js similarity index 100% rename from awx/ui/static/js/forms/Hosts.js rename to awx/ui/client/src/forms/Hosts.js diff --git a/awx/ui/static/js/forms/Inventories.js b/awx/ui/client/src/forms/Inventories.js similarity index 100% rename from awx/ui/static/js/forms/Inventories.js rename to awx/ui/client/src/forms/Inventories.js diff --git a/awx/ui/static/js/forms/InventoryStatus.js b/awx/ui/client/src/forms/InventoryStatus.js similarity index 100% rename from awx/ui/static/js/forms/InventoryStatus.js rename to awx/ui/client/src/forms/InventoryStatus.js diff --git a/awx/ui/static/js/forms/JobEventData.js b/awx/ui/client/src/forms/JobEventData.js similarity index 100% rename from awx/ui/static/js/forms/JobEventData.js rename to awx/ui/client/src/forms/JobEventData.js diff --git a/awx/ui/static/js/forms/JobSummary.js b/awx/ui/client/src/forms/JobSummary.js similarity index 100% rename from awx/ui/static/js/forms/JobSummary.js rename to awx/ui/client/src/forms/JobSummary.js diff --git a/awx/ui/static/js/forms/JobTemplates.js b/awx/ui/client/src/forms/JobTemplates.js similarity index 99% rename from awx/ui/static/js/forms/JobTemplates.js rename to awx/ui/client/src/forms/JobTemplates.js index c9e6fea4b9..6d3a82286d 100644 --- a/awx/ui/static/js/forms/JobTemplates.js +++ b/awx/ui/client/src/forms/JobTemplates.js @@ -284,8 +284,6 @@ export default type: 'checkbox', addRequired: false, editRequird: false, - trueValue: 'true', - falseValue: 'false', ngChange: "toggleCallback('host_config_key')", column: 2, awPopOver: "

      Enables creation of a provisioning callback URL. Using the URL a host can contact Tower and request a configuration update " + @@ -300,7 +298,7 @@ export default addRequired: false, editRequired: false, readonly: true, - ngShow: "allow_callbacks", + ngShow: "allow_callbacks && allow_callbacks !== 'false'", column: 2, awPopOver: "callback_help", awPopOverWatch: "callback_help", @@ -311,7 +309,7 @@ export default host_config_key: { label: 'Host Config Key', type: 'text', - ngShow: "allow_callbacks", + ngShow: "allow_callbacks && allow_callbacks !== 'false'", ngChange: "configKeyChange()", genMD5: true, column: 2, diff --git a/awx/ui/static/js/forms/JobVarsPrompt.js b/awx/ui/client/src/forms/JobVarsPrompt.js similarity index 100% rename from awx/ui/static/js/forms/JobVarsPrompt.js rename to awx/ui/client/src/forms/JobVarsPrompt.js diff --git a/awx/ui/static/js/forms/Jobs.js b/awx/ui/client/src/forms/Jobs.js similarity index 100% rename from awx/ui/static/js/forms/Jobs.js rename to awx/ui/client/src/forms/Jobs.js diff --git a/awx/ui/static/js/forms/LicenseForm.js b/awx/ui/client/src/forms/LicenseForm.js similarity index 100% rename from awx/ui/static/js/forms/LicenseForm.js rename to awx/ui/client/src/forms/LicenseForm.js diff --git a/awx/ui/static/js/forms/LicenseUpdate.js b/awx/ui/client/src/forms/LicenseUpdate.js similarity index 100% rename from awx/ui/static/js/forms/LicenseUpdate.js rename to awx/ui/client/src/forms/LicenseUpdate.js diff --git a/awx/ui/static/js/forms/LogViewerOptions.js b/awx/ui/client/src/forms/LogViewerOptions.js similarity index 100% rename from awx/ui/static/js/forms/LogViewerOptions.js rename to awx/ui/client/src/forms/LogViewerOptions.js diff --git a/awx/ui/static/js/forms/LogViewerStatus.js b/awx/ui/client/src/forms/LogViewerStatus.js similarity index 100% rename from awx/ui/static/js/forms/LogViewerStatus.js rename to awx/ui/client/src/forms/LogViewerStatus.js diff --git a/awx/ui/static/js/forms/Organizations.js b/awx/ui/client/src/forms/Organizations.js similarity index 100% rename from awx/ui/static/js/forms/Organizations.js rename to awx/ui/client/src/forms/Organizations.js diff --git a/awx/ui/static/js/forms/ProjectStatus.js b/awx/ui/client/src/forms/ProjectStatus.js similarity index 100% rename from awx/ui/static/js/forms/ProjectStatus.js rename to awx/ui/client/src/forms/ProjectStatus.js diff --git a/awx/ui/static/js/forms/Projects.js b/awx/ui/client/src/forms/Projects.js similarity index 100% rename from awx/ui/static/js/forms/Projects.js rename to awx/ui/client/src/forms/Projects.js diff --git a/awx/ui/static/js/forms/Source.js b/awx/ui/client/src/forms/Source.js similarity index 97% rename from awx/ui/static/js/forms/Source.js rename to awx/ui/client/src/forms/Source.js index 84cb53e90a..19780c3df0 100644 --- a/awx/ui/static/js/forms/Source.js +++ b/awx/ui/client/src/forms/Source.js @@ -3,7 +3,7 @@ * * All Rights Reserved *************************************************/ - + /** * @ngdoc function * @name forms.function:Source @@ -46,8 +46,10 @@ export default sourceModel: 'credential', sourceField: 'name', ngClick: 'lookUpCredential()', - addRequired: false, - editRequired: false + awRequiredWhen: { + variable: "cloudCredentialRequired", + init: "false" + } }, source_regions: { label: 'Regions', @@ -108,16 +110,16 @@ export default "

      If blank, all groups above are created except Instance ID.

      ", dataContainer: 'body' }, - source_script: { + inventory_script: { label : "Custom Inventory Script", labelClass: 'prepend-asterisk', type: 'lookup', ngShow: "source && source.value === 'custom'", - sourceModel: 'source_script', + sourceModel: 'inventory_script', sourceField: 'name', - ngClick: 'lookUpSource_script()' , - addRequired: false, - editRequired: false, + ngClick: 'lookUpInventory_script()' , + addRequired: true, + editRequired: true, ngRequired: "source && source.value === 'custom'", }, extra_vars: { diff --git a/awx/ui/static/js/forms/Teams.js b/awx/ui/client/src/forms/Teams.js similarity index 98% rename from awx/ui/static/js/forms/Teams.js rename to awx/ui/client/src/forms/Teams.js index 7da930b9db..195f783ede 100644 --- a/awx/ui/static/js/forms/Teams.js +++ b/awx/ui/client/src/forms/Teams.js @@ -156,7 +156,9 @@ export default ngBind: 'permission.summary_fields.project.name' }, permission_type: { - label: 'Permission' + label: 'Permission', + ngBind: 'getPermissionText()', + searchType: 'select' } }, diff --git a/awx/ui/static/js/forms/Users.js b/awx/ui/client/src/forms/Users.js similarity index 97% rename from awx/ui/static/js/forms/Users.js rename to awx/ui/client/src/forms/Users.js index b02b4c0071..8a5fbce7ce 100644 --- a/awx/ui/static/js/forms/Users.js +++ b/awx/ui/client/src/forms/Users.js @@ -84,7 +84,7 @@ export default label: 'Password', type: 'sensitive', hasShowInputButton: true, - ngShow: 'ldap_user == false', + ngShow: 'ldap_user == false && socialAuthUser === false', addRequired: true, editRequired: false, ngChange: "clearPWConfirm('password_confirm')", @@ -95,8 +95,8 @@ export default label: 'Confirm Password', type: 'sensitive', hasShowInputButton: true, - ngShow: 'ldap_user == false', - addRequired: false, + ngShow: 'ldap_user == false && socialAuthUser === false', + addRequired: true, editRequired: false, awPassMatch: true, associated: 'password', @@ -212,7 +212,8 @@ export default }, permission_type: { label: 'Permission', - ngBind: 'getPermissionText()' + ngBind: 'getPermissionText()', + searchType: 'select' } }, diff --git a/awx/ui/static/js/help.js b/awx/ui/client/src/help.js similarity index 52% rename from awx/ui/static/js/help.js rename to awx/ui/client/src/help.js index bf95a791eb..0c526d541f 100644 --- a/awx/ui/static/js/help.js +++ b/awx/ui/client/src/help.js @@ -4,7 +4,7 @@ * All Rights Reserved *************************************************/ -import "tower/help/ChromeSocketHelp"; -import "tower/help/FirefoxSocketHelp"; -import "tower/help/InventoryGroups"; -import "tower/help/SafariSocketHelp"; +import "./help/ChromeSocketHelp"; +import "./help/FirefoxSocketHelp"; +import "./help/InventoryGroups"; +import "./help/SafariSocketHelp"; diff --git a/awx/ui/static/js/help/ChromeSocketHelp.js b/awx/ui/client/src/help/ChromeSocketHelp.js similarity index 100% rename from awx/ui/static/js/help/ChromeSocketHelp.js rename to awx/ui/client/src/help/ChromeSocketHelp.js diff --git a/awx/ui/static/js/help/FirefoxSocketHelp.js b/awx/ui/client/src/help/FirefoxSocketHelp.js similarity index 100% rename from awx/ui/static/js/help/FirefoxSocketHelp.js rename to awx/ui/client/src/help/FirefoxSocketHelp.js diff --git a/awx/ui/static/js/help/InventoryGroups.js b/awx/ui/client/src/help/InventoryGroups.js similarity index 100% rename from awx/ui/static/js/help/InventoryGroups.js rename to awx/ui/client/src/help/InventoryGroups.js diff --git a/awx/ui/static/js/help/SafariSocketHelp.js b/awx/ui/client/src/help/SafariSocketHelp.js similarity index 100% rename from awx/ui/static/js/help/SafariSocketHelp.js rename to awx/ui/client/src/help/SafariSocketHelp.js diff --git a/awx/ui/client/src/helpers.js b/awx/ui/client/src/helpers.js new file mode 100644 index 0000000000..be09e70be5 --- /dev/null +++ b/awx/ui/client/src/helpers.js @@ -0,0 +1,80 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + +import './forms'; +import './lists'; + +import AboutAnsible from "./helpers/AboutAnsible"; +import Children from "./helpers/Children"; +import Credentials from "./helpers/Credentials"; +import EventViewer from "./helpers/EventViewer"; +import Events from "./helpers/Events"; +import Groups from "./helpers/Groups"; +import HostEventsViewer from "./helpers/HostEventsViewer"; +import Hosts from "./helpers/Hosts"; +import JobDetail from "./helpers/JobDetail"; +import JobSubmission from "./helpers/JobSubmission"; +import JobTemplates from "./helpers/JobTemplates"; +import Jobs from "./helpers/Jobs"; +import License from "./helpers/License"; +import LoadConfig from "./helpers/LoadConfig"; +import LogViewer from "./helpers/LogViewer"; +import Lookup from "./helpers/Lookup"; +import PaginationHelpers from "./helpers/PaginationHelpers"; +import Parse from "./helpers/Parse"; +import ProjectPath from "./helpers/ProjectPath"; +import Projects from "./helpers/Projects"; +import Schedules from "./helpers/Schedules"; +import Selection from "./helpers/Selection"; +import SocketHelper from "./helpers/SocketHelper"; +import Users from "./helpers/Users"; +import Variables from "./helpers/Variables"; +import ApiDefaults from "./helpers/api-defaults"; +import inventory from "./helpers/inventory"; +import MD5 from "./helpers/md5"; +import RefreshRelated from "./helpers/refresh-related"; +import Refresh from "./helpers/refresh"; +import RelatedSearch from "./helpers/related-search"; +import Search from "./helpers/search"; +import Teams from "./helpers/teams"; +import AdhocHelper from "./helpers/Adhoc"; + +export + { AboutAnsible, + Children, + Credentials, + EventViewer, + Events, + Groups, + HostEventsViewer, + Hosts, + JobDetail, + JobSubmission, + JobTemplates, + Jobs, + License, + LoadConfig, + LogViewer, + Lookup, + PaginationHelpers, + Parse, + ProjectPath, + Projects, + Schedules, + Selection, + SocketHelper, + Users, + Variables, + ApiDefaults, + inventory, + MD5, + RefreshRelated, + Refresh, + RelatedSearch, + Search, + Teams, + AdhocHelper + }; diff --git a/awx/ui/static/js/helpers/AboutAnsible.js b/awx/ui/client/src/helpers/AboutAnsible.js similarity index 96% rename from awx/ui/static/js/helpers/AboutAnsible.js rename to awx/ui/client/src/helpers/AboutAnsible.js index cca08fac18..69fef1236c 100644 --- a/awx/ui/static/js/helpers/AboutAnsible.js +++ b/awx/ui/client/src/helpers/AboutAnsible.js @@ -75,10 +75,9 @@ export default scope: scope, // buttons: [], width: 710, - height: 400, + height: 450, minWidth: 300, resizable: false, - // title: , //'' ,//'About Ansible', callback: 'DialogReady', onOpen: function(){ $('#dialog-ok-button').focus(); diff --git a/awx/ui/static/js/helpers/Adhoc.js b/awx/ui/client/src/helpers/Adhoc.js similarity index 99% rename from awx/ui/static/js/helpers/Adhoc.js rename to awx/ui/client/src/helpers/Adhoc.js index 3924416d98..4fc00c19d4 100644 --- a/awx/ui/static/js/helpers/Adhoc.js +++ b/awx/ui/client/src/helpers/Adhoc.js @@ -3,7 +3,7 @@ * * All Rights Reserved *************************************************/ - + /** * @ngdoc function * @name helpers.function:Adhoc diff --git a/awx/ui/static/js/helpers/Children.js b/awx/ui/client/src/helpers/Children.js similarity index 100% rename from awx/ui/static/js/helpers/Children.js rename to awx/ui/client/src/helpers/Children.js diff --git a/awx/ui/static/js/helpers/Credentials.js b/awx/ui/client/src/helpers/Credentials.js similarity index 97% rename from awx/ui/static/js/helpers/Credentials.js rename to awx/ui/client/src/helpers/Credentials.js index a6edd56281..f4af1282d6 100644 --- a/awx/ui/static/js/helpers/Credentials.js +++ b/awx/ui/client/src/helpers/Credentials.js @@ -218,7 +218,13 @@ angular.module('CredentialsHelper', ['Utilities']) } data.kind = scope.kind.value; - data.become_method = (scope.become_method.value) ? scope.become_method.value : ""; + if (scope.become_method === null) { + data.become_method = ""; + data.become_username = ""; + data.become_password = ""; + } else { + data.become_method = (scope.become_method.value) ? scope.become_method.value : ""; + } switch (data.kind) { case 'ssh': data.password = scope.ssh_password; diff --git a/awx/ui/static/js/helpers/EventViewer.js b/awx/ui/client/src/helpers/EventViewer.js similarity index 100% rename from awx/ui/static/js/helpers/EventViewer.js rename to awx/ui/client/src/helpers/EventViewer.js diff --git a/awx/ui/static/js/helpers/Events.js b/awx/ui/client/src/helpers/Events.js similarity index 100% rename from awx/ui/static/js/helpers/Events.js rename to awx/ui/client/src/helpers/Events.js diff --git a/awx/ui/static/js/helpers/Groups.js b/awx/ui/client/src/helpers/Groups.js similarity index 97% rename from awx/ui/static/js/helpers/Groups.js rename to awx/ui/client/src/helpers/Groups.js index babff31306..4d7fb0487c 100644 --- a/awx/ui/static/js/helpers/Groups.js +++ b/awx/ui/client/src/helpers/Groups.js @@ -3,7 +3,7 @@ * * All Rights Reserved *************************************************/ - + 'use strict'; /** @@ -12,11 +12,11 @@ * @description inventory tree widget add/edit/delete */ -import listGenerator from 'tower/shared/list-generator/main'; +import listGenerator from '../shared/list-generator/main'; export default angular.module('GroupsHelper', [ 'RestServices', 'Utilities', listGenerator.name, 'GroupListDefinition', 'SearchHelper', - 'PaginationHelpers', listGenerator.name, 'AuthService', 'GroupsHelper', 'InventoryHelper', 'SelectionHelper', + 'PaginationHelpers', listGenerator.name, 'GroupsHelper', 'InventoryHelper', 'SelectionHelper', 'JobSubmissionHelper', 'RefreshHelper', 'PromptDialog', 'CredentialsListDefinition', 'InventoryTree', 'InventoryStatusDefinition', 'VariablesHelper', 'SchedulesListDefinition', 'SourceFormDefinition', 'LogViewerHelper', 'SchedulesHelper' @@ -47,6 +47,7 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', listGenerator.name }); } } + scope.cloudCredentialRequired = false; scope.$emit('sourceTypeOptionsReady'); }) .error(function (data, status) { @@ -235,14 +236,16 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', listGenerator.name * TODO: Document * */ -.factory('SourceChange', ['GetBasePath', 'CredentialList', 'LookUpInit', 'Empty', 'Wait', 'ParseTypeChange', 'CustomInventoryList', 'CreateSelect2', - function (GetBasePath, CredentialList, LookUpInit, Empty, Wait, ParseTypeChange, CustomInventoryList, CreateSelect2) { +.factory('SourceChange', ['GetBasePath', 'CredentialList', 'LookUpInit', 'Empty', 'Wait', 'ParseTypeChange', 'inventoryScriptsListObject', 'CreateSelect2', + function (GetBasePath, CredentialList, LookUpInit, Empty, Wait, ParseTypeChange, inventoryScriptsListObject, CreateSelect2) { return function (params) { var scope = params.scope, form = params.form, kind, url, callback, invUrl; + scope.cloudCredentialRequired = false; + if (!Empty(scope.source)) { if (scope.source.value === 'file') { scope.sourcePathRequired = true; @@ -283,14 +286,14 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', listGenerator.name } if(scope.source.value==="custom"){ // need to filter the possible custom scripts by the organization defined for the current inventory - invUrl = GetBasePath('inventory_scripts') + '?organization='+scope.$parent.inventory.organization; + invUrl = GetBasePath('inventory_scripts'); LookUpInit({ url: invUrl, scope: scope, form: form, hdr: "Select Custom Inventory", - list: CustomInventoryList, - field: 'source_script', + list: inventoryScriptsListObject, + field: 'inventory_script', input_type: 'radio' }); scope.extra_vars = (Empty(scope.source_vars)) ? "---" : scope.source_vars; @@ -313,6 +316,7 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', listGenerator.name kind = 'aws'; } else { kind = scope.source.value; + scope.cloudCredentialRequired = true; } url = GetBasePath('credentials') + '?cloud=true&kind=' + kind; LookUpInit({ @@ -747,9 +751,9 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', listGenerator.name $compile(elem)(modal_scope); var form_scope = - generator.inject(GroupForm, { mode: 'edit', id: 'properties-tab', breadCrumbs: false, related: false, scope: properties_scope }); + generator.inject(GroupForm, { mode: mode, id: 'properties-tab', breadCrumbs: false, related: false, scope: properties_scope }); var source_form_scope = - generator.inject(SourceForm, { mode: 'edit', id: 'sources-tab', breadCrumbs: false, related: false, scope: sources_scope }); + generator.inject(SourceForm, { mode: mode, id: 'sources-tab', breadCrumbs: false, related: false, scope: sources_scope }); //generator.reset(); @@ -1027,11 +1031,20 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', listGenerator.name sources_scope.source_vars = ParseVariableString(data.source_vars); master.source_vars = sources_scope.variables; } - // else if(fld === "source_script"){ - // sources_scope[fld] = data - // } - - else if (data[fld] !== undefined) { + else if(fld === "inventory_script"){ + // the API stores it as 'source_script', we call it inventory_script + data.summary_fields['inventory_script'] = data.summary_fields.source_script; + sources_scope.inventory_script = data.source_script; + master.inventory_script = sources_scope.inventory_script; + } else if (fld === "source_regions") { + if (data[fld] === "") { + sources_scope[fld] = data[fld]; + master[fld] = sources_scope[fld]; + } else { + sources_scope[fld] = data[fld].split(","); + master[fld] = sources_scope[fld]; + } + } else if (data[fld] !== undefined) { sources_scope[fld] = data[fld]; master[fld] = sources_scope[fld]; } @@ -1275,7 +1288,7 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', listGenerator.name credential: sources_scope.credential, overwrite: sources_scope.overwrite, overwrite_vars: sources_scope.overwrite_vars, - source_script: sources_scope.source_script, + source_script: sources_scope.inventory_script, update_on_launch: sources_scope.update_on_launch, update_cache_timeout: (sources_scope.update_cache_timeout || 0) }; @@ -1391,7 +1404,7 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', listGenerator.name if (mode === 'edit' || (mode === 'add' && group_created)) { Rest.put(data) .success(function () { - if (properties_scope.variables) { + if (properties_scope.variables && properties_scope.variables !== "---") { modal_scope.$emit('updateVariables', json_data, properties_scope.variable_url); } else { @@ -1452,6 +1465,11 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', listGenerator.name // Change the lookup and regions when the source changes sources_scope.sourceChange = function () { + sources_scope.credential_name = ""; + sources_scope.credential = ""; + if (sources_scope.credential_name_api_error) { + delete sources_scope.credential_name_api_error; + } parent_scope.showSchedulesTab = (mode === 'edit' && sources_scope.source && sources_scope.source.value!=="manual") ? true : false; SourceChange({ scope: sources_scope, form: SourceForm }); }; @@ -1887,22 +1905,20 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', listGenerator.name list = GroupList; scope[list.name].forEach( function(row, i) { if (row.id === id) { - if (row.checked === '0') { - scope[list.name][i].checked = '1'; + if (row.checked) { scope[list.name][i].success_class = 'success'; } else { - scope[list.name][i].checked = '0'; scope[list.name][i].success_class = ''; } } else { - scope[list.name][i].checked = '0'; + scope[list.name][i].checked = 0; scope[list.name][i].success_class = ''; } }); // Check if any rows are checked scope[list.name].forEach(function(row) { - if (row.checked === '1') { + if (row.checked) { count++; } }); @@ -1924,7 +1940,7 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', listGenerator.name // check for group selection $('#group-copy-ok-button').attr('disabled','disabled'); scope[list.name].every(function(row) { - if (row.checked === '1') { + if (row.checked === 1) { $('#group-copy-ok-button').removeAttr('disabled'); return false; } @@ -1945,7 +1961,7 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', listGenerator.name } else { scope[list.name].every(function(row) { - if (row.checked === '1') { + if (row.checked === 1) { target = row; return false; } diff --git a/awx/ui/static/js/helpers/HostEventsViewer.js b/awx/ui/client/src/helpers/HostEventsViewer.js similarity index 100% rename from awx/ui/static/js/helpers/HostEventsViewer.js rename to awx/ui/client/src/helpers/HostEventsViewer.js diff --git a/awx/ui/static/js/helpers/Hosts.js b/awx/ui/client/src/helpers/Hosts.js similarity index 99% rename from awx/ui/static/js/helpers/Hosts.js rename to awx/ui/client/src/helpers/Hosts.js index a12acd7b1d..377b8aba51 100644 --- a/awx/ui/static/js/helpers/Hosts.js +++ b/awx/ui/client/src/helpers/Hosts.js @@ -3,7 +3,7 @@ * * All Rights Reserved *************************************************/ - + /* jshint loopfunc: true */ /** @@ -14,11 +14,11 @@ 'use strict'; -import listGenerator from 'tower/shared/list-generator/main'; +import listGenerator from '../shared/list-generator/main'; export default angular.module('HostsHelper', [ 'RestServices', 'Utilities', listGenerator.name, 'HostListDefinition', - 'SearchHelper', 'PaginationHelpers', listGenerator.name, 'AuthService', 'HostsHelper', + 'SearchHelper', 'PaginationHelpers', listGenerator.name, 'HostsHelper', 'InventoryHelper', 'RelatedSearchHelper', 'InventoryFormDefinition', 'SelectionHelper', 'HostGroupsFormDefinition', 'VariablesHelper', 'ModalDialog', 'LogViewerHelper', 'GroupListDefinition' @@ -906,22 +906,20 @@ angular.module('HostsHelper', [ 'RestServices', 'Utilities', listGenerator.name, list = GroupList; scope[list.name].forEach( function(row, i) { if (row.id === id) { - if (row.checked === '0') { - scope[list.name][i].checked = '1'; + if (row.checked) { scope[list.name][i].success_class = 'success'; } else { - scope[list.name][i].checked = '0'; scope[list.name][i].success_class = ''; } } else { - scope[list.name][i].checked = '0'; + scope[list.name][i].checked = 0; scope[list.name][i].success_class = ''; } }); // Check if any rows are checked scope[list.name].forEach(function(row) { - if (row.checked === '1') { + if (row.checked) { count++; } }); @@ -945,7 +943,7 @@ angular.module('HostsHelper', [ 'RestServices', 'Utilities', listGenerator.name, } else { scope[list.name].every(function(row) { - if (row.checked === '1') { + if (row.checked === 1) { target = row; return false; } diff --git a/awx/ui/static/js/helpers/JobDetail.js b/awx/ui/client/src/helpers/JobDetail.js similarity index 98% rename from awx/ui/static/js/helpers/JobDetail.js rename to awx/ui/client/src/helpers/JobDetail.js index ba99bc4d10..3e54f37a5d 100644 --- a/awx/ui/static/js/helpers/JobDetail.js +++ b/awx/ui/client/src/helpers/JobDetail.js @@ -3,7 +3,7 @@ * * All Rights Reserved *************************************************/ - + /** * @ngdoc function * @name helpers.function:JobDetail @@ -497,18 +497,18 @@ export default scope.host_summary.failed; */ - if (scope.jobData.hostSummaries[name] !== undefined) { - scope.jobData.hostSummaries[name].ok += (status === 'successful') ? 1 : 0; - scope.jobData.hostSummaries[name].changed += (status === 'changed') ? 1 : 0; - scope.jobData.hostSummaries[name].unreachable += (status === 'unreachable') ? 1 : 0; - scope.jobData.hostSummaries[name].failed += (status === 'failed') ? 1 : 0; + if (scope.jobData.hostSummaries[host_id] !== undefined) { + scope.jobData.hostSummaries[host_id].ok += (status === 'successful') ? 1 : 0; + scope.jobData.hostSummaries[host_id].changed += (status === 'changed') ? 1 : 0; + scope.jobData.hostSummaries[host_id].unreachable += (status === 'unreachable') ? 1 : 0; + scope.jobData.hostSummaries[host_id].failed += (status === 'failed') ? 1 : 0; if (status === 'failed' || status === 'unreachable') { - scope.jobData.hostSummaries[name].status = 'failed'; + scope.jobData.hostSummaries[host_id].status = 'failed'; } } else { - scope.jobData.hostSummaries[name] = { - id: name, + scope.jobData.hostSummaries[host_id] = { + id: host_id, name: name, ok: (status === 'successful') ? 1 : 0, changed: (status === 'changed') ? 1 : 0, @@ -658,7 +658,12 @@ export default var task = params.task, diff; - task.missingCount = task.hostCount - (task.failedCount + task.changedCount + task.skippedCount + task.successfulCount + task.unreachableCount); + task.missingCount = task.hostCount - (task.failedCount + task.changedCount + task.skippedCount + task.successfulCount + + task.unreachableCount); + if(task.missingCount<0){ + task.hostCount = (task.failedCount + task.changedCount + task.skippedCount + task.successfulCount + + task.unreachableCount); + } task.missingPct = (task.hostCount > 0) ? Math.ceil((100 * (task.missingCount / task.hostCount))) : 0; task.failedPct = (task.hostCount > 0) ? Math.ceil((100 * (task.failedCount / task.hostCount))) : 0; task.changedPct = (task.hostCount > 0) ? Math.ceil((100 * (task.changedCount / task.hostCount))) : 0; diff --git a/awx/ui/static/js/helpers/JobSubmission.js b/awx/ui/client/src/helpers/JobSubmission.js similarity index 94% rename from awx/ui/static/js/helpers/JobSubmission.js rename to awx/ui/client/src/helpers/JobSubmission.js index 473848b3cc..9e641dc388 100644 --- a/awx/ui/static/js/helpers/JobSubmission.js +++ b/awx/ui/client/src/helpers/JobSubmission.js @@ -154,9 +154,31 @@ function(Rest, Wait, ProcessErrors, ToJSON, Empty, GetBasePath) { if(scope.survey_questions[i].required || (scope.survey_questions[i].required === false && scope[fld].toString()!=="")) { job_launch_data.extra_vars[fld] = scope[fld]; } - // for optional text and text-areas, submit a blank string if min length is 0 - if(scope.survey_questions[i].required === false && (scope.survey_questions[i].type === "text" || scope.survey_questions[i].type === "textarea") && scope.survey_questions[i].min === 0 && (scope[fld] === "" || scope[fld] === undefined)){ - job_launch_data.extra_vars[fld] = ""; + + + if(scope.survey_questions[i].required === false && _.isEmpty(scope[fld])) { + switch (scope.survey_questions[i].type) { + // for optional text and text-areas, submit a blank string if min length is 0 + // -- this is confusing, for an explanation see: + // http://docs.ansible.com/ansible-tower/latest/html/userguide/job_templates.html#optional-survey-questions + // + case "text": + case "textarea": + if (scope.survey_questions[i].min === 0) { + job_launch_data.extra_vars[fld] = ""; + } + break; + + // for optional select lists, if they are left blank make sure we submit + // a value that the API will consider "empty" + // + case "multiplechoice": + job_launch_data.extra_vars[fld] = ""; + break; + case "multiselect": + job_launch_data.extra_vars[fld] = []; + break; + } } } } @@ -497,24 +519,24 @@ function($compile, Rest, GetBasePath, TextareaResize,CreateDialog, GenerateForm, }; }]) - .factory('PromptForSurvey', ['$filter', '$compile', 'Wait', 'Alert', 'CredentialForm', 'CreateLaunchDialog', 'SurveyControllerInit' , 'GetBasePath', 'Rest' , 'Empty', - 'GenerateForm', 'ShowSurveyModal', 'ProcessErrors', '$routeParams' , - function($filter, $compile, Wait, Alert, CredentialForm, CreateLaunchDialog, SurveyControllerInit, GetBasePath, Rest, Empty, - GenerateForm, ShowSurveyModal, ProcessErrors, $routeParams) { + .factory('PromptForSurvey', ['$filter', '$compile', 'Wait', 'Alert', 'CredentialForm', 'CreateLaunchDialog', 'GetBasePath', 'Rest' , 'Empty', + 'GenerateForm', 'ProcessErrors', '$routeParams' , + function($filter, $compile, Wait, Alert, CredentialForm, CreateLaunchDialog, GetBasePath, Rest, Empty, + GenerateForm, ProcessErrors, $routeParams) { return function(params) { var html = params.html || "", id= params.id, url = params.url, callback=params.callback, scope = params.scope, - i, j, + i, requiredAsterisk, requiredClasses, defaultValue, choices, element, minlength, maxlength, - checked, min, max, + min, max, survey_url = GetBasePath('job_templates') + id + '/survey_spec/' ; //for toggling the input on password inputs @@ -605,41 +627,35 @@ function($compile, Rest, GetBasePath, TextareaResize,CreateDialog, GenerateForm, if(question.type === 'multiplechoice'){ choices = question.choices.split(/\n/); element = (question.type==="multiselect") ? "checkbox" : 'radio'; - question.default = (question.default) ? question.default : (question.default_multiselect) ? question.default_multiselect : "" ; - html+='
      '; - for( j = 0; j' + - ''+choices[j] +'
      ' ; + + if (question.default) { + scope[question.variable] = question.default; + } else { + scope[question.variable] = ''; } - html+= '
      Please select an answer.
      '+ - '
      '; + + html+='
      '; + html += ''; + // html+= '
      Please select an answer.
      '+ + // '
      '; html+= '
      '; //end survey_taker_input } if(question.type === "multiselect"){ //seperate the choices out into an array choices = question.choices.split(/\n/); - question.default = (question.default) ? question.default : (question.default_multiselect) ? question.default_multiselect : "" ; //ensure that the default answers are in an array - scope[question.variable] = question.default.split(/\n/); - //create a new object to be used by the surveyCheckboxes directive - scope[question.variable + '_object'] = { - name: question.variable, - value: (question.default.split(/\n/)[0]==="") ? [] : question.default.split(/\n/) , - required: question.required, - options:[] - }; - //load the options into the 'options' key of the new object - for(j=0; j'+ - '{{job_launch_form.'+question.variable+'_object.$error.checkbox}}'+ - '
      Please select at least one answer.
      '; + //create a new object to be used by the surveyCheckboxes directive + html += ''; + // html += ''+ + // '{{job_launch_form.'+question.variable+'_object.$error.checkbox}}'+ + // '
      Please select at least one answer.
      '; } if(question.type === 'integer'){ diff --git a/awx/ui/static/js/helpers/JobTemplates.js b/awx/ui/client/src/helpers/JobTemplates.js similarity index 100% rename from awx/ui/static/js/helpers/JobTemplates.js rename to awx/ui/client/src/helpers/JobTemplates.js diff --git a/awx/ui/static/js/helpers/Jobs.js b/awx/ui/client/src/helpers/Jobs.js similarity index 99% rename from awx/ui/static/js/helpers/Jobs.js rename to awx/ui/client/src/helpers/Jobs.js index 0c74d5f7fb..dac06e03c6 100644 --- a/awx/ui/static/js/helpers/Jobs.js +++ b/awx/ui/client/src/helpers/Jobs.js @@ -3,14 +3,14 @@ * * All Rights Reserved *************************************************/ - + /** * @ngdoc function * @name helpers.function:Jobs * @description routines shared by job related controllers */ -import listGenerator from 'tower/shared/list-generator/main'; +import listGenerator from '../shared/list-generator/main'; export default angular.module('JobsHelper', ['Utilities', 'RestServices', 'FormGenerator', 'JobSummaryDefinition', 'InventoryHelper', 'GeneratorHelpers', diff --git a/awx/ui/static/js/helpers/License.js b/awx/ui/client/src/helpers/License.js similarity index 78% rename from awx/ui/static/js/helpers/License.js rename to awx/ui/client/src/helpers/License.js index 25444dacc0..fd7314e7af 100644 --- a/awx/ui/static/js/helpers/License.js +++ b/awx/ui/client/src/helpers/License.js @@ -16,19 +16,20 @@ * */ -import 'tower/forms'; +import '../forms'; export default angular.module('LicenseHelper', ['RestServices', 'Utilities', 'LicenseUpdateFormDefinition', - 'FormGenerator', 'ParseHelper', 'ModalDialog', 'VariablesHelper', 'LicenseFormDefinition', - 'AccessHelper']) + 'FormGenerator', 'ParseHelper', 'ModalDialog', 'VariablesHelper', 'LicenseFormDefinition']) - .factory('CheckLicense', ['$rootScope', '$compile', 'CreateDialog', 'Store', + .factory('CheckLicense', ['$q', '$rootScope', '$compile', 'CreateDialog', 'Store', 'LicenseUpdateForm', 'GenerateForm', 'TextareaResize', 'ToJSON', 'GetBasePath', - 'Rest', 'ProcessErrors', 'Alert', 'IsAdmin', '$location', - function($rootScope, $compile, CreateDialog, Store, LicenseUpdateForm, GenerateForm, - TextareaResize, ToJSON, GetBasePath, Rest, ProcessErrors, Alert, IsAdmin, $location) { + 'Rest', 'ProcessErrors', 'Alert', 'IsAdmin', '$location', 'pendoService', + 'Authorization', 'Wait', + function($q, $rootScope, $compile, CreateDialog, Store, LicenseUpdateForm, GenerateForm, + TextareaResize, ToJSON, GetBasePath, Rest, ProcessErrors, Alert, IsAdmin, $location, + pendoService, Authorization, Wait) { return { getRemainingDays: function(time_remaining) { // assumes time_remaining will be in seconds @@ -165,21 +166,32 @@ export default if (typeof json_data === 'object' && Object.keys(json_data).length > 0) { Rest.setUrl(url); Rest.post(json_data) - .success(function () { - try { - $('#license-modal-dialog').dialog('close'); - } - catch(e) { - // ignore - } + .success(function (response) { + response.license_info = response; Alert('License Accepted', 'The Ansible Tower license was updated. To review or update the license, choose View License from the Setup menu.','alert-info'); $rootScope.features = undefined; - $location.path('/home'); + + Authorization.getLicense() + .success(function (data) { + Authorization.setLicense(data); + pendoService.issuePendoIdentity(); + Wait("stop"); + $location.path('/home'); + }) + .error(function () { + Wait('stop'); + Alert('Error', 'Failed to access license information. GET returned status: ' + status, 'alert-danger', + $location.path('/logout')); + }); + + + + }) - .error(function (data, status) { + .catch(function (response) { scope.license_json_api_error = "A valid license key in JSON format is required"; - ProcessErrors(scope, data, status, null, { hdr: 'Error!', - msg: 'Failed to update license. POST returned: ' + status + ProcessErrors(scope, response.data, response.status, null, { hdr: 'Error!', + msg: 'Failed to update license. POST returned: ' + response.status }); }); } else { @@ -189,27 +201,49 @@ export default test: function() { var license = Store('license'), - notify = this.shouldNotify(license), self = this, scope; - self.scope = $rootScope.$new(); - scope = self.scope; + var getLicense = function() { + var deferred = $q.defer(); - if (license && typeof license === 'object' && Object.keys(license).length > 0) { - if (license.tested) { - return true; + if (license === null) { + Rest.setUrl(GetBasePath('config')); + return Rest.get() + .then(function (data) { + license = data.data.license_info; + deferred.resolve(); + return deferred.promise; + }, function () { + deferred.resolve(); + return deferred.promise; + }); + } else { + deferred.resolve(license); + return deferred.promise; } - license.tested = true; - Store('license',license); //update with tested flag } - // Don't do anything when the license is valid - if (!notify) { - return true; // if the license is valid it would exit 'test' here, otherwise it moves on to making the modal for the license - } + var promise = getLicense(); + promise.then(function() { + self.scope = $rootScope.$new(); + scope = self.scope; - $location.path('/license'); + if (license && typeof license === 'object' && Object.keys(license).length > 0) { + if (license.tested) { + return true; + } + license.tested = true; + Store('license',license); //update with tested flag + } + + // Don't do anything when the license is valid + if (!self.shouldNotify(license)) { + return true; // if the license is valid it would exit 'test' here, otherwise it moves on to making the modal for the license + } + + $location.path('/license'); + }); }, GetLicense: function(callback, inScope) { diff --git a/awx/ui/client/src/helpers/LoadConfig.js b/awx/ui/client/src/helpers/LoadConfig.js new file mode 100644 index 0000000000..ac3d1d54ac --- /dev/null +++ b/awx/ui/client/src/helpers/LoadConfig.js @@ -0,0 +1,82 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + + /** + * @ngdoc function + * @name helpers.function:LoadConfig + * @description Attempts to load local_config.js. If not found, loads config.js. Then evaluates the loaded + * javascript, putting the result in $AnsibleConfig. + * LoadConfigHelper + * + * + * + */ + +/*jshint evil:true */ + + + +export default +angular.module('LoadConfigHelper', ['Utilities']) + +.factory('LoadConfig', ['$log', '$rootScope', '$http', '$location', + 'ProcessErrors', 'Store', + function($log, $rootScope, $http, $location, ProcessErrors, Store) { + return function() { + + if ($rootScope.removeLoadConfig) { + $rootScope.removeLoadConfig(); + } + $rootScope.removeLoadConfig = $rootScope.$on('LoadConfig', function() { + $rootScope.enteredPath = $location.path(); + // Load js/local_settings.json + $http({ method:'GET', url: $basePath + 'local_settings.json' }) + .then(function(response) { + $log.info('loaded local_settings.json'); + if(angular.isObject(response.data)){ + $AnsibleConfig = _.extend($AnsibleConfig, response.data); + Store('AnsibleConfig', $AnsibleConfig); + if ($rootScope.loginConfig) { + $rootScope.loginConfig.resolve('config loaded'); + } + $rootScope.$emit('ConfigReady'); + } + else { + $log.info('local_settings.json is not a valid object'); + if ($rootScope.loginConfig) { + $rootScope.loginConfig.resolve('config loaded'); + } + $rootScope.$emit('ConfigReady'); + } + + }, function() { + //local_settings.json not found + $log.info('local_settings.json not found'); + if ($rootScope.loginConfig) { + $rootScope.loginConfig.resolve('config loaded'); + } + $rootScope.$emit('ConfigReady'); + }); + }); + + + // load config.js + $log.info('attempting to load config.js'); + $http({ method:'GET', url: $basePath + 'config.js' }) + .then(function(response) { + $log.info('loaded config.js'); + $AnsibleConfig = eval(response.data); + Store('AnsibleConfig', $AnsibleConfig); + $rootScope.$emit('LoadConfig'); + }) + .catch(function(response) { + response.data = 'Failed to load ' + $basePath + '/config.js'; + ProcessErrors($rootScope, response, response.status, null, { hdr: 'Error!', + msg: 'Failed to load ' + $basePath + '/config.js.' + }); + }); + }; +}]); diff --git a/awx/ui/static/js/helpers/LogViewer.js b/awx/ui/client/src/helpers/LogViewer.js similarity index 96% rename from awx/ui/static/js/helpers/LogViewer.js rename to awx/ui/client/src/helpers/LogViewer.js index 83261c764b..90e9a3f407 100644 --- a/awx/ui/static/js/helpers/LogViewer.js +++ b/awx/ui/client/src/helpers/LogViewer.js @@ -3,12 +3,12 @@ * * All Rights Reserved *************************************************/ - - /** - * @ngdoc function - * @name helpers.function:LogViewer - * @description logviewer - */ + + /** + * @ngdoc function + * @name helpers.function:LogViewer + * @description logviewer +*/ export default angular.module('LogViewerHelper', ['ModalDialog', 'Utilities', 'FormGenerator', 'VariablesHelper']) @@ -359,13 +359,13 @@ export default }; }]) - .factory('AddPreFormattedText', [function() { + .factory('AddPreFormattedText', ['$rootScope', function($rootScope) { return function(params) { var id = params.id, val = params.val, html = ""; if (params.standardOut) { - html += 'Download'; + html += 'Download'; html += "
      " + val + "
      \n"; } else { html += "
      " + val + "
      \n"; diff --git a/awx/ui/static/js/helpers/Lookup.js b/awx/ui/client/src/helpers/Lookup.js similarity index 97% rename from awx/ui/static/js/helpers/Lookup.js rename to awx/ui/client/src/helpers/Lookup.js index ce2b7ba1fd..0b92d43d75 100644 --- a/awx/ui/static/js/helpers/Lookup.js +++ b/awx/ui/client/src/helpers/Lookup.js @@ -3,7 +3,7 @@ * * All Rights Reserved *************************************************/ - + /** * @ngdoc function @@ -22,7 +22,7 @@ * }) */ -import listGenerator from 'tower/shared/list-generator/main'; +import listGenerator from '../shared/list-generator/main'; export default angular.module('LookUpHelper', ['RestServices', 'Utilities', 'SearchHelper', 'PaginationHelpers', listGenerator.name, 'ApiLoader', 'ModalDialog']) @@ -244,7 +244,7 @@ export default scope.selectAction = function () { var i, found = false; for (i = 0; i < scope[list.name].length; i++) { - if (scope[list.name][i].checked === '1' || scope[list.name][i].checked===1) { + if (scope[list.name][i].checked === '1' || scope[list.name][i].checked===1 || scope[list.name][i].checked === true) { found = true; parent_scope[field] = scope[list.name][i].id; if (parent_scope[form.name + '_form'] && form.fields[field] && form.fields[field].sourceModel) { @@ -277,22 +277,21 @@ export default var count = 0; scope[list.name].forEach( function(row, i) { if (row.id === id) { - if (row.checked === '0') { - scope[list.name][i].checked = '1'; + if (row.checked) { scope[list.name][i].success_class = 'success'; } else { - scope[list.name][i].checked = '0'; + row.checked = true; scope[list.name][i].success_class = ''; } } else { - scope[list.name][i].checked = '0'; + scope[list.name][i].checked = 0; scope[list.name][i].success_class = ''; } }); // Check if any rows are checked scope[list.name].forEach(function(row) { - if (row.checked === '1') { + if (row.checked) { count++; } }); diff --git a/awx/ui/static/js/helpers/PaginationHelpers.js b/awx/ui/client/src/helpers/PaginationHelpers.js similarity index 97% rename from awx/ui/static/js/helpers/PaginationHelpers.js rename to awx/ui/client/src/helpers/PaginationHelpers.js index 1f35ad70ae..652e17c7f2 100644 --- a/awx/ui/static/js/helpers/PaginationHelpers.js +++ b/awx/ui/client/src/helpers/PaginationHelpers.js @@ -3,7 +3,7 @@ * * All Rights Reserved *************************************************/ - + /** * @ngdoc function * @name helpers.function:PaginationHelpers @@ -28,7 +28,7 @@ export default scope[iterator + '_num_pages'] = Math.ceil((count / scope[iterator + '_page_size'])); scope[iterator + '_num_pages'] = (scope[iterator + '_num_pages'] <= 0) ? 1 : scope[iterator + '_num_pages']; scope[iterator + '_total_rows'] = count; - $('#pagination-links li:eq(1)').removeAttr('class'); + $('#'+iterator+'-pagination #pagination-links li:eq(1)').removeAttr('class'); // Which page are we on? if (Empty(next) && previous) { // no next page, but there is a previous page @@ -36,7 +36,7 @@ export default } else if (next && Empty(previous)) { // next page available, but no previous page scope[iterator + '_page'] = 1; - $('#pagination-links li:eq(1)').attr('class', 'disabled'); + $('#'+iterator+'-pagination #pagination-links li:eq(1)').attr('class', 'disabled'); } else if (next && previous) { // we're in between next and previous scope[iterator + '_page'] = parseInt(previous.match(/page=\d+/)[0].replace(/page=/, '')) + 1; diff --git a/awx/ui/static/js/helpers/Parse.js b/awx/ui/client/src/helpers/Parse.js similarity index 100% rename from awx/ui/static/js/helpers/Parse.js rename to awx/ui/client/src/helpers/Parse.js diff --git a/awx/ui/static/js/helpers/ProjectPath.js b/awx/ui/client/src/helpers/ProjectPath.js similarity index 100% rename from awx/ui/static/js/helpers/ProjectPath.js rename to awx/ui/client/src/helpers/ProjectPath.js diff --git a/awx/ui/static/js/helpers/Projects.js b/awx/ui/client/src/helpers/Projects.js similarity index 100% rename from awx/ui/static/js/helpers/Projects.js rename to awx/ui/client/src/helpers/Projects.js diff --git a/awx/ui/static/js/helpers/Schedules.js b/awx/ui/client/src/helpers/Schedules.js similarity index 81% rename from awx/ui/static/js/helpers/Schedules.js rename to awx/ui/client/src/helpers/Schedules.js index 6ca31f5ddd..05aba42be6 100644 --- a/awx/ui/static/js/helpers/Schedules.js +++ b/awx/ui/client/src/helpers/Schedules.js @@ -14,7 +14,7 @@ * */ -import listGenerator from 'tower/shared/list-generator/main'; +import listGenerator from '../shared/list-generator/main'; export default angular.module('SchedulesHelper', [ 'Utilities', 'RestServices', 'SchedulesHelper', 'SearchHelper', 'PaginationHelpers', listGenerator.name, 'ModalDialog', @@ -75,8 +75,10 @@ export default }; }]) - .factory('EditSchedule', ['SchedulerInit', 'ShowSchedulerModal', 'Wait', 'Rest', 'ProcessErrors', 'GetBasePath', 'SchedulePost', - function(SchedulerInit, ShowSchedulerModal, Wait, Rest, ProcessErrors, GetBasePath, SchedulePost) { + .factory('EditSchedule', ['SchedulerInit', 'ShowSchedulerModal', 'Wait', + 'Rest', 'ProcessErrors', 'GetBasePath', 'SchedulePost', + function(SchedulerInit, ShowSchedulerModal, Wait, Rest, ProcessErrors, + GetBasePath, SchedulePost) { return function(params) { var scope = params.scope, id = params.id, @@ -84,6 +86,63 @@ export default schedule, scheduler, url = GetBasePath('schedules') + id + '/'; + delete scope.isFactCleanup; + delete scope.cleanupJob; + + function setGranularity(){ + var a,b, prompt_for_days, + keep_unit, + granularity, + granularity_keep_unit; + + if(scope.cleanupJob){ + scope.schedulerPurgeDays = Number(schedule.extra_data.days); + // scope.scheduler_form.schedulerPurgeDays.$setViewValue( Number(schedule.extra_data.days)); + } + else if(scope.isFactCleanup){ + scope.keep_unit_choices = [{ + "label" : "Days", + "value" : "d" + }, + { + "label": "Weeks", + "value" : "w" + }, + { + "label" : "Years", + "value" : "y" + }]; + scope.granularity_keep_unit_choices = [{ + "label" : "Days", + "value" : "d" + }, + { + "label": "Weeks", + "value" : "w" + }, + { + "label" : "Years", + "value" : "y" + }]; + // the API returns something like 20w or 1y + a = schedule.extra_data.older_than; // "20y" + b = schedule.extra_data.granularity; // "1w" + prompt_for_days = Number(_.initial(a,1).join('')); // 20 + keep_unit = _.last(a); // "y" + granularity = Number(_.initial(b,1).join('')); // 1 + granularity_keep_unit = _.last(b); // "w" + + scope.keep_amount = prompt_for_days; + scope.granularity_keep_amount = granularity; + scope.keep_unit = _.find(scope.keep_unit_choices, function(i){ + return i.value === keep_unit; + }); + scope.granularity_keep_unit =_.find(scope.granularity_keep_unit_choices, function(i){ + return i.value === granularity_keep_unit; + }); + } + } + if (scope.removeDialogReady) { scope.removeDialogReady(); } @@ -94,6 +153,10 @@ export default scope.$apply(function() { scheduler.setRRule(schedule.rrule); scheduler.setName(schedule.name); + if(scope.isFactCleanup || scope.cleanupJob){ + setGranularity(); + } + }); }, 300); }); @@ -112,7 +175,6 @@ export default } schedule.rrule = schedule.rrule.replace(/ RRULE:/,';'); schedule.rrule = schedule.rrule.replace(/DTSTART:/,'DTSTART='); - ShowSchedulerModal({ scope: scope, callback: 'DialogReady', title: 'Edit Schedule' }); scope.showRRuleDetail = false; }); @@ -141,6 +203,8 @@ export default }); }; + + $('#scheduler-tabs li a').on('shown.bs.tab', function(e) { if ($(e.target).text() === 'Details') { if (!scheduler.isValid()) { @@ -156,6 +220,13 @@ export default Rest.get() .success(function(data) { schedule = data; + if(schedule.extra_data.hasOwnProperty('granularity')){ + scope.isFactCleanup = true; + } + if (schedule.extra_data.hasOwnProperty('days')){ + scope.cleanupJob = true; + } + scope.$emit('ScheduleFound'); }) .error(function(data,status){ @@ -181,6 +252,43 @@ export default else if (!Empty($routeParams.id)) { url += $routeParams.id + '/schedules/'; } + else if (!Empty($routeParams.management_job)) { + url += $routeParams.management_job + '/schedules/'; + if(scope.management_job.id === 4){ + scope.isFactCleanup = true; + scope.keep_unit_choices = [{ + "label" : "Days", + "value" : "d" + }, + { + "label": "Weeks", + "value" : "w" + }, + { + "label" : "Years", + "value" : "y" + }]; + scope.granularity_keep_unit_choices = [{ + "label" : "Days", + "value" : "d" + }, + { + "label": "Weeks", + "value" : "w" + }, + { + "label" : "Years", + "value" : "y" + }]; + scope.prompt_for_days_facts_form.keep_amount.$setViewValue(30); + scope.prompt_for_days_facts_form.granularity_keep_amount.$setViewValue(1); + scope.keep_unit = scope.keep_unit_choices[0]; + scope.granularity_keep_unit = scope.granularity_keep_unit_choices[1]; + } + else { + scope.cleanupJob = true; + } + } if (scope.removeDialogReady) { scope.removeDialogReady(); @@ -239,7 +347,7 @@ export default mode = params.mode, schedule = (params.schedule) ? params.schedule : {}, callback = params.callback, - newSchedule, rrule; + newSchedule, rrule, extra_vars; if (scheduler.isValid()) { Wait('start'); @@ -248,6 +356,20 @@ export default schedule.name = newSchedule.name; schedule.rrule = RRuleToAPI(rrule.toString()); schedule.description = (/error/.test(rrule.toText())) ? '' : rrule.toText(); + + if (scope.isFactCleanup) { + extra_vars = { + "older_than": scope.scheduler_form.keep_amount.$viewValue + scope.scheduler_form.keep_unit.$viewValue.value, + "granularity": scope.scheduler_form.granularity_keep_amount.$viewValue + scope.scheduler_form.granularity_keep_unit.$viewValue.value + }; + } else if (scope.cleanupJob) { + extra_vars = { + "days" : scope.scheduler_form.schedulerPurgeDays.$viewValue + }; + } + schedule.extra_data = JSON.stringify(extra_vars); + + Rest.setUrl(url); if (mode === 'add') { Rest.post(schedule) @@ -442,8 +564,10 @@ export default }]) - .factory('SchedulesControllerInit', ['$location', 'ToggleSchedule', 'DeleteSchedule', 'EditSchedule', 'AddSchedule', - function($location, ToggleSchedule, DeleteSchedule, EditSchedule, AddSchedule) { + .factory('SchedulesControllerInit', ['$location', 'ToggleSchedule', + 'DeleteSchedule', 'EditSchedule', 'AddSchedule', + function($location, ToggleSchedule, DeleteSchedule, EditSchedule, + AddSchedule) { return function(params) { var scope = params.scope, parent_scope = params.parent_scope, diff --git a/awx/ui/static/js/helpers/Selection.js b/awx/ui/client/src/helpers/Selection.js similarity index 94% rename from awx/ui/static/js/helpers/Selection.js rename to awx/ui/client/src/helpers/Selection.js index b45d1e4ee2..3fa4fa826b 100644 --- a/awx/ui/static/js/helpers/Selection.js +++ b/awx/ui/client/src/helpers/Selection.js @@ -45,9 +45,8 @@ export default var i, j, found; for (i = 0; i < scope[list.name].length; i++) { if (scope[list.name][i].id === id) { - if ((scope[list.name][i].checked === "0" && !ischeckbox) || (scope[list.name][i].checked === "0" && ischeckbox)) { - // select the row - scope[list.name][i].checked = '1'; + var control = scope[list.name][i]; + if (ischeckbox && control.checked) { scope[list.name][i].success_class = 'success'; // add selected object to the array found = false; @@ -60,9 +59,7 @@ export default if (!found) { selected.push(scope[list.name][i]); } - } else { - // unselect the row - scope[list.name][i].checked = '0'; + } else if (ischeckbox) { scope[list.name][i].success_class = ''; // remove selected object from the array diff --git a/awx/ui/static/js/helpers/SocketHelper.js b/awx/ui/client/src/helpers/SocketHelper.js similarity index 100% rename from awx/ui/static/js/helpers/SocketHelper.js rename to awx/ui/client/src/helpers/SocketHelper.js diff --git a/awx/ui/static/js/helpers/Users.js b/awx/ui/client/src/helpers/Users.js similarity index 100% rename from awx/ui/static/js/helpers/Users.js rename to awx/ui/client/src/helpers/Users.js diff --git a/awx/ui/static/js/helpers/Variables.js b/awx/ui/client/src/helpers/Variables.js similarity index 100% rename from awx/ui/static/js/helpers/Variables.js rename to awx/ui/client/src/helpers/Variables.js diff --git a/awx/ui/static/js/helpers/api-defaults.js b/awx/ui/client/src/helpers/api-defaults.js similarity index 100% rename from awx/ui/static/js/helpers/api-defaults.js rename to awx/ui/client/src/helpers/api-defaults.js diff --git a/awx/ui/static/js/helpers/inventory.js b/awx/ui/client/src/helpers/inventory.js similarity index 98% rename from awx/ui/static/js/helpers/inventory.js rename to awx/ui/client/src/helpers/inventory.js index 4f574d5eef..87a80f27e7 100644 --- a/awx/ui/static/js/helpers/inventory.js +++ b/awx/ui/client/src/helpers/inventory.js @@ -3,7 +3,7 @@ * * All Rights Reserved *************************************************/ - + /** * @ngdoc function * @name helpers.function:Inventory @@ -13,10 +13,10 @@ * (controllers/Inventories.js) */ -import listGenerator from 'tower/shared/list-generator/main'; +import listGenerator from '../shared/list-generator/main'; export default - angular.module('InventoryHelper', ['RestServices', 'Utilities', 'OrganizationListDefinition', listGenerator.name, 'AuthService', + angular.module('InventoryHelper', ['RestServices', 'Utilities', 'OrganizationListDefinition', listGenerator.name, 'InventoryHelper', 'InventoryFormDefinition', 'ParseHelper', 'SearchHelper', 'VariablesHelper', ]) diff --git a/awx/ui/static/js/helpers/md5.js b/awx/ui/client/src/helpers/md5.js similarity index 95% rename from awx/ui/static/js/helpers/md5.js rename to awx/ui/client/src/helpers/md5.js index fc87c3e66d..1334367309 100644 --- a/awx/ui/static/js/helpers/md5.js +++ b/awx/ui/client/src/helpers/md5.js @@ -34,7 +34,7 @@ export default }; scope.toggleCallback = function (fld) { - if (scope.allow_callbacks === 'false') { + if (scope.allow_callbacks === false) { scope[fld] = ''; } }; diff --git a/awx/ui/static/js/helpers/refresh-related.js b/awx/ui/client/src/helpers/refresh-related.js similarity index 100% rename from awx/ui/static/js/helpers/refresh-related.js rename to awx/ui/client/src/helpers/refresh-related.js diff --git a/awx/ui/static/js/helpers/refresh.js b/awx/ui/client/src/helpers/refresh.js similarity index 100% rename from awx/ui/static/js/helpers/refresh.js rename to awx/ui/client/src/helpers/refresh.js diff --git a/awx/ui/static/js/helpers/related-search.js b/awx/ui/client/src/helpers/related-search.js similarity index 100% rename from awx/ui/static/js/helpers/related-search.js rename to awx/ui/client/src/helpers/related-search.js diff --git a/awx/ui/static/js/helpers/search.js b/awx/ui/client/src/helpers/search.js similarity index 100% rename from awx/ui/static/js/helpers/search.js rename to awx/ui/client/src/helpers/search.js diff --git a/awx/ui/static/js/helpers/teams.js b/awx/ui/client/src/helpers/teams.js similarity index 98% rename from awx/ui/static/js/helpers/teams.js rename to awx/ui/client/src/helpers/teams.js index 2d7e0a05ab..3c3094ed76 100644 --- a/awx/ui/static/js/helpers/teams.js +++ b/awx/ui/client/src/helpers/teams.js @@ -12,7 +12,7 @@ * Routines shared amongst the team controllers */ -import listGenerator from 'tower/shared/list-generator/main'; +import listGenerator from '../shared/list-generator/main'; export default angular.module('TeamHelper', ['RestServices', 'Utilities', 'OrganizationListDefinition', 'SearchHelper', diff --git a/awx/ui/client/src/inventory-scripts/add/add.controller.js b/awx/ui/client/src/inventory-scripts/add/add.controller.js new file mode 100644 index 0000000000..29f431726a --- /dev/null +++ b/awx/ui/client/src/inventory-scripts/add/add.controller.js @@ -0,0 +1,67 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + +export default + [ '$compile','SchedulerInit', 'Rest', 'Wait', + 'inventoryScriptsFormObject', 'ProcessErrors', 'GetBasePath', 'Empty', + 'GenerateForm', 'SearchInit' , 'PaginateInit', + 'LookUpInit', 'OrganizationList', '$scope', 'transitionTo', + function( + $compile, SchedulerInit, Rest, Wait, + inventoryScriptsFormObject, ProcessErrors, GetBasePath, Empty, + GenerateForm, SearchInit, PaginateInit, + LookUpInit, OrganizationList, $scope, transitionTo + ) { + var scope = $scope, + generator = GenerateForm, + form = inventoryScriptsFormObject, + url = GetBasePath('inventory_scripts'); + + generator.inject(form, { + mode: 'add' , + scope:scope, + related: false + }); + generator.reset(); + + LookUpInit({ + url: GetBasePath('organization'), + scope: scope, + form: form, + list: OrganizationList, + field: 'organization', + input_type: 'radio' + }); + + // Save + scope.formSave = function () { + generator.clearApiErrors(); + Wait('start'); + Rest.setUrl(url); + Rest.post({ + name: scope.name, + description: scope.description, + organization: scope.organization, + script: scope.script + }) + .success(function () { + transitionTo('inventoryScriptsList'); + Wait('stop'); + + }) + .error(function (data, status) { + ProcessErrors(scope, data, status, form, { hdr: 'Error!', + msg: 'Failed to add new inventory script. POST returned status: ' + status }); + }); + }; + + // Cancel + scope.formReset = function () { + generator.reset(); + }; + + } + ]; diff --git a/awx/ui/client/src/inventory-scripts/add/add.partial.html b/awx/ui/client/src/inventory-scripts/add/add.partial.html new file mode 100644 index 0000000000..a9e7a04b9b --- /dev/null +++ b/awx/ui/client/src/inventory-scripts/add/add.partial.html @@ -0,0 +1,12 @@ + + + + + + + +
      +
      +
      diff --git a/awx/ui/client/src/inventory-scripts/add/add.route.js b/awx/ui/client/src/inventory-scripts/add/add.route.js new file mode 100644 index 0000000000..c9a7703fcb --- /dev/null +++ b/awx/ui/client/src/inventory-scripts/add/add.route.js @@ -0,0 +1,19 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + +import {templateUrl} from '../../shared/template-url/template-url.factory'; + +export default { + name: 'inventoryScriptsAdd', + route: '/inventory_scripts/add', + templateUrl: templateUrl('inventory-scripts/add/add'), + controller: 'inventoryScriptsAddController', + resolve: { + features: ['FeaturesService', function(FeaturesService) { + return FeaturesService.get(); + }] + } +}; diff --git a/awx/ui/client/src/inventory-scripts/add/main.js b/awx/ui/client/src/inventory-scripts/add/main.js new file mode 100644 index 0000000000..3e5090566d --- /dev/null +++ b/awx/ui/client/src/inventory-scripts/add/main.js @@ -0,0 +1,17 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + +import route from './add.route'; +import controller from './add.controller'; + +export default + angular.module('inventoryScriptsAdd', []) + .controller('inventoryScriptsAddController', controller) + .config(['$routeProvider', function($routeProvider) { + var url = route.route; + delete route.route; + $routeProvider.when(url, route); + }]); diff --git a/awx/ui/client/src/inventory-scripts/edit/edit.controller.js b/awx/ui/client/src/inventory-scripts/edit/edit.controller.js new file mode 100644 index 0000000000..0d2d2c52ed --- /dev/null +++ b/awx/ui/client/src/inventory-scripts/edit/edit.controller.js @@ -0,0 +1,103 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + +export default + [ 'Rest', 'Wait', + 'inventoryScriptsFormObject', 'ProcessErrors', 'GetBasePath', + 'GenerateForm', 'SearchInit' , 'PaginateInit', + 'LookUpInit', 'OrganizationList', 'inventory_script', + '$scope', 'transitionTo', + function( + Rest, Wait, + inventoryScriptsFormObject, ProcessErrors, GetBasePath, + GenerateForm, SearchInit, PaginateInit, + LookUpInit, OrganizationList, inventory_script, + $scope, transitionTo + ) { + var generator = GenerateForm, + id = inventory_script.id, + form = inventoryScriptsFormObject, + master = {}, + url = GetBasePath('inventory_scripts'); + + $scope.inventory_script = inventory_script; + generator.inject(form, { + mode: 'edit' , + scope:$scope, + breadCrumbs: true, + related: false, + activityStream: false + }); + generator.reset(); + LookUpInit({ + url: GetBasePath('organization'), + scope: $scope, + form: form, + // hdr: "Select Custom Inventory", + list: OrganizationList, + field: 'organization', + input_type: 'radio' + }); + + // Retrieve detail record and prepopulate the form + Wait('start'); + Rest.setUrl(url + id+'/'); + Rest.get() + .success(function (data) { + var fld; + for (fld in form.fields) { + if (data[fld]) { + $scope[fld] = data[fld]; + master[fld] = data[fld]; + } + + if (form.fields[fld].sourceModel && data.summary_fields && + data.summary_fields[form.fields[fld].sourceModel]) { + $scope[form.fields[fld].sourceModel + '_' + form.fields[fld].sourceField] = + data.summary_fields[form.fields[fld].sourceModel][form.fields[fld].sourceField]; + master[form.fields[fld].sourceModel + '_' + form.fields[fld].sourceField] = + data.summary_fields[form.fields[fld].sourceModel][form.fields[fld].sourceField]; + } + } + Wait('stop'); + }) + .error(function (data, status) { + ProcessErrors($scope, data, status, form, { hdr: 'Error!', + msg: 'Failed to retrieve inventory script: ' + id + '. GET status: ' + status }); + }); + + $scope.formSave = function () { + generator.clearApiErrors(); + Wait('start'); + Rest.setUrl(url+ id+'/'); + Rest.put({ + name: $scope.name, + description: $scope.description, + organization: $scope.organization, + script: $scope.script + }) + .success(function () { + transitionTo('inventoryScriptsList'); + Wait('stop'); + + }) + .error(function (data, status) { + ProcessErrors($scope, data, status, form, { hdr: 'Error!', + msg: 'Failed to add new inventory script. PUT returned status: ' + status }); + }); + }; + + $scope.formReset = function () { + generator.reset(); + for (var fld in master) { + $scope[fld] = master[fld]; + } + $scope.organization_name = master.organization_name; + + }; + + } + ]; diff --git a/awx/ui/client/src/inventory-scripts/edit/edit.partial.html b/awx/ui/client/src/inventory-scripts/edit/edit.partial.html new file mode 100644 index 0000000000..854bcf4fad --- /dev/null +++ b/awx/ui/client/src/inventory-scripts/edit/edit.partial.html @@ -0,0 +1,9 @@ + + + + + + +
      +
      +
      diff --git a/awx/ui/client/src/inventory-scripts/edit/edit.route.js b/awx/ui/client/src/inventory-scripts/edit/edit.route.js new file mode 100644 index 0000000000..2f0d9cf2e3 --- /dev/null +++ b/awx/ui/client/src/inventory-scripts/edit/edit.route.js @@ -0,0 +1,46 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + +import {templateUrl} from '../../shared/template-url/template-url.factory'; + +export default { + name: 'inventoryScriptsEdit', + route: '/inventory_scripts/:inventory_script', + templateUrl: templateUrl('inventory-scripts/edit/edit'), + controller: 'inventoryScriptsEditController', + resolve: { + features: ['FeaturesService', function(FeaturesService) { + return FeaturesService.get(); + }], + inventory_script: + [ '$route', + '$q', + 'Rest', + 'GetBasePath', + 'ProcessErrors', + function($route, $q, rest, getBasePath, ProcessErrors) { + if ($route.current.hasModelKey('inventory_script')) { + return $q.when($route.current.params.model.inventory_script); + } + + var inventoryScriptId = $route.current.params.inventory_script; + + var url = getBasePath('inventory_scripts') + inventoryScriptId + '/'; + rest.setUrl(url); + return rest.get() + .then(function(data) { + return data.data; + }).catch(function (response) { + ProcessErrors(null, response.data, response.status, null, { + hdr: 'Error!', + msg: 'Failed to get inventory script info. GET returned status: ' + + response.status + }); + }); + } + ] + } +}; diff --git a/awx/ui/client/src/inventory-scripts/edit/main.js b/awx/ui/client/src/inventory-scripts/edit/main.js new file mode 100644 index 0000000000..17c4980986 --- /dev/null +++ b/awx/ui/client/src/inventory-scripts/edit/main.js @@ -0,0 +1,17 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + +import route from './edit.route'; +import controller from './edit.controller'; + +export default + angular.module('inventoryScriptsEdit', []) + .controller('inventoryScriptsEditController', controller) + .config(['$routeProvider', function($routeProvider) { + var url = route.route; + delete route.route; + $routeProvider.when(url, route); + }]); diff --git a/awx/ui/client/src/inventory-scripts/inventory-scripts.form.js b/awx/ui/client/src/inventory-scripts/inventory-scripts.form.js new file mode 100644 index 0000000000..f430dfe5d2 --- /dev/null +++ b/awx/ui/client/src/inventory-scripts/inventory-scripts.form.js @@ -0,0 +1,75 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + + /** + * @ngdoc function + * @name forms.function:CustomInventory + * @description This form is for adding/editing an organization +*/ + +export default function() { + return { + + // addTitle: 'Create Custom Inventory', + // editTitle: '{{ name }}', + // name: 'custom_inventory', + well: true, + showActions: true, + + fields: { + name: { + label: 'Name', + type: 'text', + addRequired: true, + editRequired: true, + capitalize: false + }, + description: { + label: 'Description', + type: 'text', + addRequired: false, + editRequired: false + }, + organization: { + label: 'Organization', + type: 'lookup', + awRequiredWhen: { + variable: "orgrequired", + init: true + }, + sourceModel: 'organization', + sourceField: 'name', + ngClick: 'lookUpOrganization()' + }, + script: { + label: 'Custom Script', + type: 'textarea', + hintText: "Drag and drop an inventory script on the field below", + addRequired: true, + editRequired: true, + awDropFile: true, + // 'class': 'ssh-key-field', + rows: 10, + awPopOver: "

      Drag and drop your custom inventory script file here or create one in the field to import your custom inventory. " + + "

      Script must begin with a hashbang sequence: i.e.... #!/usr/bin/env python

      ", + dataTitle: 'Custom Script', + dataPlacement: 'right', + dataContainer: "body" + }, + }, + + buttons: { //for now always generates '+ + ''+ + ''+ + '
      '+ + '
      '; + } + + if(question.type === 'integer'){ + min = (!Empty(question.min)) ? question.min : ""; + max = (!Empty(question.max)) ? question.max : "" ; + defaultValue = (!Empty(question.default)) ? question.default : (!Empty(question.default_int)) ? question.default_int : "" ; + html+='
      '+ + '
      '+ + ''+ + '
      '; + + } + if(question.type === "float"){ + min = (!Empty(question.min)) ? question.min : ""; + max = (!Empty(question.max)) ? question.max : "" ; + defaultValue = (!Empty(question.default)) ? question.default : (!Empty(question.default_float)) ? question.default_float : "" ; + html+='
      '+ + '
      '+ + ''+ + '
      '; + + } + html += '
      '; + html += ' '; + html += ' '; + html += ' '; + html += ' '; + html+='
      '; + + $('#question_'+question.index).append(html); + + element = angular.element(document.getElementById('question_'+question.index)); + // // element.html(html); + //element.css('opacity', 0.7); + + $compile(element)(scope); + + $('#add_question_btn').show(); + $('#add_question_btn').removeAttr('disabled'); + $('#add_question_btn').focus(); + $('#survey_maker_save_btn').removeAttr('disabled'); + + // Sometimes the $event.target returns the anchor element that wraps the icon, and sometimes the icon itself + // is returned. So for each icon click event we check to see which target the user clicked, and depending no which one + // they clicked, we move up the dom hierarchy to get the index on the question. Ultimatley the object that is passed to + // each one of these functions should be the index of the question that the user is trying to perform an action on. + $('#delete-question_'+question.index+'').on('click', function($event){ + if($event.target.nodeName==="A"){ + scope.deleteQuestion($event.target.parentElement.parentElement.id.split('_')[1]); + } + else if($event.target.nodeName === "I"){ + scope.deleteQuestion($event.target.parentElement.parentElement.parentElement.id.split('_')[1]); + } + }); + $('#edit-question_'+question.index+'').on('click', function($event){ + if($event.target.nodeName==="A"){ + scope.editQuestion($event.target.parentElement.parentElement.id.split('_')[1]); + } + else if($event.target.nodeName === "I"){ + scope.editQuestion($event.target.parentElement.parentElement.parentElement.id.split('_')[1]); + } + }); + $('#question-up_'+question.index+'').on('click', function($event){ + if($event.target.nodeName==="A"){ + scope.questionUp($event.target.parentElement.parentElement.id.split('_')[1]); + } + else if($event.target.nodeName === "I"){ + scope.questionUp($event.target.parentElement.parentElement.parentElement.id.split('_')[1]); + } + }); + $('#question-down_'+question.index+'').on('click', function($event){ + if($event.target.nodeName==="A"){ + scope.questionDown($event.target.parentElement.parentElement.id.split('_')[1]); + } + else if($event.target.nodeName === "I"){ + scope.questionDown($event.target.parentElement.parentElement.parentElement.id.split('_')[1]); + } + + }); + }; + } + +FinalizeQuestion.$inject = + [ 'GetBasePath', + 'Rest', + 'Wait', + 'ProcessErrors', + '$compile', + 'Empty', + '$filter', + 'questionScope' + ]; diff --git a/awx/ui/client/src/job-templates/survey-maker/questions/main.js b/awx/ui/client/src/job-templates/survey-maker/questions/main.js new file mode 100644 index 0000000000..346e6e9bff --- /dev/null +++ b/awx/ui/client/src/job-templates/survey-maker/questions/main.js @@ -0,0 +1,9 @@ +import questionScope from './question-scope.factory'; +import finalize from './finalize.factory'; +import edit from './edit.factory'; + +export default + angular.module('jobTemplates.surveyMaker.questions', []) + .factory('finalizeQuestion', finalize) + .factory('questionScope', questionScope) + .factory('editQuestion', edit); diff --git a/awx/ui/client/src/job-templates/survey-maker/questions/question-scope.factory.js b/awx/ui/client/src/job-templates/survey-maker/questions/question-scope.factory.js new file mode 100644 index 0000000000..31af0902a5 --- /dev/null +++ b/awx/ui/client/src/job-templates/survey-maker/questions/question-scope.factory.js @@ -0,0 +1,25 @@ +var typesSupportingIsolatedScope = + [ 'multiselect', + 'multiplechoice' + ]; + +function typeSupportsIsolatedScope(type) { + return _.include(typesSupportingIsolatedScope, type); +} + +function getIsolatedScope(question, oldScope) { + var newScope = oldScope.$new(); + newScope.question = question; + return newScope; +} + +export default + function() { + return function(question, oldScope) { + if (typeSupportsIsolatedScope(question.type)) { + return getIsolatedScope(question, oldScope); + } else { + return oldScope; + } + }; + } diff --git a/awx/ui/client/src/job-templates/survey-maker/render/main.js b/awx/ui/client/src/job-templates/survey-maker/render/main.js new file mode 100644 index 0000000000..90390c74e1 --- /dev/null +++ b/awx/ui/client/src/job-templates/survey-maker/render/main.js @@ -0,0 +1,9 @@ +import surveyQuestion from './survey-question.directive'; +import multipleChoice from './multiple-choice.directive'; +import multiSelect from './multiselect.directive'; + +export default + angular.module('jobTemplates.surveyMaker.render', []) + .directive('surveyQuestion', surveyQuestion) + .directive('multipleChoice', multipleChoice) + .directive('multiSelect', multiSelect); diff --git a/awx/ui/client/src/job-templates/survey-maker/render/multiple-choice.directive.js b/awx/ui/client/src/job-templates/survey-maker/render/multiple-choice.directive.js new file mode 100644 index 0000000000..9dd272d27e --- /dev/null +++ b/awx/ui/client/src/job-templates/survey-maker/render/multiple-choice.directive.js @@ -0,0 +1,57 @@ +/* jshint unused: vars */ +import {templateUrl} from '../../../shared/template-url/template-url.factory'; + +function link($timeout, scope, element, attrs, ngModel) { + attrs.width = attrs.width || '100%'; + + $timeout(function() { + + $.fn.select2.amd.require( + [ 'select2/utils', + 'select2/dropdown', + 'select2/dropdown/search', + 'select2/dropdown/attachContainer', + 'select2/dropdown/closeOnSelect', + 'select2/dropdown/minimumResultsForSearch' + ], + function(Utils, Dropdown, Search, AttachContainer, CloseOnSelect, MinimumResultsForSearch) { + + var CustomAdapter = + _.reduce([Search, AttachContainer, CloseOnSelect, MinimumResultsForSearch], + function(Adapter, Decorator) { + return Utils.Decorate(Adapter, Decorator); + }, Dropdown); + + element.find('select').select2( + { multiple: scope.isMultipleSelect(), + minimumResultsForSearch: Infinity, + theme: 'bootstrap', + width: attrs.width, + dropdownAdapter: CustomAdapter + }); + }); + + }); + +} + +export default + [ '$timeout', + function($timeout) { + var directive = + { restrict: 'E', + require: 'ngModel', + scope: { + isMultipleSelect: '&multiSelect', + choices: '=', + question: '=', + isRequired: '=ngRequired', + selectedValue: '=ngModel', + isDisabled: '=ngDisabled' + }, + templateUrl: templateUrl('job-templates/survey-maker/render/multiple-choice'), + link: _.partial(link, $timeout) + }; + return directive; + } + ]; diff --git a/awx/ui/client/src/job-templates/survey-maker/render/multiple-choice.partial.html b/awx/ui/client/src/job-templates/survey-maker/render/multiple-choice.partial.html new file mode 100644 index 0000000000..33bc78c2e5 --- /dev/null +++ b/awx/ui/client/src/job-templates/survey-maker/render/multiple-choice.partial.html @@ -0,0 +1,5 @@ +
      + +
      diff --git a/awx/ui/client/src/job-templates/survey-maker/render/multiselect.directive.js b/awx/ui/client/src/job-templates/survey-maker/render/multiselect.directive.js new file mode 100644 index 0000000000..dd3fb60610 --- /dev/null +++ b/awx/ui/client/src/job-templates/survey-maker/render/multiselect.directive.js @@ -0,0 +1,42 @@ +/* jshint unused: vars */ + +/** + * @ngdoc + * + * @name jobTemplates.surveyMaker.render.multiSelect + * @description + * Angular provides no method of binding to "multiple" for + * select lists. This is because under normal circumstances, + * the structure of `ng-model` changes based on whether `multiple` + * is true or false. We're not needing to "bind" to "multiple", + * but we do need to pass in the value dynamically. This allows + * us to do that. + */ + +var directive = + { require: 'ngModel', + compile: function() { + return { + pre: function(scope, element, attrs, ngModel) { + if (_.isUndefined(scope.isMultipleSelect)) { + return; + } + + if (!scope.isMultipleSelect()) { + return; + } + + element.attr('multiple', true); + attrs.multiple = true; + + + } + }; + }, + priority: 1000 + }; + +export default + function() { + return directive; + } diff --git a/awx/ui/client/src/job-templates/survey-maker/render/survey-question.directive.js b/awx/ui/client/src/job-templates/survey-maker/render/survey-question.directive.js new file mode 100644 index 0000000000..28db1c8eef --- /dev/null +++ b/awx/ui/client/src/job-templates/survey-maker/render/survey-question.directive.js @@ -0,0 +1,53 @@ +/* jshint unused: vars */ +import {templateUrl} from '../../../shared/template-url/template-url.factory'; + +/** + * @ngdoc + * @name jobTemplates.surveyMaker.render.surveyQuestion + * @description + * Directive that will eventually hold all logic + * for rendering different form controls based on + * the question type for a survey. + */ + +// Since we're generating HTML for the entire survey, and _then_ +// calling $compile, this directive never actually gets compiled +// with the question object we need. Therefore, we give it the index +// of the question as an attribute (not scope) and then look it up +// in the `survey_questions` by that index when it the directive gets +// compiled. +// +function findQuestionByIndex(questions, index) { + return _.find(questions, function(question) { + return question.index === index; + }); +} + +function link(scope, element, attrs) { + + if (!scope.question) { + scope.question = findQuestionByIndex(scope.surveyQuestions, Number(attrs.index)); + } + + if (!_.isUndefined(scope.question.choices)) { + scope.choices = scope.question.choices.split('\n'); + } +} + +export default + function() { + var directive = + { restrict: 'E', + scope: + { question: '=', + selectedValue: '=ngModel', + surveyQuestions: '=', + isRequired: '@ngRequired', + isDisabled: '@ngDisabled' + }, + templateUrl: templateUrl('job-templates/survey-maker/render/survey-question'), + link: link + }; + + return directive; + } diff --git a/awx/ui/client/src/job-templates/survey-maker/render/survey-question.partial.html b/awx/ui/client/src/job-templates/survey-maker/render/survey-question.partial.html new file mode 100644 index 0000000000..24b95bfd43 --- /dev/null +++ b/awx/ui/client/src/job-templates/survey-maker/render/survey-question.partial.html @@ -0,0 +1,8 @@ + + diff --git a/awx/ui/client/src/job-templates/survey-maker/shared/main.js b/awx/ui/client/src/job-templates/survey-maker/shared/main.js new file mode 100644 index 0000000000..8ee46b0bcf --- /dev/null +++ b/awx/ui/client/src/job-templates/survey-maker/shared/main.js @@ -0,0 +1,5 @@ +import form from './question-definition.form'; + +export default + angular.module('jobTemplates.surveyMaker.shared', []) + .value('questionDefinitionForm', form); diff --git a/awx/ui/client/src/job-templates/survey-maker/shared/question-definition.form.js b/awx/ui/client/src/job-templates/survey-maker/shared/question-definition.form.js new file mode 100644 index 0000000000..01bfff1f5f --- /dev/null +++ b/awx/ui/client/src/job-templates/survey-maker/shared/question-definition.form.js @@ -0,0 +1,303 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + + /** + * @ngdoc function + * @name forms.function:Questions + * @description This form is for adding a question +*/ + +export default + { + + addTitle: 'Add Question', + editTitle: 'Edit Question', + base: 'survey_question', + name: 'survey_question', + well: true, + twoColumns: true, + breadcrumbs: false, + + fields: { + question_name: { + realName: 'question_text', + label: 'Name', + type: 'text', + addRequired: true, + editRequired: true, + column: 1, + awSurveyQuestion: true + }, + question_description: { + realName: 'question_description', + label: 'Description', + type: 'text', + addRequired: false, + editRequired: false, + column: 1 + }, + variable: { + ealName: 'variable', + type: 'custom', + control:''+ + '
      '+ + '
      Please enter an answer variable name.
      '+ + '
      Please remove the illegal character from the survey question variable name.
      '+ + '
      This question variable is already in use. Please enter a different variable name.
      ' + + '
      '+ + '
      ', + addRequired: true, + editRequired: true, + column: 1 + }, + type: { + realName: 'answer_type', + label: 'Answer Type', + type: 'select', + defaultText: 'Choose an answer type', + ngOptions: 'answer_types.name for answer_types in answer_types track by answer_types.type', + addRequired: true, + editRequired: true, + column: 2, + ngChange: 'typeChange()' + }, + choices: { + realName: 'answer_options', + label: 'Multiple Choice Options', + type: 'textarea', + rows: 3, + addRequired: true, + editRequired: true, + ngRequired: "type.type=== 'multiselect' || type.type=== 'multiplechoice' " , + ngShow: 'type.type=== "multiselect" || type.type=== "multiplechoice" ', + awPopOver: '

      Type an option on each line.

      '+ + '

      For example the following input:

      Apple
      \n Banana
      \n Cherry

      would be displayed as:

      \n'+ + '
      1. Apple
      2. Banana
      3. Cherry
      ', + dataTitle: 'Multiple Choice Options', + dataPlacement: 'right', + dataContainer: "body", + column: 2 + }, + text_options: { + realName: 'answer_options', + type: 'custom', + control:'
      '+ + '
      '+ + ''+ + '
      The minimum length you entered is not a valid number. Please enter a whole number.
      '+ + '
      The minimium length is too high. Please enter a lower number.
      '+ + '
      The minimum length is too low. Please enter a positive number.
      '+ + '
      '+ + '
      '+ + ''+ + '
      The maximum length you entered is not a valid number. Please enter a whole nnumber.
      '+ + '
      The maximum length is too low. Please enter a number larger than the minimum length you set.
      '+ + '
      '+ + '
      ', + ngShow: 'type.type==="text" ', + addRequired: true, + editRequired: true, + column: 2 + }, + textarea_options: { + realName: 'answer_options', + type: 'custom', + control:'
      '+ + '
      '+ + ''+ + '
      The minimum length you entered is not a valid number. Please enter a whole number.
      '+ + '
      The minimium length is too high. Please enter a lower number.
      '+ + '
      The minimum length is too low. Please enter a positive number.
      '+ + '
      '+ + '
      '+ + ''+ + '
      The maximum length you entered is not a valid number. Please enter a whole number.
      '+ + '
      The maximum length is too low. Please enter a number larger than the minimum length you set.
      '+ + '
      '+ + '
      ', + ngShow: 'type.type==="textarea" ', + addRequired: true, + editRequired: true, + column: 2 + }, + password_options: { + realName: 'answer_options', + type: 'custom', + control:'
      '+ + '
      '+ + ''+ + '
      The minimum length you entered is not a valid number. Please enter a whole number.
      '+ + '
      The minimium length is too high. Please enter a lower number.
      '+ + '
      The minimum length is too low. Please enter a positive number.
      '+ + '
      '+ + '
      '+ + ''+ + '
      The maximum length you entered is not a valid number. Please enter a whole number.
      '+ + '
      The maximum length is too low. Please enter a number larger than the minimum length you set.
      '+ + '
      '+ + '
      ', + ngShow: 'type.type==="password" ', + addRequired: true, + editRequired: true, + column: 2 + }, + int_options: { + realName: 'answer_options', + type: 'custom', + control:'
      '+ + '
      '+ + ''+ + '
      Please enter a valid integer.
      '+ + '
      Please enter a smaller integer.
      '+ + '
      '+ + '
      '+ + ''+ + '
      Please enter a valid integer.
      '+ + '
      Please enter a larger integer.
      '+ + '
      '+ + '
      ', + ngShow: 'type.type==="integer" ', + addRequired: true, + editRequired: true, + column: 2 + }, + float_options: { + realName: 'answer_options', + type: 'custom', + control: '
      '+ + '
      '+ + ''+ + '
      Please enter a valid float.
      '+ + '
      Please enter a smaller float.
      '+ + '
      '+ + '
      '+ + ''+ + '
      Please enter a valid float.
      '+ + '
      Please enter a larger float.
      '+ + + '
      '+ + '
      ', + ngShow: 'type.type==="float" ', + addRequired: true, + editRequired: true, + column: 2 + }, + default:{ + realName: 'default_answer', + type: 'custom' , + control: '
      '+ + ''+ + '
      '+ + ''+ + '
      Please enter an answer from the choices listed.
      ' + + '
      The answer is shorter than the minimium length. Please make the answer longer.
      ' + + '
      The answer is longer than the maximum length. Please make the answer shorter.
      ' + + '
      '+ + '
      '+ + '
      ', + column: 2, + ngShow: 'type.type === "text" || type.type === "multiplechoice" ' + }, + default_multiselect: { + realName: 'default_answer' , + type: 'custom', + control: '
      '+ + ''+ + '
      '+ + ''+ + '
      Please enter an answer/answers from the choices listed.
      ' + + '
      '+ + '
      '+ + '
      ', + column: 2, + ngShow: 'type.type==="multiselect" ' + }, + default_int: { + realName: 'default_answer', + type: 'custom', + control: '
      '+ + ''+ + ''+ + '
      Please enter a valid integer.
      '+ + '
      Please enter a value in the range of {{int_min}} to {{int_max}}.
      '+ + '
      ', + column: 2, + ngShow: 'type.type === "integer" ' + }, + default_float: { + realName: 'default_answer', + type: 'custom', + control: '
      '+ + ''+ + ''+ + '
      Please enter a valid float.
      '+ + '
      Please enter a value in the range of {{float_min}} to {{float_max}}!
      '+ + '
      ', + column: 2, + ngShow: 'type.type=== "float" ' + }, + default_textarea: { + realName: "default_answer" , + type: 'custom', + control: '
      '+ + ''+ + '
      '+ + ''+ + '
      The answer is shorter than the minimium length. Please make the answer longer.
      ' + + '
      The answer is longer than the maximum length. Please make the answer shorter.
      ' + + '
      '+ + '
      '+ + '
      ', + column : 2, + ngShow: 'type.type === "textarea" ' + }, + default_password: { + realName: 'default_answer' , + type: 'custom' , + control: '
      '+ + ''+ + '
      '+ + '
      '+ + ''+ + ''+ + ''+ + ''+ + '
      '+ + '
      The answer is shorter than the minimium length. Please make the answer longer.
      ' + + '
      The answer is longer than the maximum length. Please make the answer shorter.
      ' + + '
      '+ + '
      '+ + '
      ', + column: 2, + ngShow: 'type.type === "password" ' + }, + required: { + realName: 'required_answer', + label: 'Required', + type: 'checkbox', + addRequired: false, + editRequired: false, + column: 2 + } + }, + buttons: { + question_cancel : { + label: 'Cancel', + 'class' : 'btn btn-default', + ngClick: 'cancelQuestion($event)' + }, + submit_question: { + ngClick: 'submitQuestion($event)', + ngDisabled: true, + 'class': 'btn btn-sm btn-primary', + label: 'Add Question' + } + } + + }; diff --git a/awx/ui/client/src/job-templates/survey-maker/shared/survey-controls.block.less b/awx/ui/client/src/job-templates/survey-maker/shared/survey-controls.block.less new file mode 100644 index 0000000000..74b3af4967 --- /dev/null +++ b/awx/ui/client/src/job-templates/survey-maker/shared/survey-controls.block.less @@ -0,0 +1,11 @@ +/** @define SurveyControls */ + +.SurveyControls { + &-selectWrapper { + margin-left: 15px; + } + &--dropdown { + z-index: 10000; + opacity: 1; + } +} diff --git a/awx/ui/client/src/job-templates/survey-maker/surveys/add.factory.js b/awx/ui/client/src/job-templates/survey-maker/surveys/add.factory.js new file mode 100644 index 0000000000..62b8576d06 --- /dev/null +++ b/awx/ui/client/src/job-templates/survey-maker/surveys/add.factory.js @@ -0,0 +1,25 @@ +export default + function AddFactory($location, $routeParams, ShowSurveyModal, Wait) { + return function(params) { + var scope = params.scope; + + if (scope.removeDialogReady) { + scope.removeDialogReady(); + } + scope.removeDialogReady = scope.$on('DialogReady', function() { + $('#survey-modal-dialog').dialog('open'); + scope.addQuestion(); + }); + Wait('start'); + $('#form-container').empty(); + scope.resetForm(); + ShowSurveyModal({ title: "Add Survey", scope: scope, callback: 'DialogReady' }); + }; + } + +AddFactory.$inject = + [ '$location', + '$routeParams', + 'showSurvey', + 'Wait' + ]; diff --git a/awx/ui/client/src/job-templates/survey-maker/surveys/delete.factory.js b/awx/ui/client/src/job-templates/survey-maker/surveys/delete.factory.js new file mode 100644 index 0000000000..4c753816c6 --- /dev/null +++ b/awx/ui/client/src/job-templates/survey-maker/surveys/delete.factory.js @@ -0,0 +1,63 @@ +/** + * Delete a survey. Prompts user to confirm delete + * + * DeleteSurvey({ + * scope: $scope containing list of survey form fields + * id: id of job template that survey is attached to + * callback: $scope.$emit label to call when delete is completed + * }) + * + */ +export default + function DeleteSurvey(GetBasePath, Rest, Wait, ProcessErrors) { + return function(params) { + + var scope = params.scope, + id = params.id, + // callback = params.callback, + url; + + + if (scope.removeSurveyDeleted) { + scope.removeSurveyDeleted(); + } + scope.$on('SurveyDeleted', function(){ + scope.survey_name = ""; + scope.survey_description = ""; + scope.survey_questions = []; + Wait('stop'); + scope.survey_exists = false; + $('#job_templates_delete_survey_btn').hide(); + $('#job_templates_edit_survey_btn').hide(); + $('#job_templates_create_survey_btn').show(); + }); + + + Wait('start'); + + if(scope.mode==="add"){ + scope.$emit("SurveyDeleted"); + + } else { + url = GetBasePath('job_templates')+ id + '/survey_spec/'; + + Rest.setUrl(url); + Rest.destroy() + .success(function () { + scope.$emit("SurveyDeleted"); + + }) + .error(function (data, status) { + ProcessErrors(scope, data, status, { hdr: 'Error!', + msg: 'Failed to delete survey. DELETE returned status: ' + status }); + }); + } + }; + } + +DeleteSurvey.$inject = + [ 'GetBasePath', + 'Rest', + 'Wait', + 'ProcessErrors' + ]; diff --git a/awx/ui/client/src/job-templates/survey-maker/surveys/edit.factory.js b/awx/ui/client/src/job-templates/survey-maker/surveys/edit.factory.js new file mode 100644 index 0000000000..857136096f --- /dev/null +++ b/awx/ui/client/src/job-templates/survey-maker/surveys/edit.factory.js @@ -0,0 +1,80 @@ +export default + function EditFactory($routeParams, SchedulerInit, ShowSurveyModal, Wait, Rest, ProcessErrors, GetBasePath, GenerateForm, + Empty, AddSurvey) { + return function(params) { + var scope = params.scope, + id = params.id, + tempSurv = {}, + url = GetBasePath('job_templates') + id + '/survey_spec/', i; + + if (scope.removeDialogReady) { + scope.removeDialogReady(); + } + scope.removeDialogReady = scope.$on('DialogReady', function() { + $('#survey-modal-dialog').dialog('open'); + }); + + scope.resetForm(); + Wait('start'); + //for adding a job template: + if(scope.mode === 'add'){ + tempSurv.survey_name = scope.survey_name; + tempSurv.survey_description = scope.survey_description; + tempSurv.survey_questions = scope.survey_questions; + + ShowSurveyModal({ title: "Edit Survey", scope: scope, callback: 'DialogReady' }); + + // scope.survey_name = tempSurv.survey_name; + // scope.survey_description = tempSurv.survey_description; + + for(i=0; i0){ + $('#survey-save-button').removeAttr('disabled'); + } + if(scope.mode === 'edit' && scope.survey_questions.length>0 && scope.can_edit===true){ + $('#survey-save-button').removeAttr('disabled'); + } + + } else { + elementID = event.target.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.id; + key = elementID.split('_')[1]; + $('#'+elementID).empty(); + if(scope.mode === 'add'){ + if(questions.length>0){ + $('#survey-save-button').removeAttr('disabled'); + } + scope.finalizeQuestion(questions[key], Number(key)); + } + else if(scope.mode=== 'edit' ){ + if(scope.survey_questions.length>0 && scope.can_edit === true){ + $('#survey-save-button').removeAttr('disabled'); + } + scope.finalizeQuestion(scope.survey_questions[key] , Number(key)); + } + } + }; + + scope.questionUp = function(index){ + var animating = false, + clickedDiv = $('#question_'+index), + prevDiv = clickedDiv.prev(), + distance = clickedDiv.outerHeight(); + + if (animating) { + return; + } + + if (prevDiv.length) { + animating = true; + $.when(clickedDiv.animate({ + top: -distance + }, 600), + prevDiv.animate({ + top: distance + }, 600)).done(function () { + prevDiv.css('top', '0px'); + clickedDiv.css('top', '0px'); + clickedDiv.insertBefore(prevDiv); + animating = false; + if ( scope.mode === 'add'){ + i = questions[index]; + questions[index] = questions[index-1]; + questions[index-1] = i; + } else { + i = scope.survey_questions[index]; + scope.survey_questions[index] = scope.survey_questions[index-1]; + scope.survey_questions[index-1] = i; + } + scope.reorder(); + }); + } + }; + + scope.questionDown = function(index){ + var clickedDiv = $('#question_'+index), + nextDiv = clickedDiv.next(), + distance = clickedDiv.outerHeight(), + animating = false; + + if (animating) { + return; + } + + if (nextDiv.length) { + animating = true; + $.when(clickedDiv.animate({ + top: distance + }, 600), + nextDiv.animate({ + top: -distance + }, 600)).done(function () { + nextDiv.css('top', '0px'); + clickedDiv.css('top', '0px'); + nextDiv.insertBefore(clickedDiv); + animating = false; + if(scope.mode === 'add'){ + i = questions[index]; + questions[index] = questions[Number(index)+1]; + questions[Number(index)+1] = i; + } else { + i = scope.survey_questions[index]; + scope.survey_questions[index] = scope.survey_questions[Number(index)+1]; + scope.survey_questions[Number(index)+1] = i; + } + scope.reorder(); + }); + } + }; + + scope.reorder = function(){ + if(scope.mode==='add'){ + for(i=0; i0){ + for(i=0; i'+ + ''+ + '
      '+ + '
      '+ + ''+ + '
      '+ + '
      '+ + '
      '; + $('#survey-modal-dialog').html(html); + element = angular.element(document.getElementById('add_question_btn')); + $compile(element)(scope); + }; + + scope.saveSurvey = function() { + Wait('start'); + if(scope.mode ==="add"){ + $('#survey-modal-dialog').dialog('close'); + if(questions.length>0){ + scope.survey_questions = questions; + } + scope.survey_name = ""; + scope.survey_description = ""; + questions = [] ; + scope.$emit('SurveySaved'); + } + else{ + scope.survey_name = ""; + scope.survey_description = ""; + url = GetBasePath('job_templates') + id + '/survey_spec/'; + Rest.setUrl(url); + Rest.post({ name: scope.survey_name, description: scope.survey_description, spec: scope.survey_questions }) + .success(function () { + // Wait('stop'); + $('#survey-modal-dialog').dialog('close'); + scope.$emit('SurveySaved'); + }) + .error(function (data, status) { + ProcessErrors(scope, data, status, null, { hdr: 'Error!', + msg: 'Failed to add new survey. POST returned status: ' + status }); + }); + } + }; + + //for toggling the input on password inputs + scope.toggleInput = function(id) { + var buttonId = id + "_show_input_button", + inputId = id, + buttonInnerHTML = $(buttonId).html(); + if (buttonInnerHTML.indexOf("Show") > -1) { + $(buttonId).html("Hide"); + $(inputId).attr("type", "text"); + } else { + $(buttonId).html("Show"); + $(inputId).attr("type", "password"); + } + }; + + }; + } + +Init.$inject = + [ '$location', + 'deleteSurvey', + 'editSurvey', + 'addSurvey', + 'GenerateForm', + 'questionDefinitionForm', + 'Wait', + 'Alert', + 'GetBasePath', + 'Rest', + 'ProcessErrors', + '$compile', + 'finalizeQuestion', + 'editQuestion', + '$sce' + ]; diff --git a/awx/ui/client/src/job-templates/survey-maker/surveys/main.js b/awx/ui/client/src/job-templates/survey-maker/surveys/main.js new file mode 100644 index 0000000000..a16c10073c --- /dev/null +++ b/awx/ui/client/src/job-templates/survey-maker/surveys/main.js @@ -0,0 +1,13 @@ +import add from './add.factory'; +import edit from './edit.factory'; +import _delete from './delete.factory'; +import init from './init.factory'; +import show from './show.factory'; + +export default + angular.module('jobTemplates.surveyMaker.surveys', []) + .factory('showSurvey', show) + .factory('addSurvey', add) + .factory('editSurvey', edit) + .factory('deleteSurvey', _delete) + .factory('initSurvey', init); diff --git a/awx/ui/client/src/job-templates/survey-maker/surveys/show.factory.js b/awx/ui/client/src/job-templates/survey-maker/surveys/show.factory.js new file mode 100644 index 0000000000..84874522cb --- /dev/null +++ b/awx/ui/client/src/job-templates/survey-maker/surveys/show.factory.js @@ -0,0 +1,87 @@ +export default + function ShowFactory(Wait, CreateDialog, Empty, $compile) { + return function(params) { + // Set modal dimensions based on viewport width + + var scope = params.scope, + callback = params.callback, + mode = (params.mode) ? params.mode : "survey-maker", + title = params.title, + element, + target = (mode==='survey-taker') ? 'password-modal' : "survey-modal-dialog", + buttons = [{ + "label": "Cancel", + "onClick": function() { + scope.cancelSurvey(this); + }, + "icon": "fa-times", + "class": "btn btn-default", + "id": "survey-close-button" + },{ + "label": (mode==='survey-taker') ? "Launch" : "Save" , + "onClick": function() { + setTimeout(function(){ + scope.$apply(function(){ + if(mode==='survey-taker'){ + scope.$emit('SurveyTakerCompleted'); + } else{ + scope.saveSurvey(); + } + }); + }); + }, + "icon": (mode==='survey-taker') ? "fa-rocket" : "fa-check", + "class": "btn btn-primary", + "id": "survey-save-button" + }]; + + CreateDialog({ + id: target, + title: title, + scope: scope, + buttons: buttons, + width: 700, + height: 725, + minWidth: 400, + onClose: function() { + $('#'+target).empty(); + }, + onOpen: function() { + Wait('stop'); + if(mode!=="survey-taker"){ + // if(scope.mode === 'add'){ + // $('#survey-save-button').attr('disabled' , true); + // } else + if(scope.can_edit === false){ + $('#survey-save-button').attr('disabled', "disabled"); + } + else { + $('#survey-save-button').attr('ng-disabled', "survey_questions.length<1 "); + } + element = angular.element(document.getElementById('survey-save-button')); + $compile(element)(scope); + + } + if(mode==="survey-taker"){ + $('#survey-save-button').attr('ng-disabled', "survey_taker_form.$invalid"); + element = angular.element(document.getElementById('survey-save-button')); + $compile(element)(scope); + + } + + }, + _allowInteraction: function(e) { + return !!$(e.target).is('.select2-input') || this._super(e); + }, + callback: callback + }); + }; + } + +ShowFactory.$inject = + [ 'Wait', + 'CreateDialog', + 'Empty', + '$compile' + ]; + diff --git a/awx/ui/static/js/jobs/standard-out-details.block.less b/awx/ui/client/src/jobs/standard-out-details.block.less similarity index 100% rename from awx/ui/static/js/jobs/standard-out-details.block.less rename to awx/ui/client/src/jobs/standard-out-details.block.less diff --git a/awx/ui/client/src/lists.js b/awx/ui/client/src/lists.js new file mode 100644 index 0000000000..da4aa67f7b --- /dev/null +++ b/awx/ui/client/src/lists.js @@ -0,0 +1,61 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + +import Admins from "./lists/Admins"; +import CloudCredentials from "./lists/CloudCredentials"; +import CompletedJobs from "./lists/CompletedJobs"; +import AllJobs from "./lists/AllJobs"; +import Credentials from "./lists/Credentials"; +import Groups from "./lists/Groups"; +import HomeGroups from "./lists/HomeGroups"; +import HomeHosts from "./lists/HomeHosts"; +import Hosts from "./lists/Hosts"; +import Inventories from "./lists/Inventories"; +import InventoryGroups from "./lists/InventoryGroups"; +import InventoryHosts from "./lists/InventoryHosts"; +import JobEvents from "./lists/JobEvents"; +import JobHosts from "./lists/JobHosts"; +import JobTemplates from "./lists/JobTemplates"; +import Jobs from "./lists/Jobs"; +import Organizations from "./lists/Organizations"; +import PortalJobTemplates from "./lists/PortalJobTemplates"; +import PortalJobs from "./lists/PortalJobs"; +import Projects from "./lists/Projects"; +import ScanJobsList from "./lists/ScanJobs"; +import ScheduledJobs from "./lists/ScheduledJobs"; +import Schedules from "./lists/Schedules"; +import Streams from "./lists/Streams"; +import Teams from "./lists/Teams"; +import Users from "./lists/Users"; + +export + { Admins, + CloudCredentials, + CompletedJobs, + AllJobs, + Credentials, + Groups, + HomeGroups, + HomeHosts, + Hosts, + Inventories, + InventoryGroups, + InventoryHosts, + JobEvents, + JobHosts, + JobTemplates, + Jobs, + Organizations, + PortalJobTemplates, + PortalJobs, + Projects, + ScanJobsList, + ScheduledJobs, + Schedules, + Streams, + Teams, + Users + }; diff --git a/awx/ui/static/js/lists/Admins.js b/awx/ui/client/src/lists/Admins.js similarity index 100% rename from awx/ui/static/js/lists/Admins.js rename to awx/ui/client/src/lists/Admins.js diff --git a/awx/ui/static/js/lists/AllJobs.js b/awx/ui/client/src/lists/AllJobs.js similarity index 100% rename from awx/ui/static/js/lists/AllJobs.js rename to awx/ui/client/src/lists/AllJobs.js diff --git a/awx/ui/static/js/lists/CloudCredentials.js b/awx/ui/client/src/lists/CloudCredentials.js similarity index 100% rename from awx/ui/static/js/lists/CloudCredentials.js rename to awx/ui/client/src/lists/CloudCredentials.js diff --git a/awx/ui/static/js/lists/CompletedJobs.js b/awx/ui/client/src/lists/CompletedJobs.js similarity index 100% rename from awx/ui/static/js/lists/CompletedJobs.js rename to awx/ui/client/src/lists/CompletedJobs.js diff --git a/awx/ui/static/js/lists/Credentials.js b/awx/ui/client/src/lists/Credentials.js similarity index 100% rename from awx/ui/static/js/lists/Credentials.js rename to awx/ui/client/src/lists/Credentials.js diff --git a/awx/ui/static/js/lists/Groups.js b/awx/ui/client/src/lists/Groups.js similarity index 100% rename from awx/ui/static/js/lists/Groups.js rename to awx/ui/client/src/lists/Groups.js diff --git a/awx/ui/static/js/lists/HomeGroups.js b/awx/ui/client/src/lists/HomeGroups.js similarity index 100% rename from awx/ui/static/js/lists/HomeGroups.js rename to awx/ui/client/src/lists/HomeGroups.js diff --git a/awx/ui/static/js/lists/HomeHosts.js b/awx/ui/client/src/lists/HomeHosts.js similarity index 100% rename from awx/ui/static/js/lists/HomeHosts.js rename to awx/ui/client/src/lists/HomeHosts.js diff --git a/awx/ui/static/js/lists/Hosts.js b/awx/ui/client/src/lists/Hosts.js similarity index 100% rename from awx/ui/static/js/lists/Hosts.js rename to awx/ui/client/src/lists/Hosts.js diff --git a/awx/ui/static/js/lists/Inventories.js b/awx/ui/client/src/lists/Inventories.js similarity index 100% rename from awx/ui/static/js/lists/Inventories.js rename to awx/ui/client/src/lists/Inventories.js diff --git a/awx/ui/static/js/lists/InventoryGroups.js b/awx/ui/client/src/lists/InventoryGroups.js similarity index 100% rename from awx/ui/static/js/lists/InventoryGroups.js rename to awx/ui/client/src/lists/InventoryGroups.js index 516ba5b6e5..c411f377b6 100644 --- a/awx/ui/static/js/lists/InventoryGroups.js +++ b/awx/ui/client/src/lists/InventoryGroups.js @@ -82,6 +82,16 @@ export default }, actions: { + create: { + mode: 'all', + ngClick: "createGroup()", + awToolTip: "Create a new group" + }, + properties: { + mode: 'all', + awToolTip: "Edit inventory properties", + ngClick: 'editInventoryProperties()' + }, launch: { mode: 'all', ngShow: 'inventory.can_run_ad_hoc_commands', @@ -93,16 +103,6 @@ export default // awToolTip: "{{ adhocButtonTipContents }}", // dataTipWatch: "adhocButtonTipContents" }, - create: { - mode: 'all', - ngClick: "createGroup()", - awToolTip: "Create a new group" - }, - properties: { - mode: 'all', - awToolTip: "Edit inventory properties", - ngClick: 'editInventoryProperties()' - }, refresh: { mode: 'all', awToolTip: "Refresh the page", diff --git a/awx/ui/static/js/lists/InventoryHosts.js b/awx/ui/client/src/lists/InventoryHosts.js similarity index 100% rename from awx/ui/static/js/lists/InventoryHosts.js rename to awx/ui/client/src/lists/InventoryHosts.js diff --git a/awx/ui/static/js/lists/JobEvents.js b/awx/ui/client/src/lists/JobEvents.js similarity index 100% rename from awx/ui/static/js/lists/JobEvents.js rename to awx/ui/client/src/lists/JobEvents.js diff --git a/awx/ui/static/js/lists/JobHosts.js b/awx/ui/client/src/lists/JobHosts.js similarity index 100% rename from awx/ui/static/js/lists/JobHosts.js rename to awx/ui/client/src/lists/JobHosts.js diff --git a/awx/ui/static/js/lists/JobTemplates.js b/awx/ui/client/src/lists/JobTemplates.js similarity index 100% rename from awx/ui/static/js/lists/JobTemplates.js rename to awx/ui/client/src/lists/JobTemplates.js diff --git a/awx/ui/static/js/lists/Jobs.js b/awx/ui/client/src/lists/Jobs.js similarity index 100% rename from awx/ui/static/js/lists/Jobs.js rename to awx/ui/client/src/lists/Jobs.js diff --git a/awx/ui/static/js/lists/Organizations.js b/awx/ui/client/src/lists/Organizations.js similarity index 100% rename from awx/ui/static/js/lists/Organizations.js rename to awx/ui/client/src/lists/Organizations.js diff --git a/awx/ui/static/js/lists/PortalJobTemplates.js b/awx/ui/client/src/lists/PortalJobTemplates.js similarity index 100% rename from awx/ui/static/js/lists/PortalJobTemplates.js rename to awx/ui/client/src/lists/PortalJobTemplates.js diff --git a/awx/ui/static/js/lists/PortalJobs.js b/awx/ui/client/src/lists/PortalJobs.js similarity index 100% rename from awx/ui/static/js/lists/PortalJobs.js rename to awx/ui/client/src/lists/PortalJobs.js diff --git a/awx/ui/static/js/lists/Projects.js b/awx/ui/client/src/lists/Projects.js similarity index 100% rename from awx/ui/static/js/lists/Projects.js rename to awx/ui/client/src/lists/Projects.js diff --git a/awx/ui/static/js/lists/ScanJobs.js b/awx/ui/client/src/lists/ScanJobs.js similarity index 100% rename from awx/ui/static/js/lists/ScanJobs.js rename to awx/ui/client/src/lists/ScanJobs.js diff --git a/awx/ui/static/js/lists/ScheduledJobs.js b/awx/ui/client/src/lists/ScheduledJobs.js similarity index 100% rename from awx/ui/static/js/lists/ScheduledJobs.js rename to awx/ui/client/src/lists/ScheduledJobs.js diff --git a/awx/ui/static/js/lists/Schedules.js b/awx/ui/client/src/lists/Schedules.js similarity index 100% rename from awx/ui/static/js/lists/Schedules.js rename to awx/ui/client/src/lists/Schedules.js diff --git a/awx/ui/static/js/lists/Streams.js b/awx/ui/client/src/lists/Streams.js similarity index 100% rename from awx/ui/static/js/lists/Streams.js rename to awx/ui/client/src/lists/Streams.js index 3c9d8c8c48..5a793fd073 100644 --- a/awx/ui/static/js/lists/Streams.js +++ b/awx/ui/client/src/lists/Streams.js @@ -252,17 +252,17 @@ export default }, actions: { + close: { + mode: 'all', + awToolTip: "Close Activity Stream view", + ngClick: "closeStream()" + }, refresh: { mode: 'all', id: 'activity-stream-refresh-btn', 'class': 'btn-xs', awToolTip: "Refresh the page", ngClick: "refreshStream()" - }, - close: { - mode: 'all', - awToolTip: "Close Activity Stream view", - ngClick: "closeStream()" } }, diff --git a/awx/ui/static/js/lists/Teams.js b/awx/ui/client/src/lists/Teams.js similarity index 100% rename from awx/ui/static/js/lists/Teams.js rename to awx/ui/client/src/lists/Teams.js diff --git a/awx/ui/static/js/lists/Users.js b/awx/ui/client/src/lists/Users.js similarity index 100% rename from awx/ui/static/js/lists/Users.js rename to awx/ui/client/src/lists/Users.js diff --git a/awx/ui/static/js/shared/AuthService.js b/awx/ui/client/src/login/authenticationServices/authentication.service.js similarity index 90% rename from awx/ui/static/js/shared/AuthService.js rename to awx/ui/client/src/login/authenticationServices/authentication.service.js index b83c22ae19..8ffced6d09 100644 --- a/awx/ui/static/js/shared/AuthService.js +++ b/awx/ui/client/src/login/authenticationServices/authentication.service.js @@ -14,12 +14,8 @@ * */ -import Utilities from './Utilities'; - export default -angular.module('AuthService', ['ngCookies', Utilities.name]) - -.factory('Authorization', ['$http', '$rootScope', '$location', '$cookieStore', 'GetBasePath', 'Store', + ['$http', '$rootScope', '$location', '$cookieStore', 'GetBasePath', 'Store', function ($http, $rootScope, $location, $cookieStore, GetBasePath, Store) { return { setToken: function (token, expires) { @@ -64,11 +60,11 @@ angular.module('AuthService', ['ngCookies', Utilities.name]) logout: function () { // the following puts our primary scope up for garbage collection, which // should prevent content flash from the prior user. - var scope = angular.element(document.getElementById('main-view')).scope(); + + var x, scope = angular.element(document.getElementById('main-view')).scope(); scope.$destroy(); //$rootScope.$destroy(); - $cookieStore.remove('token_expires'); - $cookieStore.remove('current_user'); + if($cookieStore.get('lastPath')==='/portal'){ $cookieStore.put( 'lastPath', '/portal'); @@ -83,7 +79,13 @@ angular.module('AuthService', ['ngCookies', Utilities.name]) $cookieStore.remove('lastPath'); $rootScope.lastPath = '/home'; } + x = Store('sessionTime'); + x[$rootScope.current_user.id].loggedIn = false; + Store('sessionTime', x); + $rootScope.lastUser = $cookieStore.get('current_user').id; + $cookieStore.remove('token_expires'); + $cookieStore.remove('current_user'); $cookieStore.remove('token'); $cookieStore.put('userLoggedIn', false); $cookieStore.put('sessionExpired', false); @@ -96,6 +98,7 @@ angular.module('AuthService', ['ngCookies', Utilities.name]) $rootScope.token_expires = null; $rootScope.login_username = null; $rootScope.login_password = null; + $rootScope.sessionTimer.clearTimers(); }, getLicense: function () { @@ -111,7 +114,9 @@ angular.module('AuthService', ['ngCookies', Utilities.name]) setLicense: function (data) { var license = data.license_info; + license.analytics_status = data.analytics_status; license.version = data.version; + license.ansible_version = data.ansible_version; license.tested = false; Store('license', license); $rootScope.features = Store('license').features; @@ -139,7 +144,8 @@ angular.module('AuthService', ['ngCookies', Utilities.name]) method: 'GET', url: '/api/v1/me/', headers: { - 'Authorization': 'Token ' + this.getToken() + 'Authorization': 'Token ' + this.getToken(), + "X-Auth-Token": 'Token ' + this.getToken() } }); }, @@ -148,7 +154,6 @@ angular.module('AuthService', ['ngCookies', Utilities.name]) // store the response values in $rootScope so we can get to them later $rootScope.current_user = response.results[0]; $cookieStore.put('current_user', response.results[0]); //keep in session cookie in the event of browser refresh - $rootScope.$emit('OpenSocket'); }, restoreUserInfo: function () { @@ -167,4 +172,4 @@ angular.module('AuthService', ['ngCookies', Utilities.name]) } }; } -]); +]; diff --git a/awx/ui/client/src/login/authenticationServices/checkAccess.factory.js b/awx/ui/client/src/login/authenticationServices/checkAccess.factory.js new file mode 100644 index 0000000000..1be4bab4b8 --- /dev/null +++ b/awx/ui/client/src/login/authenticationServices/checkAccess.factory.js @@ -0,0 +1,61 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + + /** + * @ngdoc function + * @name helpers.function:Access + * @description routines checking user access +*/ + + +export default + ['$rootScope', 'Alert', 'Rest', 'GetBasePath', 'ProcessErrors', '$cookieStore', + function ($rootScope, Alert, Rest, GetBasePath, ProcessErrors, $cookieStore) { + return function (params) { + // set PermissionAddAllowed to true or false based on user access. admins and org admins are granted + // accesss. + var scope = params.scope, + callback = params.callback || undefined, + me; + + // uer may have refreshed the browser, in which case retrieve current user info from session cookie + me = ($rootScope.current_user) ? $rootScope.current_user : $cookieStore.get('current_user'); + + if (me.is_superuser) { + scope.PermissionAddAllowed = true; + if(callback){ + scope.$emit(callback); + } + } else { + if (me.related.admin_of_organizations) { + Rest.setUrl(me.related.admin_of_organizations); + Rest.get() + .success(function (data) { + if (data.results.length > 0) { + scope.PermissionAddAllowed = true; + } else { + scope.PermissionAddAllowed = false; + } + if(callback){ + scope.$emit(callback); + } + }) + .error(function (data, status) { + ProcessErrors(scope, data, status, null, { + hdr: 'Error!', + msg: 'Call to ' + me.related.admin_of_organizations + + ' failed. DELETE returned status: ' + status + }); + }); + } + } + + //if (!access) { + // Alert('Access Denied', 'You do not have access to this function. Please contact your system administrator.'); + //} + //return access; + }; + }]; diff --git a/awx/ui/client/src/login/authenticationServices/isAdmin.factory.js b/awx/ui/client/src/login/authenticationServices/isAdmin.factory.js new file mode 100644 index 0000000000..41b1b29447 --- /dev/null +++ b/awx/ui/client/src/login/authenticationServices/isAdmin.factory.js @@ -0,0 +1,18 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + +/** + * @ngdoc function + * @name + * @description + * + * + */ + + export default + ['$rootScope', function($rootScope) { + return function() { return ($rootScope.current_user && $rootScope.current_user.is_superuser); }; + }]; diff --git a/awx/ui/client/src/login/authenticationServices/main.js b/awx/ui/client/src/login/authenticationServices/main.js new file mode 100644 index 0000000000..a7de90ecc7 --- /dev/null +++ b/awx/ui/client/src/login/authenticationServices/main.js @@ -0,0 +1,19 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + +import authenticationService from './authentication.service'; +import checkAccess from './checkAccess.factory'; +import isAdmin from './isAdmin.factory'; +import timer from './timer.factory'; +import pendoService from './pendo.service'; + +export default + angular.module('authentication', []) + .factory('Authorization', authenticationService) + .factory('CheckAccess', checkAccess) + .factory('IsAdmin', isAdmin) + .factory('Timer', timer) + .service('pendoService', pendoService); diff --git a/awx/ui/client/src/login/authenticationServices/pendo.service.js b/awx/ui/client/src/login/authenticationServices/pendo.service.js new file mode 100644 index 0000000000..82af8ade88 --- /dev/null +++ b/awx/ui/client/src/login/authenticationServices/pendo.service.js @@ -0,0 +1,152 @@ +/************************************************* +* Copyright (c) 2015 Ansible, Inc. +* +* All Rights Reserved +*************************************************/ + + +export default + [ '$rootScope', '$pendolytics', 'Rest', 'GetBasePath', 'ProcessErrors', '$q', + 'Store', '$log', + function ($rootScope, $pendolytics, Rest, GetBasePath, ProcessErrors, $q, + Store, $log) { + return { + setPendoOptions: function (config) { + var tower_version = config.version.split('-')[0], + options = { + visitor: { + id: null, + role: null, + email: null + }, + account: { + id: null, + planLevel: config.license_type, + planPrice: config.instance_count, + creationDate: config.license_date, + trial: config.trial, + tower_version: tower_version, + ansible_version: config.ansible_version + } + }; + if(config.analytics_status === 'detailed'){ + this.setDetailed(options, config); + } + else if(config.analytics_status === 'anonymous'){ + this.setAnonymous(options); + } + return options; + + }, + + setDetailed: function(options, config) { + // Detailed mode + // VisitorId: username+hash of license_key + // AccountId: hash of license_key from license + // email: contact_email from license OR email from Tower account + + options.visitor.id = $rootScope.current_user.username + '@' + config.deployment_id; + options.account.id = config.deployment_id; + options.visitor.email = $rootScope.current_user.email; + }, + + setAnonymous: function (options) { + //Anonymous mode + // VisitorId: + // AccountId: + // email: + + options.visitor.id = 0; + options.account.id = "tower.ansible.com"; + options.visitor.email = ""; + }, + + setRole: function(options) { + var deferred = $q.defer(); + if($rootScope.current_user.is_superuser === true){ + options.visitor.role = 'admin'; + deferred.resolve(options); + } + else{ + var url = GetBasePath('users') + $rootScope.current_user.id + '/admin_of_organizations/'; + Rest.setUrl(url); + var promise = Rest.get(); + promise.then(function (response) { + if(response.data.count > 0 ) { + options.visitor.role = "orgadmin"; + deferred.resolve(options); + } + else { + options.visitor.role = "user"; + deferred.resolve(options); + } + }); + promise.catch(function (response) { + ProcessErrors($rootScope, response.data, response.status, null, { + hdr: 'Error!', + msg: 'Failed to get inventory name. GET returned status: ' + + response.status }); + deferred.reject('Could not resolve pendo role.'); + }); + } + return deferred.promise; + }, + + getConfig: function () { + var config = Store('license'), + deferred = $q.defer(); + if(_.isEmpty(config)){ + var url = GetBasePath('config'); + Rest.setUrl(url); + var promise = Rest.get(); + promise.then(function (response) { + config = response.data.license_info; + config.analytics_status = response.data.analytics_status; + config.version = response.data.version; + config.ansible_version = response.data.ansible_version; + if(config.analytics_status === 'detailed' || config.analytics_status === 'anonymous'){ + $pendolytics.bootstrap(); + deferred.resolve(config); + } + else { + deferred.reject('Pendo is turned off.'); + } + }); + promise.catch(function (response) { + ProcessErrors($rootScope, response.data, response.status, null, { + hdr: 'Error!', + msg: 'Failed to get inventory name. GET returned status: ' + + response.status }); + deferred.reject('Could not resolve pendo config.'); + }); + } + else if(config.analytics_status === 'detailed' || config.analytics_status === 'anonymous'){ + $pendolytics.bootstrap(); + deferred.resolve(config); + } + else { + deferred.reject('Pendo is turned off.'); + } + return deferred.promise; + }, + + issuePendoIdentity: function () { + var that = this; + this.getConfig().then(function(config){ + var options = that.setPendoOptions(config); + that.setRole(options).then(function(options){ + $log.debug('Pendo status is '+ config.analytics_status + '. Object below:'); + $log.debug(options); + $pendolytics.identify(options); + }, function(reason){ + // reject function for setRole + $log.debug(reason); + }); + }, function(reason){ + // reject function for getConfig + $log.debug(reason); + }); + } + }; + } +]; diff --git a/awx/ui/client/src/login/authenticationServices/timer.factory.js b/awx/ui/client/src/login/authenticationServices/timer.factory.js new file mode 100644 index 0000000000..7bbc3356c4 --- /dev/null +++ b/awx/ui/client/src/login/authenticationServices/timer.factory.js @@ -0,0 +1,188 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + + /** + * @ngdoc function + * @name shared.function:Timer + * @description + * Timer.js + * + * Use to track user idle time and expire session. Timeout + * duration set in config.js + * + */ + +/** + * @ngdoc method + * @name shared.function:Timer#TimerService + * @methodOf shared.function:Timer + * @description + */ +export default + ['$rootScope', '$cookieStore', 'transitionTo', 'CreateDialog', 'Authorization', + 'Store', '$interval', '$location', '$q', + function ($rootScope, $cookieStore, transitionTo, CreateDialog, Authorization, + Store, $interval, $location, $q) { + return { + + sessionTime: null, + timeout: null, + + getSessionTime: function () { + if(Store('sessionTime')){ + return Store('sessionTime')[$rootScope.current_user.id].time; + } + else { + return 0; + } + }, + + isExpired: function (increase) { + var stime = this.getSessionTime(), + now = new Date().getTime(); + if ((stime - now) <= 0) { + //expired + return true; + } + else if(increase){ + return false; + } + else{ + // not expired. move timer forward. + this.moveForward(); + return false; + } + }, + + isIdle: function() { + var stime = this.getSessionTime()/1000, + now = new Date().getTime()/1000, + diff = stime-now; + + if(diff < 61){ + return diff; + } + else { + return false; + } + }, + + expireSession: function (reason) { + if(reason === 'session_limit'){ + $rootScope.sessionLimitExpired = true; + $rootScope.sessionExpired = false; + } + else if(reason === 'idle'){ + $rootScope.sessionExpired = true; + $rootScope.sessionLimitExpired = false; + } + this.sessionTime = 0; + this.clearTimers(); + $cookieStore.put('sessionExpired', true); + }, + + moveForward: function () { + var tm, t, x, y; + tm = ($AnsibleConfig.session_timeout) ? $AnsibleConfig.session_timeout : 1800; + t = new Date().getTime() + (tm * 1000); + x = { + time: t, + loggedIn: true + }; + if(Store('sessionTime')){ + y = Store('sessionTime'); + } + else { + y = {}; + } + y[$rootScope.current_user.id] = x; + Store('sessionTime' , y); + $rootScope.sessionExpired = false; + $cookieStore.put('sessionExpired', false); + this.startTimers(); + }, + + startTimers: function(){ + var that = this; + this.clearTimers(); + $rootScope.expireTimer = $interval(function() { + var idle = that.isIdle(); + if(idle !== false){ + if($('#idle-modal').is(':visible')){ + $('#remaining_seconds').html(Math.round(idle)); + } + else { + var buttons = [{ + "label": "Continue", + "onClick": function() { + // make a rest call here to force the API to + // move the session time forward + Authorization.getUser(); + that.moveForward(); + $(this).dialog('close'); + }, + "class": "btn btn-primary", + "id": "idle-modal-button" + }]; + + if ($rootScope.removeIdleDialogReady) { + $rootScope.removeIdleDialogReady(); + } + $rootScope.removeIdleDialogReady = $rootScope.$on('IdleDialogReady', function() { + $('#idle-modal').show(); + $('#idle-modal').dialog('open'); + }); + CreateDialog({ + id: 'idle-modal' , + title: "Idle Session", + scope: $rootScope, + buttons: buttons, + width: 470, + height: 240, + minWidth: 200, + callback: 'IdleDialogReady' + }); + } + } + else if(!idle){ + if($('#idle-modal').is(':visible')){ + $('#idle-modal').dialog('close'); + } + } + if (that.isExpired(true)) { + if($('#idle-modal').dialog('isOpen')){ + $('#idle-modal').dialog('close'); + } + that.expireSession('idle'); + $location.url('/login'); + } + if(Store('sessionTime') && + Store('sessionTime')[$rootScope.current_user.id] && + Store('sessionTime')[$rootScope.current_user.id].loggedIn === false){ + that.expireSession(); + $location.url('/login'); + + } + + }, 1000); + + }, + + clearTimers: function(){ + $interval.cancel($rootScope.expireTimer); + delete $rootScope.expireTimer; + }, + + init: function () { + var deferred = $q.defer(); + this.moveForward(); + deferred.resolve(this); + return deferred.promise; + + } + }; + } +]; diff --git a/awx/ui/client/src/login/login.route.js b/awx/ui/client/src/login/login.route.js new file mode 100644 index 0000000000..9f0bd8766b --- /dev/null +++ b/awx/ui/client/src/login/login.route.js @@ -0,0 +1,13 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + +import {templateUrl} from '../shared/template-url/template-url.factory'; + +export default { + name: 'signIn', + route: '/login', + templateUrl: templateUrl('login/loginBackDrop') +}; diff --git a/awx/ui/client/src/login/loginBackDrop.partial.html b/awx/ui/client/src/login/loginBackDrop.partial.html new file mode 100644 index 0000000000..d3804e3f78 --- /dev/null +++ b/awx/ui/client/src/login/loginBackDrop.partial.html @@ -0,0 +1,3 @@ +
      + +
      diff --git a/awx/ui/client/src/login/loginModal/loginModal.block.less b/awx/ui/client/src/login/loginModal/loginModal.block.less new file mode 100644 index 0000000000..262ab3a736 --- /dev/null +++ b/awx/ui/client/src/login/loginModal/loginModal.block.less @@ -0,0 +1,40 @@ +/** @define LoginModal */ + +.LoginModal-header { + text-align: center; + background-color: #171717; +} + +.LoginModal-logoImage { + max-width: 100%; +} + +.LoginModal-alert { + margin-bottom: 25px; + font-size: 14px; + font-weight: normal; + color: #1778c3; + text-align: center; +} + +.LoginModal-alert--error { + color: #ff5850; +} + +.LoginModal-labelAsterisk:before { + margin-right: -2px; +} + +.LoginModal-footer { + display: flex; + align-items: center; +} + +.LoginModal-footerBlock { + flex: 1 0 auto; + text-align: left; +} + +.LoginModal-footerBlock--submit { + text-align: right; +} diff --git a/awx/ui/static/js/controllers/Authentication.js b/awx/ui/client/src/login/loginModal/loginModal.controller.js similarity index 61% rename from awx/ui/static/js/controllers/Authentication.js rename to awx/ui/client/src/login/loginModal/loginModal.controller.js index 9f0e557208..a2aefb3fdb 100644 --- a/awx/ui/static/js/controllers/Authentication.js +++ b/awx/ui/client/src/login/loginModal/loginModal.controller.js @@ -54,12 +54,12 @@ * This is usage information. */ +export default ['$log', '$cookieStore', '$compile', '$window', '$rootScope', '$location', 'Authorization', 'ToggleClass', 'Alert', 'Wait', + 'Timer', 'Empty', 'ClearScope', '$scope', 'pendoService', + function ($log, $cookieStore, $compile, $window, $rootScope, $location, Authorization, ToggleClass, Alert, Wait, + Timer, Empty, ClearScope, scope, pendoService) { -export function Authenticate($log, $cookieStore, $compile, $window, $rootScope, $location, Authorization, ToggleClass, Alert, Wait, - Timer, Empty, ClearScope) { - - var setLoginFocus, lastPath, sessionExpired, loginAgain, - e, html, scope = $rootScope.$new(); + var setLoginFocus, lastPath, lastUser, sessionExpired, loginAgain; setLoginFocus = function () { // Need to clear out any open dialog windows that might be open when this modal opens. @@ -68,10 +68,8 @@ export function Authenticate($log, $cookieStore, $compile, $window, $rootScope, }; loginAgain = function() { - Authorization.logout(); setTimeout(function() { - //$location.url('/logout'); - window.location = '/#/logout'; // if we get here, force user back to re-login + $location.path('/logout'); }, 1000); }; @@ -83,6 +81,15 @@ export function Authenticate($log, $cookieStore, $compile, $window, $rootScope, return (Empty($rootScope.lastPath)) ? $cookieStore.get('lastPath') : $rootScope.lastPath; }; + lastUser = function(){ + if(!Empty($rootScope.lastUser) && $rootScope.lastUser === $rootScope.current_user.id){ + return true; + } + else { + return false; + } + }; + $log.debug('User session expired: ' + sessionExpired); $log.debug('Last URL: ' + lastPath()); @@ -98,55 +105,17 @@ export function Authenticate($log, $cookieStore, $compile, $window, $rootScope, Wait('stop'); window.scrollTo(0,0); - if ($location.path() === '/logout') { - //if logout request, clear AuthToken and user session data - Authorization.logout(); - } - - e = angular.element(document.getElementById('login-modal-content')); - html = "
      \n" + - "" + - "
      \n" + - "
      \n" + - "
      Welcome to Ansible Tower!  Please sign in.
      \n" + - "
      Your session timed out due to inactivity. Please sign in.
      \n" + - "\n" + - "
      \n" + - "\n" + - "
      \n" + - "\n" + - "
      Please enter a username.
      \n" + - "
      \n" + - "
      \n" + - "
      \n" + - "
      \n" + - "\n" + - "
      \n" + - "\n" + - "
      Please enter a password.
      \n" + - "
      \n" + - "
      \n" + - "
      \n" + - "\n" + - "
      \n" + - "
      \n" + - "\n" + - "
      \n"; - e.empty().html(html); - $compile(e)(scope); - // Set focus to username field $('#login-modal').on('shown.bs.modal', function () { setLoginFocus(); }); - // Display the login dialog - $('#login-modal').modal({ - show: true, - keyboard: false, - backdrop: 'static' + + $rootScope.loginConfig.promise.then(function () { + scope.customLogo = ($AnsibleConfig.custom_logo) ? "custom_console_logo.png" : "tower_console_logo.png"; + + scope.customLoginInfo = $AnsibleConfig.custom_login_info; + scope.customLoginInfoPresent = ($AnsibleConfig.customLoginInfo) ? true : false; }); // Reset the login form @@ -175,8 +144,9 @@ export function Authenticate($log, $cookieStore, $compile, $window, $rootScope, Authorization.getLicense() .success(function (data) { Authorization.setLicense(data); + pendoService.issuePendoIdentity(); Wait("stop"); - if (lastPath()) { + if (lastPath() && lastUser()) { // Go back to most recent navigation path $location.path(lastPath()); } else { @@ -197,8 +167,12 @@ export function Authenticate($log, $cookieStore, $compile, $window, $rootScope, Authorization.getUser() .success(function (data) { Authorization.setUserInfo(data); - $rootScope.user_is_superuser = data.results[0].is_superuser; - scope.$emit('AuthorizationGetLicense'); + Timer.init().then(function(timer){ + $rootScope.sessionTimer = timer; + $rootScope.$emit('OpenSocket'); + $rootScope.user_is_superuser = data.results[0].is_superuser; + scope.$emit('AuthorizationGetLicense'); + }); }) .error(function (data, status) { Authorization.logout(); @@ -211,42 +185,29 @@ export function Authenticate($log, $cookieStore, $compile, $window, $rootScope, scope.systemLogin = function (username, password) { $('.api-error').empty(); if (Empty(username) || Empty(password)) { - Alert('Error!', 'Please provide a username and password before attempting to login.', 'alert-danger', setLoginFocus, null, null, false); + scope.reset(); + scope.attemptFailed = true; } else { Wait('start'); Authorization.retrieveToken(username, password) - .success(function (data) { + .then(function (data) { $('#login-modal').modal('hide'); - Authorization.setToken(data.token, data.expires); - $rootScope.sessionTimer = Timer.init(); + Authorization.setToken(data.data.token, data.data.expires); scope.$emit('AuthorizationGetUser'); - }) - .error(function (data) { - var hdr, msg, key; + }, + function (data) { + var key; Wait('stop'); - if (data.non_field_errors && data.non_field_errors.length === 0) { + if (data && data.data && data.data.non_field_errors && data.data.non_field_errors.length === 0) { // show field specific errors returned by the API - for (key in data) { - scope[key + 'Error'] = data[key][0]; + for (key in data.data) { + scope[key + 'Error'] = data.data[key][0]; } } else { - if (data.non_field_errors && data.non_field_errors.length > 0) { - hdr = 'Error'; - msg = data.non_field_errors[0]; - } - else { - hdr = 'Error'; - msg = 'The login attempt failed. The Tower server is not responding. Check that the Tower server processes are running' + - ' and accessible.'; - } scope.reset(); - Alert(hdr, msg, 'alert-danger', setLoginFocus, null, null, false); + scope.attemptFailed = true; } }); } }; -} - -Authenticate.$inject = ['$log', '$cookieStore', '$compile', '$window', '$rootScope', '$location', 'Authorization', 'ToggleClass', 'Alert', 'Wait', - 'Timer', 'Empty', 'ClearScope' -]; +}]; diff --git a/awx/ui/client/src/login/loginModal/loginModal.directive.js b/awx/ui/client/src/login/loginModal/loginModal.directive.js new file mode 100644 index 0000000000..4d5964025f --- /dev/null +++ b/awx/ui/client/src/login/loginModal/loginModal.directive.js @@ -0,0 +1,27 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ +import authenticationController from './loginModal.controller'; + +/* jshint unused: vars */ +export default + [ 'templateUrl', + function(templateUrl) { + return { + restrict: 'E', + scope: true, + controller: authenticationController, + templateUrl: templateUrl('login/loginModal/loginModal'), + link: function(scope, element, attrs) { + // Display the login dialog + $('#login-modal').modal({ + show: true, + keyboard: false, + backdrop: 'static' + }); + } + }; + } + ]; diff --git a/awx/ui/client/src/login/loginModal/loginModal.partial.html b/awx/ui/client/src/login/loginModal/loginModal.partial.html new file mode 100644 index 0000000000..09461b5032 --- /dev/null +++ b/awx/ui/client/src/login/loginModal/loginModal.partial.html @@ -0,0 +1,91 @@ + diff --git a/awx/ui/client/src/login/loginModal/loginMotalNotice.block.less b/awx/ui/client/src/login/loginModal/loginMotalNotice.block.less new file mode 100644 index 0000000000..efcd8a5cf5 --- /dev/null +++ b/awx/ui/client/src/login/loginModal/loginMotalNotice.block.less @@ -0,0 +1,18 @@ +/** @define LoginModalNotice */ +.LoginModalNotice { + font-size: 12px; + width: 100%; + height: 129px; + padding: 5px 10px; + border-radius: 4px; + border: 0px; + background-color: #efefef; + overflow: scroll; +} + +.LoginModalNotice-title { + color: #808080; + font-weight: bold; + padding-bottom: 4px; + font-size: 14px; +} diff --git a/awx/ui/client/src/login/loginModal/main.js b/awx/ui/client/src/login/loginModal/main.js new file mode 100644 index 0000000000..3d063d4e1c --- /dev/null +++ b/awx/ui/client/src/login/loginModal/main.js @@ -0,0 +1,13 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + +import thirdPartySignOn from './thirdPartySignOn/main'; + +import loginModalDirective from './loginModal.directive'; + +export default + angular.module('loginModal', [thirdPartySignOn.name]) + .directive('loginModal', loginModalDirective); diff --git a/awx/ui/client/src/login/loginModal/thirdPartySignOn/main.js b/awx/ui/client/src/login/loginModal/thirdPartySignOn/main.js new file mode 100644 index 0000000000..138930b047 --- /dev/null +++ b/awx/ui/client/src/login/loginModal/thirdPartySignOn/main.js @@ -0,0 +1,13 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + +import thirdPartySignOnDirective from './thirdPartySignOn.directive'; +import thirdPartySignOnService from './thirdPartySignOn.service'; + +export default + angular.module('thirdPartySignOn', []) + .directive('thirdPartySignOn', thirdPartySignOnDirective) + .factory('thirdPartySignOnService', thirdPartySignOnService) diff --git a/awx/ui/client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.block.less b/awx/ui/client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.block.less new file mode 100644 index 0000000000..0f466f5075 --- /dev/null +++ b/awx/ui/client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.block.less @@ -0,0 +1,47 @@ +/** @define ThirdPartySignOn */ + +.ThirdPartySignOn { + display: flex; + align-items: center; +} + +.ThirdPartySignOn-label { + flex: initial; + font-weight: bold; + color: #717680; +} + +.ThirdPartySignOn-item { + margin-left: 15px; +} + +.ThirdPartySignOn-button { + flex: 1 0 auto; + height: 30px; + width: 30px; + border-radius: 50%; + color: #C1C1C1; + background-color: #fff; + border: 0; + padding: 0; +} + +.ThirdPartySignOn-button--error { + color: #ff5850; +} + +.ThirdPartySignOn-button:hover { + color: #717680; +} + +.ThirdPartySignOn-button--error:hover { + color: #FF1105; +} + +.ThirdPartySignOn-icon { + font-size: 35px; +} + +.ThirdPartySignOn-icon--fontCustom { + font-size: 30px; +} diff --git a/awx/ui/client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.controller.js b/awx/ui/client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.controller.js new file mode 100644 index 0000000000..ada4a2e203 --- /dev/null +++ b/awx/ui/client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.controller.js @@ -0,0 +1,36 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + +/** + * @ngdoc function + * @name controllers.function:thirdPartySignOn + * @description + * Controller for handling third party supported login options. + */ + +export default ['$window', '$scope', 'thirdPartySignOnService', + function ($window, $scope, thirdPartySignOnService) { + + thirdPartySignOnService( + {scope: $scope, url: "api/v1/auth/"}).then(function (data) { + if (data && data.options && data.options.length > 0) { + $scope.thirdPartyLoginSupported = true; + $scope.loginItems = data.options; + } else { + $scope.thirdPartyLoginSupported = false; + } + + if (data && data.error) { + $scope.$parent.thirdPartyAttemptFailed = data.error; + } + }) + + $scope.goTo = function(link) { + // this is used because $location only lets you navigate inside + // the "/#/" path, and these are API urls. + $window.location.href = link; + }; + }]; diff --git a/awx/ui/client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.directive.js b/awx/ui/client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.directive.js new file mode 100644 index 0000000000..91c6a085c2 --- /dev/null +++ b/awx/ui/client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.directive.js @@ -0,0 +1,23 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + +/* jshint unused: vars */ + +import thirdPartySignOnController from './thirdPartySignOn.controller'; + +export default + [ 'templateUrl', + function(templateUrl) { + return { + restrict: 'E', + scope: true, + controller: thirdPartySignOnController, + templateUrl: templateUrl('login/loginModal/thirdPartySignOn/thirdPartySignOn'), + link: function(scope, element, attrs) { + } + }; + } + ]; diff --git a/awx/ui/client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.partial.html b/awx/ui/client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.partial.html new file mode 100644 index 0000000000..94e3ba9504 --- /dev/null +++ b/awx/ui/client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.partial.html @@ -0,0 +1,13 @@ +
      +
      + Sign In With +
      +
      + +
      +
      diff --git a/awx/ui/client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.service.js b/awx/ui/client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.service.js new file mode 100644 index 0000000000..6b55f34881 --- /dev/null +++ b/awx/ui/client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.service.js @@ -0,0 +1,110 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + + /** + * @ngdoc function + * @name helpers.function:Permissions + * @description + * Gets the configured auth types based on the configurations set in the server + * + */ + + export default + ['$http', 'ProcessErrors', function($http, ProcessErrors) { + return function (params) { + var scope = params.scope, + url = params.url; + + return $http({ + method: 'GET', + url: url, + }).then(function (data) { + var options = [], + error = ""; + + function parseGoogle(option) { + var newOption = {}; + + newOption.type = "google"; + newOption.icon = "ThirdPartySignOn-icon--fontCustom icon-google"; + newOption.link = option.login_url; + newOption.tooltip = "Sign in with Google"; + + return newOption; + } + + function parseGithub(option, key) { + var newOption = {}; + + newOption.type = "github"; + newOption.icon = "fa-github"; + newOption.link = option.login_url; + newOption.tooltip = "Sign in with GitHub"; + + // if this is a GitHub team or org, add that to + // the tooltip + if (key.split("-")[1]){ + if (key.split("-")[1] === "team") { + newOption.tooltip += " Teams"; + } else if (key.split("-")[1] === "org") { + newOption.tooltip += " Organizations"; + } + } + + return newOption; + } + + function parseSaml(option, key) { + var newOption = {}; + + newOption.type = "saml"; + newOption.icon = "ThirdPartySignOn-icon--fontCustom icon-saml-02"; + newOption.link = option.login_url; + newOption.tooltip = "Sign in with SAML"; + + // add the idp of the saml type to the tooltip + if (key.split(":")[1]){ + newOption.tooltip += " (" + key.split(":")[1] + ")"; + } + + return newOption; + } + + function parseLoginOption(option, key) { + var finalOption; + + // set up the particular tooltip, icon, etc. + // needed by the login type + if (key.split("-")[0] === "google") { + finalOption = parseGoogle(option, key); + } else if (key.split("-")[0] === "github") { + finalOption = parseGithub(option, key); + } else if (key.split(":")[0] === "saml") { + finalOption = parseSaml(option, key); + } + + // set the button to error red and set the error message to be passed to the login modal. + if (option.error) { + finalOption.button = "ThirdPartySignOn-button--error"; + error = option.error; + } + + options.push(finalOption); + } + + // iterate over each login option passed from the API + _.forEach(data.data, parseLoginOption); + + // return the options and the error to be utilized + // by the loginModal + return {"options": options, "error": error}; + }) + .catch(function (data) { + ProcessErrors(scope, data.data, data.status, null, { hdr: 'Error!', + msg: 'Failed to get third-party login types. Returned status: ' + data.status }); + }); + }; + }]; diff --git a/awx/ui/client/src/login/logout.route.js b/awx/ui/client/src/login/logout.route.js new file mode 100644 index 0000000000..86f4be8f29 --- /dev/null +++ b/awx/ui/client/src/login/logout.route.js @@ -0,0 +1,17 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + +// import {templateUrl} from '../../shared/template-url/template-url.factory'; + +export default { + name: 'signOut', + route: '/logout', + controller: ['Authorization', '$location', function(Authorization, $location) { + Authorization.logout(); + $location.path('/login'); + }], + templateUrl: '/static/partials/blank.html' +}; diff --git a/awx/ui/client/src/login/main.js b/awx/ui/client/src/login/main.js new file mode 100644 index 0000000000..e4326a7d89 --- /dev/null +++ b/awx/ui/client/src/login/main.js @@ -0,0 +1,22 @@ +/************************************************* + * Copyright (c) 2015 Ansible, Inc. + * + * All Rights Reserved + *************************************************/ + +import authentication from './authenticationServices/main'; +import loginModal from './loginModal/main'; + +import loginRoute from './login.route'; +import logoutRoute from './logout.route'; + +export default + angular.module('login', [authentication.name, loginModal.name]) + .config(['$routeProvider', function($routeProvider) { + var url = loginRoute.route; + delete loginRoute.route; + $routeProvider.when(url, loginRoute); + url = logoutRoute.route; + delete logoutRoute.route; + $routeProvider.when(url, logoutRoute); + }]); diff --git a/awx/ui/client/src/main-menu/default-menu.directive.js b/awx/ui/client/src/main-menu/default-menu.directive.js new file mode 100644 index 0000000000..59e7039be5 --- /dev/null +++ b/awx/ui/client/src/main-menu/default-menu.directive.js @@ -0,0 +1,18 @@ +export default + [ 'templateUrl', + function(templateUrl) { + return { + restrict: 'E', + templateUrl: templateUrl('main-menu/menu-default'), + link: function(scope, element) { + var contents = element.contents(); + contents.unwrap(); + + scope.$on('$destroy', function() { + contents.remove(); + $(".MenuItem--socketStatus").remove(); + }); + } + }; + } + ]; diff --git a/awx/ui/static/js/main-menu/main-menu.block.less b/awx/ui/client/src/main-menu/main-menu.block.less similarity index 100% rename from awx/ui/static/js/main-menu/main-menu.block.less rename to awx/ui/client/src/main-menu/main-menu.block.less diff --git a/awx/ui/client/src/main-menu/main-menu.directive.js b/awx/ui/client/src/main-menu/main-menu.directive.js new file mode 100644 index 0000000000..ad139cd24e --- /dev/null +++ b/awx/ui/client/src/main-menu/main-menu.directive.js @@ -0,0 +1,48 @@ +/* jshint unused: vars */ + +export default + [ 'templateUrl', + function(templateUrl) { + return { + restrict: 'E', + controllerAs: 'mainMenu', + templateUrl: templateUrl('main-menu/main-menu'), + controller: ['$scope', function($scope) { + this.open = function() { + $scope.isOpen = true; + }; + + this.close = function() { + $scope.isOpen = false; + }; + + this.toggle = function() { + $scope.isOpen = !$scope.isOpen; + }; + + $scope.isOpen = false; + }], + scope: { + menuStyle: '&menuStyle', + currentUser: '=' + }, + link: function(scope, element, attrs) { + scope.menuStyleClassName = 'blah'; + scope.$watch(function() { + return scope.$eval(scope.menuStyle); + }, function(newValue) { + scope.menuStyleClassName = 'MainMenu--' + newValue; + }); + scope.$watch('isOpen', function(isOpen) { + if (isOpen) { + element.find('.MainMenu').addClass("Menu--open"); + element.find('menu-toggle-button').addClass("MenuToggle--open"); + } else { + element.find('.MainMenu').removeClass("Menu--open"); + element.find('menu-toggle-button').removeClass("MenuToggle--open"); + } + }); + } + }; + } + ]; diff --git a/awx/ui/static/js/main-menu/main-menu.partial.html b/awx/ui/client/src/main-menu/main-menu.partial.html similarity index 91% rename from awx/ui/static/js/main-menu/main-menu.partial.html rename to awx/ui/client/src/main-menu/main-menu.partial.html index 4fc142f685..3a423318e2 100644 --- a/awx/ui/static/js/main-menu/main-menu.partial.html +++ b/awx/ui/client/src/main-menu/main-menu.partial.html @@ -1,6 +1,6 @@