diff --git a/.gitmodules b/.gitmodules
index fb89583..8601853 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -13,3 +13,6 @@
 [submodule "dependencies/cmsis-dsp"]
 	path = dependencies/cmsis-dsp
 	url = https://github.com/ARM-software/CMSIS-DSP.git
+[submodule "dependencies/cmsis-nn"]
+	path = dependencies/cmsis-nn
+	url = https://github.com/ARM-software/CMSIS-NN.git
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c7ce6dd..91568f8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,5 +1,5 @@
 #----------------------------------------------------------------------------
-#  SPDX-FileCopyrightText: Copyright 2021 - 2022 Arm Limited and/or its affiliates <open-source-office@arm.com>
+#  SPDX-FileCopyrightText: Copyright 2021-2022 Arm Limited and/or its affiliates <open-source-office@arm.com>
 #  SPDX-License-Identifier: Apache-2.0
 #
 #  Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/Readme.md b/Readme.md
index aedada6..c907065 100644
--- a/Readme.md
+++ b/Readme.md
@@ -23,6 +23,10 @@
   > **NOTE**: While Arm® Corstone™-300 is available as an [Ecosystem FVP](https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/arm-ecosystem-fvps)
   > and AVH, Arm® Corstone™-310 is available (for both Arm® Ethos™-U55 and Ethos™-U65 NPUs) only as AVH implementations.
 
+## Inclusive language commitment
+This product conforms to Arm's inclusive language policy and, to the best of our knowledge,
+does not contain any non-inclusive language. If you find something that concerns you, email terms@arm.com.
+
 ## Overview of the evaluation kit
 
 The purpose of this evaluation kit is to allow users to develop software and test the performance of the Arm® Ethos-U NPU and
diff --git a/dependencies/cmsis b/dependencies/cmsis
index ed78d6b..81564cf 160000
--- a/dependencies/cmsis
+++ b/dependencies/cmsis
@@ -1 +1 @@
-Subproject commit ed78d6b78766d71cfe0431149f2f261d1c7277a1
+Subproject commit 81564cfb339ebf9def167a50693733f8a1e1471e
diff --git a/dependencies/cmsis-dsp b/dependencies/cmsis-dsp
index 305b12c..43aa2a9 160000
--- a/dependencies/cmsis-dsp
+++ b/dependencies/cmsis-dsp
@@ -1 +1 @@
-Subproject commit 305b12c4a7b6519fdb979d1ca6850582c7dfcad8
+Subproject commit 43aa2a9e7fc080e0d7541e9f5e083258403ac9ee
diff --git a/dependencies/cmsis-nn b/dependencies/cmsis-nn
new file mode 160000
index 0000000..ca5dc34
--- /dev/null
+++ b/dependencies/cmsis-nn
@@ -0,0 +1 @@
+Subproject commit ca5dc34313be2ee5c46652917c30baac96c52621
diff --git a/dependencies/core-driver b/dependencies/core-driver
index 90ada2e..68b5c91 160000
--- a/dependencies/core-driver
+++ b/dependencies/core-driver
@@ -1 +1 @@
-Subproject commit 90ada2ea5681b2a2722a10d2898eac34c2510791
+Subproject commit 68b5c91c22d11f3410f520cfb69ce6c5848f2f4a
diff --git a/dependencies/core-platform b/dependencies/core-platform
index fc42c71..a847621 160000
--- a/dependencies/core-platform
+++ b/dependencies/core-platform
@@ -1 +1 @@
-Subproject commit fc42c71353d15c564558249bd4f13350119ab6a9
+Subproject commit a847621e6c12eb0e36daeece578320a0bfc1e366
diff --git a/dependencies/tensorflow b/dependencies/tensorflow
index 67e9d8f..28770e4 160000
--- a/dependencies/tensorflow
+++ b/dependencies/tensorflow
@@ -1 +1 @@
-Subproject commit 67e9d8f60d3e37ab02f94a93f016179ef5e96cb6
+Subproject commit 28770e4cac1e5dae85b55a0d47d5315d35755d04
diff --git a/docs/quick_start.md b/docs/quick_start.md
index d7afae7..37002ad 100644
--- a/docs/quick_start.md
+++ b/docs/quick_start.md
@@ -71,7 +71,7 @@
 python3 -m venv env
 env/bin/python3 -m pip install --upgrade pip
 env/bin/python3 -m pip install --upgrade setuptools
