package archetype

  1. Overview
  2. Docs
and id_scope =
  1. | SINone
  2. | SIParent
  3. | SIId of lident
and container =
  1. | Aggregate
  2. | Partition
  3. | AssetContainer
  4. | AssetKey
  5. | AssetValue
  6. | AssetView
and type_r =
  1. | Tref of id_scope * lident
  2. | Tcontainer of type_t * container
  3. | Ttuple of type_t list
  4. | Toption of type_t
  5. | Tset of type_t
  6. | Tlist of type_t
  7. | Tmap of type_t * type_t
  8. | Tbig_map of type_t * type_t
  9. | Titerable_big_map of type_t * type_t
  10. | Tor of type_t * type_t
  11. | Tlambda of type_t * type_t
  12. | Tcontract of type_t
  13. | Tticket of type_t
  14. | Tsapling_state of Core.big_int
  15. | Tsapling_transaction of Core.big_int
and type_t = type_r Location.loced * lident option
and logical_operator =
  1. | And
  2. | Or
  3. | Xor
and comparison_operator =
  1. | Equal
  2. | Nequal
  3. | Gt
  4. | Ge
  5. | Lt
  6. | Le
and arithmetic_operator =
  1. | Plus
  2. | Minus
  3. | Mult
  4. | DivRat
  5. | DivEuc
  6. | Modulo
  7. | DivMod
  8. | ThreeWayCmp
  9. | ShiftLeft
  10. | ShiftRight
and unary_operator =
  1. | Uminus
  2. | Not
and assignment_operator =
  1. | ValueAssign
  2. | PlusAssign
  3. | MinusAssign
  4. | MultAssign
  5. | DivAssign
  6. | AndAssign
  7. | OrAssign
and operator =
  1. | Logical of logical_operator
  2. | Cmp of comparison_operator
  3. | Arith of arithmetic_operator
  4. | Unary of unary_operator
val lident_to_yojson : lident -> Yojson.Safe.t
val id_scope_to_yojson : id_scope -> Yojson.Safe.t
val container_to_yojson : container -> Yojson.Safe.t
val type_r_to_yojson : type_r -> Yojson.Safe.t
val type_t_to_yojson : type_t -> Yojson.Safe.t
val logical_operator_to_yojson : logical_operator -> Yojson.Safe.t
val comparison_operator_to_yojson : comparison_operator -> Yojson.Safe.t
val arithmetic_operator_to_yojson : arithmetic_operator -> Yojson.Safe.t
val unary_operator_to_yojson : unary_operator -> Yojson.Safe.t
val assignment_operator_to_yojson : assignment_operator -> Yojson.Safe.t
val operator_to_yojson : operator -> Yojson.Safe.t
val show_lident : lident -> Ppx_deriving_runtime.string
val show_id_scope : id_scope -> Ppx_deriving_runtime.string
val show_container : container -> Ppx_deriving_runtime.string
val show_type_r : type_r -> Ppx_deriving_runtime.string
val show_type_t : type_t -> Ppx_deriving_runtime.string
val show_logical_operator : logical_operator -> Ppx_deriving_runtime.string
val show_comparison_operator : comparison_operator -> Ppx_deriving_runtime.string
val show_arithmetic_operator : arithmetic_operator -> Ppx_deriving_runtime.string
val show_unary_operator : unary_operator -> Ppx_deriving_runtime.string
val show_assignment_operator : assignment_operator -> Ppx_deriving_runtime.string
val show_operator : operator -> Ppx_deriving_runtime.string
type pattern_unloc =
  1. | Pwild
  2. | Pref of pname Location.loced * lident list
and pname =
  1. | PIdent of Ident.ident
  2. | PCons
  3. | PNil
  4. | PSome
  5. | PNone
  6. | PLeft
  7. | PRight
and for_ident_unloc =
  1. | FIsimple of lident
  2. | FIdouble of lident * lident
and transfer_t =
  1. | TTsimple of expr * expr
  2. | TTcontract of expr * expr * lident * type_t * expr
  3. | TTentry of expr * lident * expr
  4. | TTentry2 of expr * lident * expr * lident * expr
  5. | TTself of expr * lident * expr list
  6. | TToperation of expr
and micheline_t =
  1. | MIstring of string
  2. | MIint of Core.big_int
  3. | MIbytes of string
  4. | MIprim of string * micheline_t list * string list
  5. | MIseq of micheline_t list
