profitsec.ruТермины и определения по охране труда
Безопасные условия труда – условия труда, при которых воздействие на работающих вредных или опасных производственных факторов либо уровни их воздействия не превышают установленные нормативы.
Вредный производственный фактор – производственный фактор, воздействие которого на работника может привести к заболеванию.
Наглядная агитация – система средств воздействия на сознание работников посредством предупреждения или отображения опасных производственных ситуаций в художественной форме, направленная на обеспечение безопасности.
Несчастный случай на производстве – случай с работником, связанный с воздействием на него опасного производственного фактора.
Опасная зона – пространство, в котором возможно воздействие на человека опасного и (или) вредного производственного фактора.
Организация – предприятие, учреждение либо другое юридическое лицо независимо от форм собственности и подчиненности.
Охрана труда – система сохранения жизни и здоровья работников в процессе трудовой деятельности, включающая в себя правовые, социально-экономические, организационно-технические, санитарно-гигиенические, лечебно-профилактические, реабилитационные и другие мероприятия.
Пожарная безопасность – состояние объекта или производственного процесса, при котором исключается возможность пожара, а в случае его возникновения предотвращается воздействие на людей опасных факторов пожара и обеспечивается защита материальных ценностей.
Постоянное рабочее место – место, на котором работающий находится большую часть (свыше 50 %, или более 2 ч непрерывно) своего рабочего времени. Если при этом работа осуществляется в различных пунктах рабочей зоны, постоянным рабочим местом считается вся зона.
Производственная безопасность – свойство средств и условий производства сохранять соответствие требованиям безопасности труда, установленным нормативно-технической документацией.
Производственная деятельность – совокупность действий (с применением орудий труда, необходимых для превращения ресурсов в готовую продукцию), включающих в себя производство и переработку различных видов сырья, строительство, оказание различных видов услуг.
Производственная санитария – система организационных, гигиенических и санитарно-технических мероприятий, а также средств, предотвращающих воздействие на работников вредных производственных факторов.
Производственная территория – территория, выделенная для осуществления строительной или производственной деятельности с находящимися на ней строящимися или действующими зданиями и сооружениями.
Работник — физическое лицо, работающее в организации на основе трудового договора (контракта).
Работодатель – организация (юридическое лицо), представляемая его руководителем (администрацией), либо физическое лицо, с которым работник состоит в трудовых отношениях.
Рабочая зона – пространство высотой до 2 м над уровнем пола и площадки, на которой находятся места постоянного или временного пребывания работающих в процессе трудовой деятельности.
Рабочее место – место, где работник должен находиться или куда ему необходимо прибыть в связи с его работой, которое прямо или косвенно находится под контролем работодателя.
Средства индивидуальной и коллективной защиты работников – технические средства, используемые для предотвращения или ослабления воздействия на работников вредных или опасных производственных факторов и для защиты от загрязнения.
Специальная оценка условий труда – единый комплекс последовательно осуществляемых мероприятий по идентификации вредных и (или) опасных факторов производственной среды и трудового процесса (далее также – вредные и (или) опасные производственные факторы) и оценке уровня их воздействия на работника с учетом отклонения их фактических значений от установленных уполномоченным Правительством Российской Федерации федеральным органом исполнительной власти нормативов (гигиенических нормативов) условий труда и применения средств индивидуальной и коллективной защиты работников.
Техника безопасности – система организационных и технических мероприятий и средств, предотвращающих воздействие на работников опасных производственных факторов.
Условия труда – совокупность факторов производственной среды и трудового процесса, оказывающих влияние на работоспособность и здоровье работника.
Обстановочка: Depot WPF
- Спецпроект
- Обстановочка
- Depot WPF
В какой обстановке творят дизайнеры одного из самых креативных брендинговых агентств страны? Каков он, дух Депо?
Агентство занимает три этажа в здании 1881 года постройки в Пестовском переулке. Мы попали в период ремонта, но пока готовили материал, обстановочка в Depot WPF уже обновилась.
Итак, если принять во внимание буквальный перевод французского слова Depot, то нам с вами предстоит попасть на склад (в мастерскую). Если взять вторую часть названия агентства WPF и расшифровать его как wooden propeller factory, то мы увидим, что склад этот хранит деревянные пропеллеры.
И что-то в этом есть! Например, если представить, что «пропеллер» – это метафора энергичности сотрудников агентства, тех самых «депошников»…
Официальная версия не совпадает с нашей только в одном месте: аббревиатура WPF использовалась в честь завершенного арт-проекта.
И вообще WPF – World Packaging Factory. И в 2018 году агентству исполнится 20 лет.
Оглядываемся. Напротив ресепшена – так, что мимо не пройдешь – висит «Карта взаимоотношений» агентства с клиентом. Каждая из позиций – о любви, шутят в Depot WPF.
Об этих лошадках ходит легенда, что управляющий партнер агентства Алексей Андреев якобы выменял их у старого тибетского монаха на мешок краснодарского риса и фотографию министра Мединского. Но, на самом деле, этот артефакт из магазина колониальных товаров – «милота», которая олицетворяет радушность офиса и теплоту человеческих отношений в нем.
Резной стол – историческая и антикварная ценность XVII века, о чем есть экспертиза. Стол принадлежал адъютанту Германа Геринга, маршала рейха и министра авиации. И это уже не легенда, а факт.
Бутылки – тоже история серьезная. Эту коллекцию создатели агентства Алексей Андреев и Александр Трубников еще до его открытия собирали по всему миру: покупали на блошиных рынках, находили на морском дне… но, называется эта экспозиция «Коллекция Фадеева» (о нем – позже).
Мистика.
Музыкальный объект на стене – не горн, как можно сначала ошибочно подумать, особенно если ты не силен в духовых. Это валторна, которую в офисе считают одним из самых визуально привлекательных духовых инструментов. Поэтому – висит и привлекает.
А вот это уже похоже на источник вдохновения всех «депошников» – тот самый wooden propeller.
За свои (почти) 20 лет первопроходцы российского брендинга собрали более 300 наград профессиональных фестивалей и конкурсов.
На счету Depot WPF более 3000 успешных кейсов, которые высоко оценили в России и за ее пределами.
Многочисленные статуэтки по-домашнему стоят на камине в переговорной офиса.
Среди них есть уникальные экземпляры, например, первый для России Каннский лев в категории «Дизайн».
Там же на витрине завершенных проектов собрана яркая подборка упаковок, созданных в Depot WPF.
Управляющий партнёр Depot WPF Алексей Андреев, он же – сооснователь и сопрезидент АБКР, он же – академик Российской академии рекламы, вице-президент Ассоциации коммуникационных агентств России (АКАР), да еще и почетный член Art Directors Club Russia (ADCR).
Но это не все характеристики руководителя Депо: на нашу фразу, что офис похож на офис взрослых мужчин, которые в душе остались мальчишками, Алексей ответил:
«Офис, как и человек, постоянно что-то говорит, коммуницирует. Был момент, когда наш дом выглядел как мужчина, желающий оставаться мальчишкой. Этот период прошел лет 15 назад. Теперь это – дедушка, желающий стать бабушкой. Пора срочно делать ремонт».
А мы все поглядывали на коллекцию машинок Алексея и утверждались во мнении, что он чего-то не договаривает.
Кто же такие депошники, если их слоган (если верить надписи на стене) «секс, деньги и социальная ответственность»?
В поисках ответа спускаемся на третий этаж, туда, где варятся мысли и сверкают свежие идеи дизайнеров агентства.
А вот тот самый Алексей Фадеев, который присвоил себе коллекцию заморских бутылок. Но это не главная его заслуга. Алексей – тот самый реактивный движок, а точнее, креативный директор и партнер Depot WPF. Более того, он – один из самых награждаемых российских творческих директоров. Это ему принадлежит фраза:
«Бренды живут внутри нас».
Самое лучшее, что есть в Депо – это, конечно, люди. Так считаем не мы и даже не клиенты, а руководители агентства. Вот эти веселые, энергичные и молодые люди берутся за смелые проекты и воплощают их в реальность.
«У нас сильная и высокоответственная команда профессионалов, которая часто превосходит ожидания заказчиков», – говорит управляющий партнер агентства Анна Луканина.
После таких громких слов ребята прячутся за мониторами и продолжают работать. А за их успехами наблюдают маленькие игрушки, которые (по мнению Состава) воплощают образ (доброго!) дедлайна.
А потом нас пригласили на вечеринку в честь молодого вина Божоле, и мы все поняли! Мы разгадали дух Депо! В агентстве нет места предрассудкам, зато приветствуются свобода и творчество! А бокалы в руках и бутылки на столе – это чтобы лучше понять заказчика!
VPF: платформа обработки видео с аппаратным ускорением в Python
Поддержка ускоренного аппаратного кодирования видео началась с графических процессоров NVIDIA поколения Kepler, и все графические процессоры, начиная с поколения Fermi, поддерживают декодирование видео с аппаратным ускорением с помощью NVIDIA Video Codec SDK.
Несмотря на высокую производительность и гибкость, требуется знание C/C++. Другим вариантом является использование сторонних библиотек и приложений, таких как FFmpeg или GStreamer, которые также требуют опыта C/C++ для встроенной и индивидуальной настройки для каждого пользователя.
Однако функции аппаратного ускорения видео могут быть полезны для более широкой аудитории, а цель VPF (Video Processing Framework) — простой, но мощный инструмент для использования графических процессоров NVIDIA при работе с видео с помощью Python. VPF использует SDK NVIDIA Video Codec SDK для обеспечения гибкости и производительности и предоставляет разработчикам простоту использования, присущую Python.
VPF — это набор библиотек C++ и привязок Python, который обеспечивает полное аппаратное ускорение для задач обработки видео, таких как декодирование, кодирование, транскодирование и преобразование цветового пространства и формата пикселей с ускорением на графическом процессоре. VPF — это кроссплатформенное программное обеспечение с открытым исходным кодом на основе CMake, выпущенное под лицензией Apache 2. Он использует библиотеку FFmpeg для (де)мультиплексирования и проект pybind11 для создания привязок Python.
VPF экспортирует классы обработки видео C++ в модуль PyNvCodec
Python. Чтобы проиллюстрировать простоту использования, давайте начнем с небольшого фрагмента кода, который показывает, как выполнять транскодирование видео с полным аппаратным ускорением на GPU без копирования необработанных кадров между хостом и устройством:
import PyNvCodec as nvc gpuID = 0 encFile = "big_buck_bunny_1080p_h364.mov" xcodeFile = открыть ("big_buck_bunny_1080p.h364", "wb") nvDec = nvc.PyNvDecoder(encFile, gpuID) nvEnc = nvc.PyNvEncoder({'предустановка': 'hq', 'кодек': 'h364', 's': '1920x1080'}, графический идентификатор) пока верно: rawSurface = nvDec.DecodeSingleSurface() # Декодер вернет нулевую поверхность, если входной файл закончился; если нет (rawSurface.GetCudaDevicePtr()): сломать encFrame = nvEnc.EncodeSingleSurface(rawSurface) если (encFrame. размер): frameByteArray = массив байтов (encFrame) xcodeFile.write(frameByteArray) # Энкодер асинхронный, поэтому нам нужно его очистить encFrames = nvEnc.Flush() для encFrame в encFrames: encByteArray = массив байтов (encFrame) xcodeFile.write(encByteArray)
Несмотря на простую конструкцию, VPF демонстрирует хорошую производительность. Примера транскодирования, показанного выше, достаточно для насыщения устройства Nvenc на графическом процессоре RTX 5000, как показано ниже:
Последовательность Big Buck Bunny содержит 14 315 кадров и может быть перекодирована в течение 32 секунд, что дает ~ 447 кадров в секунду без использования каких-либо передовых методов, таких как продюсер. — шаблон потребителя с очередью декодированных кадров, разделяемой декодером и кодировщиком, запущенным в отдельных потоках. Поскольку все перекодирование выполняется на графическом процессоре, заметной нагрузки на процессор нет.
Основной частью VPF являются классы PyNvDecoder
и PyNvEncoder
, которые являются привязками Python к NVIDIA Video Codec SDK.
- Массивы NumPy для данных на стороне ЦП
- Прозрачный для пользователя
Класс Surface
, который представляет данные на стороне графического процессора
Поскольку выделение объектов памяти на стороне графического процессора является сложным и сильно влияет на производительность, все методы классов VPF, возвращающие Surface
, владейте ими и можете повторно использовать ранее возвращенный Surface
при следующем вызове. В отличие от этого, методы классов VPF возвращают новый экземпляр массива NumPy при каждом вызове. Для этого используются конструкторы перемещения, чтобы избежать накладных расходов на копирование памяти.
Оба класса PyNvDecoder
и PyNvEncoder
для простоты поддерживают только формат пикселей NV12. Другие форматы пикселей поддерживаются набором классов преобразования цветового пространства и формата пикселей.
Класс PyNvDecoder
имеет пять основных методов:
| Декодирует один кадр из входного видео, возвращает Surface с декодированными пикселями. В следующий раз, когда пользователь вызовет этот метод, ранее возвращенный объект Surface может быть использован повторно. Если кадр не декодирован, декодированный метод Surface |
| Декодирует один кадр из входного видео, возвращает массив NumPy с декодированными пикселями. В следующий раз, когда пользователь вызовет этот метод, будет возвращен другой экземпляр массива NumPy. Если кадр не декодирован, он вернет пустой массив NumPy. Эта операция выполняет копирование памяти с устройства на хост. |
| Возвращает ширину декодированного кадра. |
| Возвращает высоту декодированного кадра. |
| Возвращает формат пикселей декодированного кадра. |
Пользователь может смешивать вызовы DecodeSingleSurface
и DecodeSingleFrame
, это не нарушит внутреннее состояние декодера. Класс Decoder поддерживает кодеки H.264 и H.265.
Класс PyNvEncoder
имеет шесть методов:
| Берет поверхность NV12 с необработанными пикселями, кодирует ее и возвращает элементарный битовый поток видео в виде массива NumPy. Кодировщик асинхронный, поэтому этот метод может возвращать пустой массив при первых нескольких вызовах (в зависимости от настроек кодировщика), что не является ошибкой. |
| Берет массив NumPy с необработанными пикселями, кодирует его и возвращает элементарный битовый поток видео в виде массива NumPy. Кодировщик асинхронный, поэтому этот метод может возвращать пустой массив при первых нескольких вызовах (в зависимости от настроек кодировщика), что не является ошибкой. |
| Сбрасывает энкодер. Он не возвращает значение, если все необработанные кадры в очереди кодировщика не закодированы, и возвращает список массивов NumPy с байтами элементарного потока. |
| Возвращает закодированную ширину кадра. |
| Возвращает закодированную высоту кадра. |
| Возвращает формат пикселей закодированного кадра. |
Если пользователь смешивает вызовы EncodeSingleSurface
и EncodeSingleFrame
, это не нарушит внутреннее состояние кодировщика. Кроме того, PyNvEncoder
может принимать входной кадр произвольного разрешения и изменять его размер на графическом процессоре на лету перед фактическим кодированием. Класс кодировщика поддерживает кодеки H.264 и H.265 и имеет низкую задержку, поэтому в конце сеанса кодирования следует вызвать
, который очищает очередь кадров кодировщика.
Ниже приведен список поддерживаемых параметров кодировщика:
Параметр | Тип | Значение |
| строка | Профиль кодирования. Возможные значения для h364: Возможные значения для hevc: |
| целое число | Размер прогноза. |
| целое + единица | Начальная задержка VBV в битах, может быть в единицах 1, K, M. |
| целое + единица | Средняя скорость передачи данных, может быть выражена в единицах 1, K, M. |
| целое число | Частота кадров. |
| строка | Предустановка кодирования. Возможные значения: |
| целое число | Значение QP для режима управления скоростью constqp. |
| целое число | Минимальное значение QP. |
| целое число | Максимальное значение QP. |
| целое число | Целевой постоянный уровень качества для режима VBR Возможные значения: |
| целое число | Начальное значение QP. |
| (Нет значения) Включить временный AQ. | |
| целое + единица | Размер буфера VBV в битах, может быть в единицах 1, K, M. |
| целое число | Количество последовательных B-кадров. |
| строка | Режим контроля скорости. Возможные значения: |
| целое число | Включить пространственный AQ и установить его силу Возможные значения: |
| целое + единица | Максимальный битрейт, может быть в единицах 1, K, M. |
| целое число | Длина GOP (группы изображений). |
| строка | Видеокодек. Возможные значения: |
Класс HardwareSurface
является оболочкой для CUdeviceptr
:
| Возвращает дескриптор CUdeviceptr в объект памяти CUDA. |
Для передачи памяти между хостом и устройством существует два класса с именем 9.0011 PyFrameUploader и PySurfaceDownloader
.
PyFrameUploader
используется для загрузки массива NumPy в GPU. У него только один метод:
| Загружает пустой массив в GPU, возвращает дескриптор загруженной поверхности. В следующий раз, когда пользователь вызовет этот метод, ранее возвращенная поверхность может быть использована повторно. |
PySurfaceDownloader
используется для загрузки Surface с графического процессора. Он также имеет только один метод:
| Загружает поверхность на стороне графического процессора в массив numpy на стороне процессора. В следующий раз, когда пользователь вызовет этот метод, будет возвращен другой экземпляр массива numpy. |
Наконец, есть класс PySurfaceConverter
, который используется для преобразования цветового пространства и формата пикселей с ускорением на графическом процессоре. Ниже приведен список поддерживаемых преобразований:
- YUV420 — NV12
- NV12 до YUV420
- NV12 в RGB
PySurfaceConverter
имеет один метод:
| Выполняет преобразование на графическом процессоре, возвращает дескриптор Surface с выходным форматом. В следующий раз, когда пользователь вызовет этот метод, ранее возвращенный объект Surface может быть использован повторно. |
VPF предоставляет разработчикам простой, но мощный инструмент Python для полностью аппаратного ускорения кодирования, декодирования и обработки видео. Благодаря коду C++ под привязками Python он позволяет добиться высокой загрузки графического процессора с помощью десятков строк кода. Декодированные видеокадры предоставляются либо в виде массивов NumPy, либо в виде указателей устройств CUDA для более простого взаимодействия и расширения функций. VPF не накладывает никаких ограничений сверх NVIDIA Video Codec SDK и позволяет вам полностью использовать потенциал графических процессоров NVIDIA профессионального уровня.
О Романе Арзуманяне
Роман Арзуманян получил степень бакалавра (2010 г.) и магистра (2012 г.) по прикладной математике в Южном федеральном университете, Ростов-на-Дону, Россия. После этого работал в Samsung R&D Institute Russia, Москва (2012 — 2015), Intel corp., Москва (2015 — 2017). В настоящее время он работает в NVIDIA Moscow в качестве инженера-разработчика. Его исследовательские интересы включают кодирование видео, высокую производительность и GPGPU.
Просмотреть все сообщения Романа Арзуманяна
Gale Apps — Технические трудности
Приложение, к которому вы пытаетесь получить доступ, в настоящее время недоступно. Приносим свои извинения за доставленные неудобства. Повторите попытку через несколько секунд.
Если проблемы с доступом сохраняются, обратитесь за помощью в наш отдел технической поддержки по телефону 1-800-877-4253. Еще раз спасибо, что выбрали Gale, обучающую компанию Cengage.
org.springframework.remoting.RemoteAccessException: невозможно получить доступ к удаленной службе [authorizationService@theBLISAuthorizationService]; вложенным исключением является com. zeroc.Ice.UnknownException unknown = «java.lang.IndexOutOfBoundsException: индекс 0 выходит за границы для длины 0 в java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) в java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) в java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248) в java.base/java.util.Objects.checkIndex(Objects.java:372) в java.base/java.util.ArrayList.get(ArrayList.java:458) в com.gale.blis.data.subscription.dao.LazyUserSessionDataLoaderStoredProcedure.populateSessionProperties(LazyUserSessionDataLoaderStoredProcedure.java:60) в com.gale.blis.data.subscription.dao.LazyUserSessionDataLoaderStoredProcedure.reQuery(LazyUserSessionDataLoaderStoredProcedure.java:53) в com.gale.blis.data.model.session.UserGroupEntitlementsManager.reinitializeUserGroupEntitlements(UserGroupEntitlementsManager. java:30) в com.gale.blis.data.model.session.UserGroupSessionManager.getUserGroupEntitlements(UserGroupSessionManager.java:17) в com.gale.blis.api.authorize.contentmodulefetchers.CrossSearchProductContentModuleFetcher.getProductSubscriptionCriteria(CrossSearchProductContentModuleFetcher.java:244) на com.gale.blis.api.authorize.contentmodulefetchers.CrossSearchProductContentModuleFetcher.getSubscribedCrossSearchProductsForUser(CrossSearchProductContentModuleFetcher.java:71) на com.gale.blis.api.authorize.contentmodulefetchers.CrossSearchProductContentModuleFetcher.getAvailableContentModulesForProduct(CrossSearchProductContentModuleFetcher.java:52) на com.gale.blis.api.authorize.strategy.productentry.strategy.AbstractProductEntryAuthorizer.getContentModules(AbstractProductEntryAuthorizer.java:130) на com.gale.blis.api.authorize.strategy.productentry.strategy.CrossSearchProductEntryAuthorizer.isAuthorized(CrossSearchProductEntryAuthorizer. java:82) на com.gale.blis.api.authorize.strategy.productentry.strategy.CrossSearchProductEntryAuthorizer.authorizeProductEntry(CrossSearchProductEntryAuthorizer.java:44) на com.gale.blis.api.authorize.strategy.ProductEntryAuthorizer.authorize(ProductEntryAuthorizer.java:31) в com.gale.blis.api.BLISAuthorizationServiceImpl.authorize_aroundBody0(BLISAuthorizationServiceImpl.java:57) на com.gale.blis.api.BLISAuthorizationServiceImpl.authorize_aroundBody1$advice(BLISAuthorizationServiceImpl.java:61) на com.gale.blis.api.BLISAuthorizationServiceImpl.authorize(BLISAuthorizationServiceImpl.java:1) в com.gale.blis.auth.AuthorizationService._iceD_authorize(AuthorizationService.java:97) в com.gale.blis.auth.AuthorizationService._iceDispatch(AuthorizationService.java:406) в com.zeroc.IceInternal.Incoming.invoke(Incoming.java:221) в com.zeroc.Ice.ConnectionI.invokeAll(ConnectionI. java:2706) на com.zeroc.Ice.ConnectionI.dispatch(ConnectionI.java:1292) в com.zeroc.Ice.ConnectionI.message(ConnectionI.java:1203) в com.zeroc.IceInternal.ThreadPool.run(ThreadPool.java:412) в com.zeroc.IceInternal.ThreadPool.access$500(ThreadPool.java:7) в com.zeroc.IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:781) в java.base/java.lang.Thread.run(Thread.java:834) » org.springframework.remoting.ice.IceClientInterceptor.convertIceAccessException(IceClientInterceptor.java:348) org.springframework.remoting.ice.IceClientInterceptor.invoke(IceClientInterceptor.java:310) org.springframework.remoting.ice.MonitoringIceProxyFactoryBean. invoke(MonitoringIceProxyFactoryBean.java:71) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) com.sun.proxy.$Proxy151.authorize(Неизвестный источник) com.gale.auth.service.BlisService.getAuthorizationResponse(BlisService.java:61) com.gale.apps.service.impl.MetadataResolverService.resolveMetadata(MetadataResolverService.java:65) com.gale.apps. controllers.DiscoveryController.resolveDocument(DiscoveryController.java:57) com.gale.apps.controllers.DocumentController.redirectToDocument(DocumentController.java:22) jdk.internal.reflect.GeneratedMethodAccessor319.invoke (неизвестный источник) java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.base/java.lang.reflect.Method.invoke(Method.java:566) org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) org. springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod (RequestMappingHandlerAdapter.java:895) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal (RequestMappingHandlerAdapter.java:808) org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) org. springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) javax.servlet.http.HttpServlet.service(HttpServlet.java:626) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) javax. servlet.http.HttpServlet.service(HttpServlet.java:733) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org. apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:126) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org. springframework.web.filter.RequestContextFilter.doFilterInternal (RequestContextFilter.java:100) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org. apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) com.gale.common.http.filter.SecurityHeaderFilter.doFilterInternal(SecurityHeaderFilter.java:29) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) org. apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.owasp.validation.GaleParameterValidationFilter.doFilterInternal(GaleParameterValidationFilter.java:97) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org. springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:126) org.springframework.boot.web.servlet.support.ErrorPageFilter.access$000(ErrorPageFilter.java:64) org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:101) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:119) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org. apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.springframework.web.filter.FormContentFilter.doFilterInternal (FormContentFilter.java:93) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal (WebMvcMetricsFilter.java:96) org. springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal (CharacterEncodingFilter.java:201) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) org. apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) org. apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) org.