public static Ip6Address valueOf(byte[] value) {
        return new Ip6Address(value);
    }
@Test
    public void testValueOfByteArrayOffsetIPv6() {
        Ip6Address ipAddress;
        byte[] value;

        value = new byte[] {11, 22, 33,                         // Preamble
                            0x11, 0x11, 0x22, 0x22,
                            0x33, 0x33, 0x44, 0x44,
                            0x55, 0x55, 0x66, 0x66,
                            0x77, 0x77,
                            (byte) 0x88, (byte) 0x88,
                            44, 55};                            // Extra bytes
        ipAddress = Ip6Address.valueOf(value, 3);
        assertThat(ipAddress.toString(),
                   is("1111:2222:3333:4444:5555:6666:7777:8888"));

        value = new byte[] {11, 22,                             // Preamble
                            0x00, 0x00, 0x00, 0x00,
                            0x00, 0x00, 0x00, 0x00,
                            0x00, 0x00, 0x00, 0x00,
                            0x00, 0x00, 0x00, 0x00,
                            33};                                // Extra bytes
        ipAddress = Ip6Address.valueOf(value, 2);
        assertThat(ipAddress.toString(), is("::"));

        value = new byte[] {11, 22,                             // Preamble
                            (byte) 0xff, (byte) 0xff,
                            (byte) 0xff, (byte) 0xff,
                            (byte) 0xff, (byte) 0xff,
                            (byte) 0xff, (byte) 0xff,
                            (byte) 0xff, (byte) 0xff,
                            (byte) 0xff, (byte) 0xff,
                            (byte) 0xff, (byte) 0xff,
                            (byte) 0xff, (byte) 0xff,
                            33};                                // Extra bytes
        ipAddress = Ip6Address.valueOf(value, 2);
        assertThat(ipAddress.toString(),
                   is("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"));
    }