and method_kind =
  1. | MKexpr of expr
  2. | MKself
and expr_unloc =
  1. | Eterm of id_scope * lident
  2. | Eliteral of literal
  3. | Earray of id_scope * expr list
  4. | Erecord of id_scope * record_item list
  5. | Etuple of expr list
  6. | Edot of expr * id_scope * lident
  7. | Equestiondot of expr * id_scope * lident
  8. | Esqapp of expr * expr
  9. | Emulticomp of expr * (comparison_operator Location.loced * expr) list
  10. | Eapp of function_ * expr list
  11. | Eappt of function_ * type_t list * expr list
  12. | Emethod of method_kind * lident * expr list
  13. | Etransfer of transfer_t
  14. | Edetach of lident * expr * expr
  15. | Edorequire of expr * expr
  16. | Edofailif of expr * expr
  17. | Efail of expr
  18. | Efailsome of expr
  19. | Eassign of assignment_operator * expr * expr
  20. | Eassignopt of expr * expr * expr
  21. | Eif of expr * expr * expr option
  22. | Efor of for_ident * expr * expr
  23. | Eiter of lident * expr option * expr * expr
  24. | Ewhile of expr * expr
  25. | Eseq of expr * expr
  26. | Eletin of lident * type_t option * expr * expr * expr option
  27. | Evar of lident * type_t option * expr * bool
  28. | Evaropt of lident * type_t option * expr * expr option * bool
  29. | Ematchwith of expr * branch list
  30. | Efold of expr * lident * expr
  31. | Emap of expr * lident * expr
  32. | Erecupdate of expr * (lident * expr) list
  33. | Ereturn of expr
  34. | Eoption of option_
  35. | Eor of or_
  36. | Elambda of type_t option * lident * type_t option * expr
  37. | Elambda_michelson of type_t * type_t * micheline_t
  38. | Eentrypoint of type_t * expr * expr * expr option
  39. | Ecallview of type_t * expr * expr * expr
  40. | Eunpack of type_t * expr
  41. | Eemit of type_t * expr
  42. | Eself of lident
  43. | Eternary of expr * expr * expr
  44. | Eany
  45. | Enothing
  46. | Eunit
  47. | Etz_expr of string
  48. | Emicheline of micheline_t
  49. | Emicheline_expr of type_t * micheline_t * expr list
  50. | Einvalid
and branch = pattern list * expr
and scope =
  1. | Added
  2. | After
  3. | Before
  4. | Fixed
  5. | Removed
  6. | Stable
and option_ =
  1. | OSome of expr
  2. | ONone of type_t option
and or_ =
  1. | Oleft of type_t option * type_t * expr
  2. | Oright of type_t * type_t option * expr
and function_ =
  1. | Fident of id_scope * lident
  2. | Foperator of operator Location.loced
and literal =
  1. | Lint of Core.big_int
  2. | Lnat of Core.big_int
  3. | Ldecimal of string
  4. | Ltz of string
  5. | Lmtz of string
  6. | Lutz of string
  7. | Laddress of string
  8. | Lstring of string
  9. | Lbool of bool
  10. | Lduration of string
  11. | Ldate of string
  12. | Lbytes of string
  13. | Lpercent of string
  14. | LnumberFr of Core.big_int
  15. | LbytesFr of string
  16. | LbytesG1 of string
  17. | LbytesG2 of string
and record_item = (assignment_operator * lident) option * expr
and lident_typ = lident * type_t
and field_unloc =
  1. | Ffield of lident * type_t * expr option
    (*

    field

    *)
and args = lident_typ list
and view_visibility =
  1. | VVonchain
  2. | VVoffchain
  3. | VVonoffchain
  4. | VVnone
and s_function = {
  1. name : lident;
  2. args : args;
  3. ret_t : type_t option;
  4. body : expr;
  5. view : bool;
  6. view_visibility : view_visibility;
}
and entry_properties = {
  1. accept_transfer : bool * expr option;
  2. sourcedby : (expr * expr option) option;
  3. calledby : (expr * expr option) option;
  4. state_is : (lident * expr option) option;
  5. constants : (lident * expr * expr option) list option;
  6. require : (lident * expr * expr option) list option;
  7. failif : (lident * expr * expr option) list option;
  8. functions : s_function Location.loced list;
}
and transition = (lident * expr option * expr option) list
and parameter = (lident * type_t * expr option * bool) Location.loced
and parameters = parameter list Location.loced option
and metadata =
  1. | Muri of string Location.loced
  2. | Mjson of string Location.loced
