code: def get_gc_property(value, is_bytes=False):
      
  
      obj = unidata.ascii_properties if is_bytes else unidata.unicode_properties
  
      if value.startswith('^'):
          negate = True
          value = value[1:]
      else:
          negate = False
  
      value = unidata.unicode_alias['generalcategory'].get(value, value)
  
      assert 1 <= len(value) <= 2, 'Invalid property!'
  
      if not negate:
          p1, p2 = (value[0], value[1]) if len(value) > 1 else (value[0], None)
          value = ''.join(
              [v for k, v in obj.get(p1, {}).items() if not k.startswith('^')]
          ) if p2 is None else obj.get(p1, {}).get(p2, '')
      else:
          p1, p2 = (value[0], value[1]) if len(value) > 1 else (value[0], '')
          value = obj.get(p1, {}).get('^' + p2, '')
      assert value, 'Invalid property!'
      return value
docs: Get `GC` property.