-env/bin/python3 -m pip install ethos-u-vela==3.5.0
+env/bin/python3 -m pip install ethos-u-vela==3.6.0
 cd ..
 
 curl -L https://github.com/ARM-software/ML-zoo/raw/7c32b097f7d94aae2cd0b98a8ed5a3ba81e66b18/models/anomaly_detection/micronet_medium/tflite_int8/ad_medium_int8.tflite \
diff --git a/docs/sections/building.md b/docs/sections/building.md
index cac66c3..42b0daa 100644
--- a/docs/sections/building.md
+++ b/docs/sections/building.md
@@ -700,7 +700,7 @@
 > <https://pypi.org/project/ethos-u-vela/>.
 > The source code is hosted on <https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ethos-u-vela/>.
 
-> **Note:** Using the 22.08 versions of software dependencies will require Vela to be at least version 3.5.0
+> **Note:** Using the 22.11 versions of software dependencies will require Vela to be at least version 3.6.0
 > or you may encounter issues when trying to run applications on different variants of Ethos-U NPUs.
 
 The Vela compiler is a tool that can optimize a neural network model into a version that can run on an embedded system
diff --git a/download_dependencies.py b/download_dependencies.py
index 23afe8d..280292f 100755
--- a/download_dependencies.py
+++ b/download_dependencies.py
@@ -24,11 +24,12 @@
 from zipfile import ZipFile
 from pathlib import Path
 
-TF = "https://github.com/tensorflow/tflite-micro/archive/67e9d8f60d3e37ab02f94a93f016179ef5e96cb6.zip"
-CMSIS = "https://github.com/ARM-software/CMSIS_5/archive/ed78d6b78766d71cfe0431149f2f261d1c7277a1.zip"
-CMSIS_DSP = "https://github.com/ARM-software/CMSIS-DSP/archive/refs/tags/v1.11.0.zip"
-ETHOS_U_CORE_DRIVER = "https://git.mlplatform.org/ml/ethos-u/ethos-u-core-driver.git/snapshot/ethos-u-core-driver-22.08.tar.gz"
-ETHOS_U_CORE_PLATFORM = "https://git.mlplatform.org/ml/ethos-u/ethos-u-core-platform.git/snapshot/ethos-u-core-platform-22.08.tar.gz"
+TF = "https://github.com/tensorflow/tflite-micro/archive/28770e4cac1e5dae85b55a0d47d5315d35755d04.zip"
+CMSIS = "https://github.com/ARM-software/CMSIS_5/archive/81564cfb339ebf9def167a50693733f8a1e1471e.zip"
+CMSIS_DSP = "https://github.com/ARM-software/CMSIS-DSP/archive/refs/tags/v1.14.2.zip"
+CMSIS_NN = "https://github.com/ARM-software/CMSIS-NN/archive/refs/tags/v4.0.0.zip"
+ETHOS_U_CORE_DRIVER = "https://git.mlplatform.org/ml/ethos-u/ethos-u-core-driver.git/snapshot/ethos-u-core-driver-22.11.tar.gz"
+ETHOS_U_CORE_PLATFORM = "https://git.mlplatform.org/ml/ethos-u/ethos-u-core-platform.git/snapshot/ethos-u-core-platform-22.11.tar.gz"
 
 
 def download(url_file: str, post_process=None):
@@ -70,6 +71,8 @@
              lambda file: unzip(file.name, to_path=dependencies_path / "cmsis"))
     download(CMSIS_DSP,
              lambda file: unzip(file.name, to_path=dependencies_path / "cmsis-dsp"))