and variable_kind =
  1. | VKvariable
  2. | VKconstant
and enum_kind =
  1. | EKenum of lident
  2. | EKstate
and declaration_unloc =
  1. | Darchetype of lident * parameters * metadata option
  2. | Dimport of lident option * lident
  3. | Dvariable of variable_decl
  4. | Denum of enum_kind * enum_decl
  5. | Dasset of asset_decl
  6. | Drecord of record_decl
  7. | Dentry of entry_decl
  8. | Dgetter of getter_decl
  9. | Dtransition of transition_decl
  10. | Dnamespace of namespace_decl
  11. | Dfunction of s_function
  12. | Dtype of lident * type_t
  13. | Devent of record_decl
  14. | Dinvalid
and variable_decl = lident * type_t * expr option * variable_kind
and enum_decl = (lident * type_t list * enum_option list) list
and asset_decl = lident * field list * asset_option list * asset_post_option list * asset_operation option
and record_decl = lident * field list * expr option
and entry_decl = lident * args * entry_properties * expr option
and getter_decl = {
  1. name : lident;
  2. args : args;
  3. ret_t : type_t;
  4. entry_properties : entry_properties;
  5. body : expr;
}
and transition_decl = lident * args * expr * entry_properties * transition
and namespace_decl = lident * declaration list
and map_kind =
  1. | MKMap
  2. | MKBigMap
  3. | MKIterableBigMap
and asset_option =
  1. | AOidentifiedby of lident list
  2. | AOsortedby of lident
  3. | AOtoMapKind of map_kind
and asset_post_option =
  1. | APOinit of expr list
and enum_option =
  1. | EOinitial
and asset_operation_enum =
  1. | AOadd
  2. | AOremove
  3. | AOupdate
and asset_operation =
  1. | AssetOperation of asset_operation_enum list * expr option
