docs: private void processConfiguration(final MtasConfiguration config)
        throws IOException {
      HashMap<String, Integer> indexEncodingMapper = new HashMap<>();
      indexEncodingMapper.put("payload", MtasPayloadEncoder.ENCODE_PAYLOAD);
      indexEncodingMapper.put("offset", MtasPayloadEncoder.ENCODE_OFFSET);
      indexEncodingMapper.put("realoffset", MtasPayloadEncoder.ENCODE_REALOFFSET);
      indexEncodingMapper.put("parent", MtasPayloadEncoder.ENCODE_PARENT);
      // process
      if (config != null) {
        for (int i = 0; i < config.children.size(); i++) {
          if (config.children.get(i).name.equals(CONFIGURATION_MTAS_INDEX)) {
            MtasConfiguration index = config.children.get(i);
            for (int j = 0; j < index.children.size(); j++) {
              if (indexEncodingMapper.containsKey(index.children.get(j).name)) {
                String value = index.children.get(j).attributes.get(CONFIGURATION_MTAS_INDEX_ATTRIBUTE);
                if ((value.equals(VALUE_TRUE)) || (value.equals(VALUE_1))) {
                  encodingFlags |= indexEncodingMapper
                      .get(index.children.get(j).name);
                } else if ((value.equals(VALUE_FALSE)) || (value.equals(VALUE_0))) {
                  encodingFlags &= ~indexEncodingMapper
                      .get(index.children.get(j).name);
                }
              }
            }
          } else if (config.children.get(i).name.equals(CONFIGURATION_MTAS_PARSER)) {
            if (config.children.get(i).attributes.containsKey(CONFIGURATION_MTAS_PARSER_ATTRIBUTE)) {
              parserName = config.children.get(i).attributes.get(CONFIGURATION_MTAS_PARSER_ATTRIBUTE);
              parserConfiguration = config.children.get(i);
            } else {
              throw new IOException("no parser configuration");
            }
          }
        }
      } else {
        throw new IOException("no (valid) configuration");
      }
    }