+    download(CMSIS_NN,
+             lambda file: unzip(file.name, to_path=dependencies_path / "cmsis-nn"))
     download(ETHOS_U_CORE_DRIVER,
              lambda file: untar(file.name, to_path=dependencies_path / "core-driver"))
     download(ETHOS_U_CORE_PLATFORM,
diff --git a/release_notes.txt b/release_notes.txt
index 9a8bbc0..9b9ea93 100644
--- a/release_notes.txt
+++ b/release_notes.txt
@@ -1,4 +1,6 @@
 Changes in 22.11
+    * Support for 22.11 NPU components and dependencies (core-driver, core-platform, Vela 3.6.0, CMSIS, TensorFlow Lite Micro)
+    * CMSIS-NN is added as a new dependency due to it moving out of the core CMSIS repository.
     * Updates for Arm® Corstone™-310 platform.
     * Formal support for CMake presets.
     * Support for the new Arm Compiler 6.19
@@ -6,7 +8,7 @@
     * Bug fix for building with NPU disabled.
 
 Changes in 22.08
-    * Support for 22.08 Ethos-U component and dependencies (core-driver, core-platform, Vela 3.5.0, CMSIS, TensorFlow Lite Micro).
+    * Support for 22.08 NPU component and dependencies (core-driver, core-platform, Vela 3.5.0, CMSIS, TensorFlow Lite Micro).
     * Formal support for Arm® Corstone-310 Arm Virtual Hardware and FPGA implementations.
     * Added CMake presets.
     * Bug fix for Arm® Ethos-U65 NPU's default AXI burst length.
@@ -14,7 +16,7 @@
     * Documentation updates.
 
 Changes in 22.05
-    * Support for 22.05 Ethos-U component and dependencies (core-driver, core-platform, Vela 3.4.0, CMSIS, TensorFlow Lite Micro).
+    * Support for 22.05 NPU component and dependencies (core-driver, core-platform, Vela 3.4.0, CMSIS, TensorFlow Lite Micro).
     * Restructuring of repository sources to allow generation of CMSIS packs.
     * Added support for Arm Cortex-M85, Armclang 6.18 is required
     * Reduce minimum requirements of Python to 3.7 to align with Vela 3.4.0.
@@ -23,7 +25,7 @@
     * Various bug fixes.
 
 Changes in 22.02
-    * Support for 22.02 Ethos-U component and dependencies (core-driver, core-platform, Vela 3.3.0, CMSIS, TensorFlow Lite Micro).
+    * Support for 22.02 NPU component and dependencies (core-driver, core-platform, Vela 3.3.0, CMSIS, TensorFlow Lite Micro).
     * Added Object Detection use case.
     * Replace DSCNN with MicroNet for KWS and KWS_ASR use cases.
     * Increase minimum requirements of CMake to 3.15.6, Armclang to 6.16 and Python to 3.8
@@ -32,7 +34,7 @@
     * Various minor bug fixes.
 
 Changes in 21.11
-    * Support for 21.11 Ethos-U component and dependencies (core-software, core-driver, Vela 3.2.0, CMSIS, TensorFlow Lite).
+    * Support for 21.11 NPU component and dependencies (core-software, core-driver, Vela 3.2.0, CMSIS, TensorFlow Lite Micro).
     * Added dynamic load support for FVP for inference runner use-case.
     * Added support for different memory modes: Shared_Sram, Dedicated_Sram and Sram_Only.
     * Added Noise Reduction use case.
@@ -41,10 +43,10 @@
     * Changes to support AN552 design - the new Arm® Corstone™-300 implementation.
 
 Changes in 21.08
-    * Support for 21.05 Ethos-U component (core-software, core-driver, Vela 3.0.0).
+    * Support for 21.05 NPU component (core-software, core-driver, Vela 3.0.0).
     * TensorFlow submodule changed to https://github.com/tensorflow/tflite-micro (tested with TensorFlow Lite Micro commit hash: f510d38d0eaa3195ce3af66e3f32648740f08afb).
     * Image classification model changed (from uint8 to int8 datatype).
-    * Documentation updates, added support to Corstone-300 + Ethos-U65.
+    * Documentation updates, added support to Corstone-300 + Arm® Ethos-U65.
     * Various scripts improvements.
     * Added Visual Wake Word use case.
 
@@ -65,7 +67,7 @@
 
 Changes in 20.11
     * SSE-200 and SSE-300 system support was added.
-    * Support for simple fixed virtual platform for Ethos-U55 and Cortex-M55 removed.
+    * Support for simple fixed virtual platform for Arm® Ethos-U55 and Arm® Cortex-M55 removed.
     * Build cmake parameters changed: TARGET_SUBSYSTEM was added, TARGET_PLATFORM accepted values were changed.
     * Models with multiple output tensors support was added.
     * Generic inference runner use-case added.
@@ -74,7 +76,7 @@
 Changes in 20.09 release:
     * Support for TensorFlow Lite Micro version > 2.3.0 (tested with TensorFlow Lite Micro 2.4.0 commit hash: 5bbb8a2bd1def6865b1510175a3da5fd12387e10)
     * Added speech recognition use case example.
-    * Updated Ethos-U55 Fastmodel version to r0p2-00eac0-rc4
+    * Updated NPU Fastmodel version to r0p2-00eac0-rc4
 
 Changes in 20.08 release:
     * Added keyword spotting use case example.
@@ -88,7 +90,7 @@
     * Configurable timing-adaptor.
     * Added Active and Idle cycle counts for NPU and CPU profiling report.
     * Source code structure and build scripts refactored to support multiple ML use-cases.
-    * Used EAC Ethos-U55 software model and drivers.
+    * Used EAC NPU software model and drivers.
     * Windows support for build scripts.
 Known issues:
     * telnet connection to FastModel environment may hang after some period of inactivity.
diff --git a/scripts/cmake/common_user_options.cmake b/scripts/cmake/common_user_options.cmake
index 3e1206d..97e9b40 100644
--- a/scripts/cmake/common_user_options.cmake
+++ b/scripts/cmake/common_user_options.cmake
@@ -88,9 +88,13 @@
         "${DEPENDENCY_ROOT_DIR}/cmsis"
         PATH)
     USER_OPTION(CMSIS_DSP_SRC_PATH
-	"Path to CMSIS-5 DSP sources"
+        "Path to CMSIS-5 DSP sources"
         "${DEPENDENCY_ROOT_DIR}/cmsis-dsp"
         PATH)
