/*
 * Copyright (c) 2018 IOTA Stiftung
 * https://github.com/iotaledger/iota_common
 *
 * Refer to the LICENSE file for licensing information
 */

#ifndef __CURL_P_BCT_1_H__
#define __CURL_P_BCT_1_H__
#include "common/trinary/ptrit.h"

#define TRYTES_IN                                                                                                      \
  {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, { \
    HIGH_BITS, LOW_BITS                                                                                                \
  }
#define EXP_27                                                                                                        \
  {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                   \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS},                    \
      {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS},                     \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS},                    \
      {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                 \
      {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS},                    \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                     \
      {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS},                  \
      {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS},                    \
      {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS},                     \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                  \
      {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS},                  \
      {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS},                     \
      {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS},                     \
      {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                    \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS},                    \
      {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                    \
      {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                     \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                  \
      {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS},                    \
      {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS},                     \
      {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS},                     \
      {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                   \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS},                   \
      {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                   \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS},                     \
      {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                   \
      {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                    \
      {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS},                    \
      {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                  \
      {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS},                   \
      {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                  \
      {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                    \
      {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                   \
      {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS},                   \
      {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                   \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS},                    \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS},                    \
      {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                    \
      {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                  \
      {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS},                  \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                   \
      {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS},                   \
      {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS},                     \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                  \
      {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS},                    \
      {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS},                   \
      {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                   \
      {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                    \
      {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                  \
      {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS},                     \
      {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                    \
      {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS},                     \
      {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS},                   \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                    \
      {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS},                    \
      {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                   \
      {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS},                     \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                   \
      {HIGH_BITS, HIGH_BITS}, {                                                                                       \
    LOW_BITS, HIGH_BITS                                                                                               \
  }
#define EXP_81                                                                                                        \
  {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS}, \
      {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                   \
      {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS},                     \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                     \
      {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                    \
      {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                  \
      {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS},                    \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS},                   \
      {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS},                   \
      {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                     \
      {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS},                    \
      {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                  \
      {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                   \
      {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                   \
      {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS},                     \
      {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS},                   \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                    \
      {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS},                     \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS},                    \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS},                    \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS},                    \
      {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS},                   \
      {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                     \
      {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS},                   \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                   \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                   \
      {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS},                     \
      {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS},                   \
      {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                    \
      {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                   \
      {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS},                   \
      {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                   \
      {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                   \
      {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                    \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS},                    \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                  \
      {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS},                    \
      {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                   \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS},                     \
      {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                   \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS},                     \
      {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS},                     \
      {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                   \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                   \
      {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS},                    \
      {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS},                   \
      {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                   \
      {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                   \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS},                    \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS},                    \
      {HIGH_BITS, LOW_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS},                    \
      {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                   \
      {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                   \
      {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS},                     \
      {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                    \
      {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, LOW_BITS},                     \
      {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                    \
      {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS}, {HIGH_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS},                  \
      {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, LOW_BITS},                    \
      {LOW_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS}, {HIGH_BITS, HIGH_BITS}, {LOW_BITS, HIGH_BITS},                    \
      {HIGH_BITS, LOW_BITS}, {                                                                                        \
    HIGH_BITS, LOW_BITS                                                                                               \
  }
#endif  //__CURL_P_BCT_1_H__