and archetype_unloc = declaration list
include sig ... end
class virtual +'a map : object ... end
include sig ... end
class virtual +'a iter : object ... end
include sig ... end
class virtual +'a reduce : object ... end
include sig ... end
class virtual +'a reduce2 : object ... end
val pattern_unloc_to_yojson : pattern_unloc -> Yojson.Safe.t
val pname_to_yojson : pname -> Yojson.Safe.t
val pattern_to_yojson : pattern -> Yojson.Safe.t
val for_ident_unloc_to_yojson : for_ident_unloc -> Yojson.Safe.t
val for_ident_to_yojson : for_ident -> Yojson.Safe.t
val transfer_t_to_yojson : transfer_t -> Yojson.Safe.t
val micheline_t_to_yojson : micheline_t -> Yojson.Safe.t
val method_kind_to_yojson : method_kind -> Yojson.Safe.t
val expr_unloc_to_yojson : expr_unloc -> Yojson.Safe.t
val branch_to_yojson : branch -> Yojson.Safe.t
val scope_to_yojson : scope -> Yojson.Safe.t
val option__to_yojson : option_ -> Yojson.Safe.t
val or__to_yojson : or_ -> Yojson.Safe.t
val function__to_yojson : function_ -> Yojson.Safe.t
val literal_to_yojson : literal -> Yojson.Safe.t
val record_item_to_yojson : record_item -> Yojson.Safe.t
val expr_to_yojson : expr -> Yojson.Safe.t
val lident_typ_to_yojson : lident_typ -> Yojson.Safe.t
val field_unloc_to_yojson : field_unloc -> Yojson.Safe.t
val field_to_yojson : field -> Yojson.Safe.t
val args_to_yojson : args -> Yojson.Safe.t
val view_visibility_to_yojson : view_visibility -> Yojson.Safe.t
val s_function_to_yojson : s_function -> Yojson.Safe.t
val entry_properties_to_yojson : entry_properties -> Yojson.Safe.t
val transition_to_yojson : transition -> Yojson.Safe.t
val parameter_to_yojson : parameter -> Yojson.Safe.t
val parameters_to_yojson : parameters -> Yojson.Safe.t
val metadata_to_yojson : metadata -> Yojson.Safe.t
val variable_kind_to_yojson : variable_kind -> Yojson.Safe.t
val enum_kind_to_yojson : enum_kind -> Yojson.Safe.t
val declaration_unloc_to_yojson : declaration_unloc -> Yojson.Safe.t
val variable_decl_to_yojson : variable_decl -> Yojson.Safe.t
val enum_decl_to_yojson : enum_decl -> Yojson.Safe.t
val asset_decl_to_yojson : asset_decl -> Yojson.Safe.t
val record_decl_to_yojson : record_decl -> Yojson.Safe.t
val entry_decl_to_yojson : entry_decl -> Yojson.Safe.t
val getter_decl_to_yojson : getter_decl -> Yojson.Safe.t
val transition_decl_to_yojson : transition_decl -> Yojson.Safe.t
val namespace_decl_to_yojson : namespace_decl -> Yojson.Safe.t
val map_kind_to_yojson : map_kind -> Yojson.Safe.t
val asset_option_to_yojson : asset_option -> Yojson.Safe.t
val asset_post_option_to_yojson : asset_post_option -> Yojson.Safe.t
val enum_option_to_yojson : enum_option -> Yojson.Safe.t
val declaration_to_yojson : declaration -> Yojson.Safe.t
val asset_operation_enum_to_yojson : asset_operation_enum -> Yojson.Safe.t
val asset_operation_to_yojson : asset_operation -> Yojson.Safe.t
val archetype_unloc_to_yojson : archetype_unloc -> Yojson.Safe.t
val archetype_to_yojson : archetype -> Yojson.Safe.t
val show_pattern_unloc : pattern_unloc -> Ppx_deriving_runtime.string
val show_pattern : pattern -> Ppx_deriving_runtime.string
val show_for_ident_unloc : for_ident_unloc -> Ppx_deriving_runtime.string
val show_for_ident : for_ident -> Ppx_deriving_runtime.string
val show_transfer_t : transfer_t -> Ppx_deriving_runtime.string
val show_micheline_t : micheline_t -> Ppx_deriving_runtime.string
val show_method_kind : method_kind -> Ppx_deriving_runtime.string
val show_expr_unloc : expr_unloc -> Ppx_deriving_runtime.string
val show_branch : branch -> Ppx_deriving_runtime.string
val show_option_ : option_ -> Ppx_deriving_runtime.string
val show_function_ : function_ -> Ppx_deriving_runtime.string
val show_literal : literal -> Ppx_deriving_runtime.string
val show_record_item : record_item -> Ppx_deriving_runtime.string
val show_lident_typ : lident_typ -> Ppx_deriving_runtime.string
val show_field_unloc : field_unloc -> Ppx_deriving_runtime.string
val show_view_visibility : view_visibility -> Ppx_deriving_runtime.string
val show_s_function : s_function -> Ppx_deriving_runtime.string
val show_entry_properties : entry_properties -> Ppx_deriving_runtime.string
val show_transition : transition -> Ppx_deriving_runtime.string
val show_parameter : parameter -> Ppx_deriving_runtime.string
val show_parameters : parameters -> Ppx_deriving_runtime.string
val show_metadata : metadata -> Ppx_deriving_runtime.string
val show_variable_kind : variable_kind -> Ppx_deriving_runtime.string
val show_enum_kind : enum_kind -> Ppx_deriving_runtime.string
val show_declaration_unloc : declaration_unloc -> Ppx_deriving_runtime.string
val show_variable_decl : variable_decl -> Ppx_deriving_runtime.string
val show_enum_decl : enum_decl -> Ppx_deriving_runtime.string
val show_asset_decl : asset_decl -> Ppx_deriving_runtime.string
val show_record_decl : record_decl -> Ppx_deriving_runtime.string
val show_entry_decl : entry_decl -> Ppx_deriving_runtime.string
val show_getter_decl : getter_decl -> Ppx_deriving_runtime.string
val show_transition_decl : transition_decl -> Ppx_deriving_runtime.string
val show_namespace_decl : namespace_decl -> Ppx_deriving_runtime.string
val show_map_kind : map_kind -> Ppx_deriving_runtime.string
val show_asset_option : asset_option -> Ppx_deriving_runtime.string
val show_asset_post_option : asset_post_option -> Ppx_deriving_runtime.string
val show_enum_option : enum_option -> Ppx_deriving_runtime.string
val show_declaration : declaration -> Ppx_deriving_runtime.string
val show_asset_operation_enum : asset_operation_enum -> Ppx_deriving_runtime.string
val show_asset_operation : asset_operation -> Ppx_deriving_runtime.string
val show_archetype_unloc : archetype_unloc -> Ppx_deriving_runtime.string
val show_archetype : archetype -> Ppx_deriving_runtime.string
val tref : ?loc:Location.t -> ?a:lident -> Ident.ident -> type_t
val tunit : type_t
val tstring : type_t
val tnat : type_t
val tint : type_t
val trational : type_t
val tbool : type_t
val trole : type_t
val taddress : type_t
val tdate : type_t
val ttez : type_t
val tduration : type_t
val tsignature : type_t
val tkey : type_t
val tkey_hash : type_t
val tbytes : type_t
val tchain_id : type_t
val toperation : type_t
val tbls12_381_fr : type_t
val tbls12_381_g1 : type_t
val tbls12_381_g2 : type_t
val tnever : type_t
val tchest : type_t
val tchest_key : type_t
val mk_tcontainer : ?loc:Location.t -> ?a:lident -> type_t -> container -> type_t
val mk_ttuple : ?loc:Location.t -> ?a:lident -> type_t list -> type_t
val mk_toption : ?loc:Location.t -> ?a:lident -> type_t -> type_t
val mk_tset : ?loc:Location.t -> ?a:lident -> type_t -> type_t
val mk_tlist : ?loc:Location.t -> ?a:lident -> type_t -> type_t
val mk_tmap : ?loc:Location.t -> ?a:lident -> type_t -> type_t -> type_t
val mk_tbig_map : ?loc:Location.t -> ?a:lident -> type_t -> type_t -> type_t
val mk_titerable_big_map : ?loc:Location.t -> ?a:lident -> type_t -> type_t -> type_t
val mk_tor : ?loc:Location.t -> ?a:lident -> type_t -> type_t -> type_t
val mk_tcontract : ?loc:Location.t -> ?a:lident -> type_t -> type_t
val mk_tticket : ?loc:Location.t -> ?a:lident -> type_t -> type_t
val mk_sapling_state : ?loc:Location.t -> ?a:lident -> Core.big_int -> type_t
val mk_sapling_transaction : ?loc:Location.t -> ?a:lident -> Core.big_int -> type_t
val mk_eliteral : ?loc:Location.t -> literal -> expr_unloc Location.loced
val eint : int -> expr_unloc Location.loced
val enat : int -> expr_unloc Location.loced
val ebtz : string -> expr_unloc Location.loced
val emtz : string -> expr_unloc Location.loced
val eutz : string -> expr_unloc Location.loced
val epercent : string -> expr_unloc Location.loced
val edecimal : string -> expr_unloc Location.loced
val eaddress : string -> expr_unloc Location.loced
val estring : string -> expr_unloc Location.loced
val eduration : string -> expr_unloc Location.loced
val edate : string -> expr_unloc Location.loced
val ebytes : string -> expr_unloc Location.loced
val eterm : ?loc:Location.t -> ?s:id_scope -> lident -> expr_unloc Location.loced
val earray : ?loc:Location.t -> ?s:id_scope -> expr list -> expr_unloc Location.loced
val erecord : ?loc:Location.t -> ?s:id_scope -> record_item list -> expr_unloc Location.loced
val etuple : ?loc:Location.t -> expr list -> expr_unloc Location.loced
val esqapp : ?loc:Location.t -> expr -> expr -> expr_unloc Location.loced
val eapp : ?loc:Location.t -> function_ -> expr list -> expr_unloc Location.loced
val emethod : ?loc:Location.t -> method_kind -> lident -> expr list -> expr_unloc Location.loced
val etransfer : ?loc:Location.t -> transfer_t -> expr_unloc Location.loced
val edorequire : ?loc:Location.t -> expr -> expr -> expr_unloc Location.loced
val edofailif : ?loc:Location.t -> expr -> expr -> expr_unloc Location.loced
val efail : ?loc:Location.t -> expr -> expr_unloc Location.loced
val eassignopt : ?loc:Location.t -> expr -> expr -> expr -> expr_unloc Location.loced
val eif : ?loc:Location.t -> ?e:expr -> expr -> expr -> expr_unloc Location.loced
val eiter : ?loc:Location.t -> ?min:expr -> lident -> expr -> expr -> expr_unloc Location.loced
val ewhile : ?loc:Location.t -> expr -> expr -> expr_unloc Location.loced
val eseq : ?loc:Location.t -> expr -> expr -> expr_unloc Location.loced
val eletin : ?loc:Location.t -> ?t:type_t -> ?o:expr -> lident -> expr -> expr -> expr_unloc Location.loced
val evar : ?loc:Location.t -> ?t:type_t -> lident -> expr -> bool -> expr_unloc Location.loced
val evaropt : ?loc:Location.t -> ?t:type_t -> lident -> expr -> bool -> expr option -> expr_unloc Location.loced
val ematchwith : ?loc:Location.t -> expr -> branch list -> expr_unloc Location.loced
val erecupdate : ?loc:Location.t -> expr -> (lident * expr) list -> expr_unloc Location.loced
val ereturn : ?loc:Location.t -> expr -> expr_unloc Location.loced
val eoption : ?loc:Location.t -> option_ -> expr_unloc Location.loced
val eleft : ?loc:Location.t -> type_t -> expr -> expr_unloc Location.loced
val eright : ?loc:Location.t -> type_t -> expr -> expr_unloc Location.loced
val eentrypoint : ?loc:Location.t -> type_t -> expr -> expr -> expr option -> expr_unloc Location.loced
val eunpack : ?loc:Location.t -> type_t -> expr -> expr_unloc Location.loced
val eany : ?loc:Location.t -> 'a -> expr_unloc Location.loced
val enothing : ?loc:Location.t -> 'a -> expr_unloc Location.loced
val einvalid : ?loc:Location.t -> 'a -> expr_unloc Location.loced
val mk_s_function : lident -> args -> type_t option -> expr -> bool -> view_visibility -> s_function
val mk_entry_properties : ?accept_transfer:(bool * expr option) -> ?sourcedby:(expr * expr option) -> ?calledby:(expr * expr option) -> ?state_is:(lident * expr option) -> ?constants:(lident * expr * expr option) list -> ?require:(lident * expr * expr option) list -> ?failif:(lident * expr * expr option) list -> ?functions:s_function Location.loced list -> 'a -> entry_properties
val mk_transition_item : lident -> expr option -> expr option -> lident * expr option * expr option
val mk_variable_decl : ?dv:expr -> lident -> type_t -> variable_kind -> variable_decl
val mk_enum_decl : enum_decl -> enum_decl
val mk_asset_decl : ?fs:field list -> ?aos:asset_option list -> ?apos:asset_post_option list -> ?ao:asset_operation -> lident -> asset_decl
val mk_record_decl : ?fs:field list -> ?pos:expr -> lident -> record_decl
val mk_entry_decl : ?args:args -> ?body:expr -> lident -> entry_properties -> entry_decl
val mk_transition_decl : ?args:args -> ?trs:transition -> lident -> expr -> entry_properties -> transition_decl
val mk_namespace_decl : ?ds:declaration list -> lident -> namespace_decl
val mk_asset_option_identifiedby : lident list -> asset_option
val mk_asset_option_sortedby : lident -> asset_option
val mk_asset_option_to_map_kind : map_kind -> asset_option
val mk_asset_post_option_init : expr list -> asset_post_option
val mk_enum_option_initial : 'a -> enum_option
val mk_assetoperation : asset_operation_enum list -> expr option -> asset_operation
val mk_darchetype : ?parameters:parameter list Location.loced -> ?metadata:metadata -> ?loc:Location.t -> lident -> declaration_unloc Location.loced
val mk_invalid : ?loc:Location.t -> unit -> declaration_unloc Location.loced
val mk_archetype : ?decls:'a list -> ?loc:Location.t -> unit -> 'a list Location.loced
val cst_now : string
val cst_transferred : string
val cst_caller : string
val cst_balance : string
val cst_source : string
val cst_self_address : string
val cst_self_chain_id : string
val cst_metadata : string
val cst_level : string
val cst_min_block_time : string
val get_name : declaration_unloc -> Ident.ident
OCaml

Innovation. Community. Security.