+    USER_OPTION(CMSIS_NN_SRC_PATH
+        "Path to CMSIS-5 NN sources"
+        "${DEPENDENCY_ROOT_DIR}/cmsis-nn"
+        PATH)
 
     # If we need NPU libraries:
     if (ETHOS_U_NPU_ENABLED)
diff --git a/scripts/cmake/tensorflow.cmake b/scripts/cmake/tensorflow.cmake
index 4b50ed0..d807416 100644
--- a/scripts/cmake/tensorflow.cmake
+++ b/scripts/cmake/tensorflow.cmake
@@ -1,5 +1,5 @@
 #----------------------------------------------------------------------------
-#  SPDX-FileCopyrightText: Copyright 2021 - 2022 Arm Limited and/or its affiliates <open-source-office@arm.com>
+#  SPDX-FileCopyrightText: Copyright 2021-2022 Arm Limited and/or its affiliates <open-source-office@arm.com>
 #  SPDX-License-Identifier: Apache-2.0
 #
 #  Licensed under the Apache License, Version 2.0 (the "License");
@@ -101,6 +101,7 @@
         TARGET_ARCH=${TENSORFLOW_LITE_MICRO_TARGET_ARCH}
         BUILD_TYPE=${TENSORFLOW_LITE_MICRO_BUILD_TYPE}
         CMSIS_PATH=${CMSIS_SRC_PATH}
+        CMSIS_NN_PATH=${CMSIS_NN_SRC_PATH}
         # Conditional arguments
         $<$<BOOL:${ETHOS_U_NPU_ENABLED}>:ETHOSU_ARCH=${ETHOS_U_NPU_ID}>
         $<$<BOOL:${ETHOS_U_NPU_ENABLED}>:ETHOSU_DRIVER_PATH=${ETHOS_U_NPU_DRIVER_SRC_PATH}>
diff --git a/set_up_default_resources.py b/set_up_default_resources.py
index 475f6da..e3ece8b 100755
--- a/set_up_default_resources.py
+++ b/set_up_default_resources.py
@@ -381,7 +381,7 @@
     metadata_file_path = download_dir / "resources_downloaded_metadata.json"
 
     metadata_dict = dict()
-    vela_version = "3.5.0"
+    vela_version = "3.6.0"
     py3_major_version_minimum = 3  # Python >= 3.7 is required
     py3_minor_version_minimum = 7
 
