// Copyright 2017 The Wuffs Authors.
//
// 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
//
//    https://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.

// CODE_ORDER is defined in the RFC section 3.2.7.
pri const CODE_ORDER : roarray[19] base.u8[..= 18] = [
        16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15,
]

// REVERSE8 reverses the bits in a byte.
pri const REVERSE8 : roarray[256] base.u8 = [
        0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0,  // 0x00 - 0x07
        0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0,  // 0x08 - 0x0F
        0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8,  // 0x10 - 0x17
        0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8,  // 0x18 - 0x1F
        0x04, 0x84, 0x44, 0xC4, 0x24, 0xA4, 0x64, 0xE4,  // 0x20 - 0x27
        0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4,  // 0x28 - 0x2F
        0x0C, 0x8C, 0x4C, 0xCC, 0x2C, 0xAC, 0x6C, 0xEC,  // 0x30 - 0x37
        0x1C, 0x9C, 0x5C, 0xDC, 0x3C, 0xBC, 0x7C, 0xFC,  // 0x38 - 0x3F
        0x02, 0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2,  // 0x40 - 0x47
        0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2, 0x72, 0xF2,  // 0x48 - 0x4F
        0x0A, 0x8A, 0x4A, 0xCA, 0x2A, 0xAA, 0x6A, 0xEA,  // 0x50 - 0x57
        0x1A, 0x9A, 0x5A, 0xDA, 0x3A, 0xBA, 0x7A, 0xFA,  // 0x58 - 0x5F
        0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6,  // 0x60 - 0x67
        0x16, 0x96, 0x56, 0xD6, 0x36, 0xB6, 0x76, 0xF6,  // 0x68 - 0x6F
        0x0E, 0x8E, 0x4E, 0xCE, 0x2E, 0xAE, 0x6E, 0xEE,  // 0x70 - 0x77
        0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE,  // 0x78 - 0x7F
        0x01, 0x81, 0x41, 0xC1, 0x21, 0xA1, 0x61, 0xE1,  // 0x80 - 0x87
        0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71, 0xF1,  // 0x88 - 0x8F
        0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9,  // 0x90 - 0x97
        0x19, 0x99, 0x59, 0xD9, 0x39, 0xB9, 0x79, 0xF9,  // 0x98 - 0x9F
        0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5, 0x65, 0xE5,  // 0xA0 - 0xA7
        0x15, 0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5,  // 0xA8 - 0xAF
        0x0D, 0x8D, 0x4D, 0xCD, 0x2D, 0xAD, 0x6D, 0xED,  // 0xB0 - 0xB7
        0x1D, 0x9D, 0x5D, 0xDD, 0x3D, 0xBD, 0x7D, 0xFD,  // 0xB8 - 0xBF
        0x03, 0x83, 0x43, 0xC3, 0x23, 0xA3, 0x63, 0xE3,  // 0xC0 - 0xC7
        0x13, 0x93, 0x53, 0xD3, 0x33, 0xB3, 0x73, 0xF3,  // 0xC8 - 0xCF
        0x0B, 0x8B, 0x4B, 0xCB, 0x2B, 0xAB, 0x6B, 0xEB,  // 0xD0 - 0xD7
        0x1B, 0x9B, 0x5B, 0xDB, 0x3B, 0xBB, 0x7B, 0xFB,  // 0xD8 - 0xDF
        0x07, 0x87, 0x47, 0xC7, 0x27, 0xA7, 0x67, 0xE7,  // 0xE0 - 0xE7
        0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7,  // 0xE8 - 0xEF
        0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, 0xEF,  // 0xF0 - 0xF7
        0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFF,  // 0xF8 - 0xFF
]
