def _missing_(cls, value):
        """Lookup function used when value is not found."""
        if not (isinstance(value, int) and 0 <= value <= 65535):
            raise ValueError('%r is not a valid %s' % (value, cls.__name__))
        if 0 <= value <= 64:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 66 <= value <= 127:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 130 <= value <= 192:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 194 <= value <= 256:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 258 <= value <= 320:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 322 <= value <= 384:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 386 <= value <= 448:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 450 <= value <= 510:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 514 <= value <= 576:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 580 <= value <= 607:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 611 <= value <= 640:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 642 <= value <= 704:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 706 <= value <= 714:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 716 <= value <= 767:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 769 <= value <= 831:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 833 <= value <= 896:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 898 <= value <= 929:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 937 <= value <= 949:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 951 <= value <= 960:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 962 <= value <= 2048:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 2050 <= value <= 4094:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 4096 <= value <= 4480:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 4482 <= value <= 4544:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 4546 <= value <= 4576:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 4578 <= value <= 4579:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 4581 <= value <= 4591:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 4593 <= value <= 4600:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 4602 <= value <= 7679:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 7681 <= value <= 32767:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 32768 <= value <= 49151:
        # [RFC 7401]
            extend_enum(cls, 'Reserved [%d]' % value, value)
            return cls(value)
        if 49152 <= value <= 61504:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 61506 <= value <= 61568:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 61570 <= value <= 61632:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 61634 <= value <= 61696:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 61698 <= value <= 63660:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 63662 <= value <= 63424:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 63426 <= value <= 63997:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 63999 <= value <= 64001:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 64003 <= value <= 64010:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 64012 <= value <= 64016:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 64018 <= value <= 65497:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 65503 <= value <= 65519:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        if 65521 <= value <= 65535:
            extend_enum(cls, 'Unassigned [%d]' % value, value)
            return cls(value)
        super()._missing_(value)