@@ -443,7 +443,12 @@
             call_command(command)
         os.chdir(current_file_dir)
 
-    # 1.3 Make sure to have all the requirements
+    # 1.3 Install additional requirements first, if a valid file has been provided
+    if additional_requirements_file and os.path.isfile(additional_requirements_file):
+        command = f"{env_python} -m pip install -r {additional_requirements_file}"
+        call_command(command)
+
+    # 1.4 Make sure to have all the main requirements
     requirements = [f"ethos-u-vela=={vela_version}"]
     command = f"{env_python} -m pip freeze"
     packages = call_command(command)
@@ -452,11 +457,6 @@
             command = f"{env_python} -m pip install {req}"
             call_command(command)
 
-    # 1.4 Install additional requirements, if a valid file has been provided
-    if additional_requirements_file and os.path.isfile(additional_requirements_file):
-        command = f"{env_python} -m pip install -r {additional_requirements_file}"
-        call_command(command)
-
     # 2. Download models
     logging.info("Downloading resources.")
     for uc in json_uc_res:
diff --git a/source/application/api/common/include/Model.hpp b/source/application/api/common/include/Model.hpp
index 8b64f10..ed2b4c1 100644
--- a/source/application/api/common/include/Model.hpp
+++ b/source/application/api/common/include/Model.hpp
@@ -133,7 +133,6 @@
         size_t GetActivationBufferSize();
 
     private:
-        tflite::ErrorReporter* m_pErrorReporter{nullptr};  /* Pointer to the error reporter. */
         const tflite::Model* m_pModel{nullptr};            /* Tflite model pointer. */
         tflite::MicroInterpreter* m_pInterpreter{nullptr}; /* Tflite interpreter. */
         tflite::MicroAllocator* m_pAllocator{nullptr};     /* Tflite micro allocator. */
diff --git a/source/application/api/common/include/TensorFlowLiteMicro.hpp b/source/application/api/common/include/TensorFlowLiteMicro.hpp
index 9826dfa..944ed4a 100644
--- a/source/application/api/common/include/TensorFlowLiteMicro.hpp
+++ b/source/application/api/common/include/TensorFlowLiteMicro.hpp
@@ -1,5 +1,5 @@
 /*
- * SPDX-FileCopyrightText: Copyright 2021 Arm Limited and/or its affiliates <open-source-office@arm.com>
+ * SPDX-FileCopyrightText: Copyright 2021-2022 Arm Limited and/or its affiliates <open-source-office@arm.com>
  * SPDX-License-Identifier: Apache-2.0
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -30,7 +30,6 @@
     #pragma clang diagnostic ignored "-Wunused-parameter"
     #include "tensorflow/lite/micro/micro_mutable_op_resolver.h"
     #include "tensorflow/lite/micro/micro_interpreter.h"
-    #include "tensorflow/lite/micro/micro_error_reporter.h"
     #include "tensorflow/lite/micro/all_ops_resolver.h"
     #pragma clang diagnostic pop
 #elif defined(__GNUC__)
@@ -38,18 +37,17 @@
     #pragma GCC diagnostic ignored "-Wunused-parameter"
     #include "tensorflow/lite/micro/micro_mutable_op_resolver.h"
     #include "tensorflow/lite/micro/micro_interpreter.h"
-    #include "tensorflow/lite/micro/micro_error_reporter.h"
     #include "tensorflow/lite/micro/all_ops_resolver.h"
     #pragma GCC diagnostic pop
 #else
     #include "tensorflow/lite/micro/micro_mutable_op_resolver.h"
     #include "tensorflow/lite/micro/micro_interpreter.h"
-    #include "tensorflow/lite/micro/micro_error_reporter.h"
     #include "tensorflow/lite/micro/all_ops_resolver.h"
 #endif
 
 #include "tensorflow/lite/c/common.h"
 #include "tensorflow/lite/micro/kernels/micro_ops.h"
+#include "tensorflow/lite/micro/tflite_bridge/op_resolver_bridge.h"
 #include "tensorflow/lite/schema/schema_generated.h"
 #include "tensorflow/lite/schema/schema_utils.h"
 
diff --git a/source/application/api/common/source/Model.cc b/source/application/api/common/source/Model.cc
index 1dbef1d..8467d71 100644
--- a/source/application/api/common/source/Model.cc
+++ b/source/application/api/common/source/Model.cc
@@ -1,5 +1,5 @@
 /*
- * SPDX-FileCopyrightText: Copyright 2021 Arm Limited and/or its affiliates <open-source-office@arm.com>
+ * SPDX-FileCopyrightText: Copyright 2021-2022 Arm Limited and/or its affiliates <open-source-office@arm.com>
  * SPDX-License-Identifier: Apache-2.0
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -31,9 +31,7 @@
 arm::app::Model::Model() :
     m_inited (false),
     m_type(kTfLiteNoType)
-{
-    this->m_pErrorReporter = tflite::GetMicroErrorReporter();
-}
+{}
 
 bool arm::app::Model::Init(uint8_t* tensorArenaAddr,
                            uint32_t tensorArenaSize,
@@ -50,8 +48,8 @@
     this->m_pModel = ::tflite::GetModel(nnModelAddr);
 
     if (this->m_pModel->version() != TFLITE_SCHEMA_VERSION) {
-        this->m_pErrorReporter->Report(
-            "[ERROR] model's schema version %d is not equal "
+        printf_err(
+            "Model's schema version %d is not equal "
             "to supported version %d.",
             this->m_pModel->version(), TFLITE_SCHEMA_VERSION);
         return false;
@@ -79,8 +77,7 @@
 
         this->m_pAllocator = tflite::MicroAllocator::Create(
                                         tensorArenaAddr,
-                                        tensorArenaSize,
-                                        this->m_pErrorReporter);
+                                        tensorArenaSize);
 
         if (!this->m_pAllocator) {
             printf_err("Failed to create allocator\n");
@@ -93,7 +90,7 @@
 
     this->m_pInterpreter = new ::tflite::MicroInterpreter(
         this->m_pModel, this->GetOpResolver(),
-        this->m_pAllocator, this->m_pErrorReporter);
+        this->m_pAllocator);
 
     if (!this->m_pInterpreter) {
         printf_err("Failed to allocate interpreter\n");
@@ -211,8 +208,7 @@
         const tflite::OperatorCode* opcode = opcodes->Get(op->opcode_index());
         const TfLiteRegistration* reg = nullptr;
 
-        tflite::GetRegistrationFromOpCode(opcode, this->GetOpResolver(),
-                                          this->m_pErrorReporter, &reg);
+        tflite::GetRegistrationFromOpCode(opcode, this->GetOpResolver(), &reg);
         std::string opName;
 
         if (reg) {
diff --git a/source/use_case/object_detection/src/UseCaseHandler.cc b/source/use_case/object_detection/src/UseCaseHandler.cc
index 5f012b6..084059e 100644
--- a/source/use_case/object_detection/src/UseCaseHandler.cc
+++ b/source/use_case/object_detection/src/UseCaseHandler.cc
@@ -58,8 +58,8 @@
         constexpr uint32_t dataPsnImgStartX = 10;
         constexpr uint32_t dataPsnImgStartY = 35;
 
-        constexpr uint32_t dataPsnTxtInfStartX = 150;
-        constexpr uint32_t dataPsnTxtInfStartY = 40;
+        constexpr uint32_t dataPsnTxtInfStartX = 20;
+        constexpr uint32_t dataPsnTxtInfStartY = 28;
 
         hal_lcd_clear(COLOR_BLACK);
 
diff --git a/source/use_case/vww/src/UseCaseHandler.cc b/source/use_case/vww/src/UseCaseHandler.cc
index 411b868..e2e48d1 100644
--- a/source/use_case/vww/src/UseCaseHandler.cc
+++ b/source/use_case/vww/src/UseCaseHandler.cc
@@ -45,7 +45,7 @@
         constexpr uint32_t dataPsnImgStartY = 35;
 
         constexpr uint32_t dataPsnTxtInfStartX = 150;
-        constexpr uint32_t dataPsnTxtInfStartY = 70;
+        constexpr uint32_t dataPsnTxtInfStartY = 40;
 
         if (!model.IsInited()) {
             printf_err("Model is not initialised! Terminating processing.\n");
