PageSourceSearch

https://tripwire.io/20260902094116-main-4c0f6a9-34/static/js/6392.5cfbb061.chunk.js

js tripwire.io collected 2026-10-03 21:11:36 UTC 17,496 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkui=self.webpackChunkui||[]).push([[6392],{45250:function(e,n,t){var i=t(74165),a=t(15861),r=t(29439),s=t(93895),c=t(42053),l=t(96318),o=t(99815),u=t(46226),d=t(47313),m=t(40056),p=t(46417),f=function(e){var n=e.url,t=e.name,f=e.namePlural,x=e.description,v=e.descriptionExtra,C=e.invalidateQueries,h=e.selectedRows,b=e.open,g=e.onOk,j=e.onCancel,_=(0,m.useQueryClient)(),y=(0,o.lm)(),k=(0,r.Z)(y,1)[0],w=(0,l.RK)(),Z=(0,u.q)("".concat(n,"/:uuid/"),{method:"DELETE"}).query,E=(0,d.useCallback)(function(){var e=(0,a.Z)((0,i.Z)().mark((function e(n){var t;return(0,i.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.uuids,e.next=3,Promise.all(t.map((function(e){return Z(null,{uuid:e,customer:w})})));case 3:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),[Z,w]),R=(0,m.useMutation)(E,{onSuccess:function(){var e;C.forEach((function(e){return _.invalidateQueries(e)})),k({text:(0,p.jsx)(s.cC,{id:'{0, plural, =1 {{name} "{1}" has been deleted.} other {# selected {namePlural} have been deleted.}}',values:{0:h.length,1:null===(e=h[0])||void 0===e?void 0:e.name,name:t,namePlural:f}}),variant:"success",key:"cma_object_deleted",pendo:{subject:"cma",detail:"object_deleted"}}),g()}}).mutateAsync,O=(0,d.useCallback)((0,a.Z)((0,i.Z)().mark((function e(){return(0,i.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,R({uuids:h.map((function(e){return e.uuid}))});case 2:case"end":return e.stop()}}),e)}))),[h,R]),A=null!==x&&void 0!==x?x:c.ag._("{0, plural, one {You are about to delete 1 {name}. This cannot be undone.} other {You are about to delete # {namePlural}. This cannot be undone.}}",{0:h.length,name:t,namePlural:f}),S=v?(0,p.jsxs)("span",{children:[A,"\xa0",v]}):A;return(0,p.jsx)(o.QH,{open:b,title:c.ag._("Confirm Delete"),description:S,okText:c.ag._("Delete"),onCancel:j,onOk:O})};f.displayName="@tw/cma/ApiObjectDeleteDialog",n.Z=(0,l.uU)(f)},95828:function(e,n,t){t.d(n,{L:function(){return o}});var i=t(93895),a=t(96318),r=t(986),s=t(99194),c=(t(47313),t(46417)),l=(0,s.ZL)()((function(e){return{container:{marginTop:-23},segment:{display:"inline-block",margin:e.spacing(1)}}})),o=function(e){var n,t,s=e.item,o=l().classes;return(0,c.jsxs)("section",{className:o.container,children:[(0,c.jsxs)("div",{className:o.segment,children:[(0,c.jsx)(r.gm,{kind:"standardLabel","data-test":"created-by-label",children:(0,c.jsx)(i.cC,{id:"Created By"})}),(0,c.jsx)(r.gm,{kind:"standard","data-test":"created-by-description",children:(null===s||void 0===s||null===(n=s.created_by)||void 0===n?void 0:n.email)||(0,c.jsx)(i.cC,{id:"Unknown"})}),(0,c.jsx)(r.gm,{kind:"standardLabel","data-test":"created-date-label",children:(0,c.jsx)(i.cC,{id:"Created Date"})}),(0,c.jsx)(r.gm,{kind:"standard","data-test":"created-date-description",children:null!==s&&void 0!==s&&s.created_at?(0,a.o0)(s.created_at):(0,c.jsx)(i.cC,{id:"Unknown"})})]}),(0,c.jsxs)("div",{className:o.segment,children:[(0,c.jsx)(r.gm,{kind:"standardLabel","data-test":"modified-by-label",children:(0,c.jsx)(i.cC,{id:"Modified By"})}),(0,c.jsx)(r.gm,{kind:"standard","data-test":"modified-by-description",children:(null===s||void 0===s||null===(t=s.updated_by)||void 0===t?void 0:t.email)||(0,c.jsx)(i.cC,{id:"Unknown"})}),(0,c.jsx)(r.gm,{kind:"standardLabel","data-test":"modified-date-label",children:(0,c.jsx)(i.cC,{id:"Modified Date"})}),(0,c.jsx)(r.gm,{kind:"standard","data-test":"modified-date-description",children:null!==s&&void 0!==s&&s.updated_at?(0,a.o0)(s.updated_at):(0,c.jsx)(i.cC,{id:"Unknown"})})]})]})}},56392:function(e,n,t){t.r(n),t.d(n,{default:function(){return se}});var i=t(29439),a=t(93895),r=t(42053),s=t(5211),c=t(37957),l=t(93798),o=t(96217),u=t(59236),d=t(83719),m=t(96318),p=t(99815),f=t(46226),x=t(99194),v=t(31172),C=t(47313),h=t(40056),b=t(21911),g=t(45250),j=t(1413),_=t(45987),y=t(74165),k=t(15861),w=t(8975),Z=t(48751),E=t(51930),R=t(51987),O=t(18104),A=t(10383),S=t(62111),T=t(94778),P=t(87874),M=t(56095),N=t(22822),I=t(3463),U=t(95828),D=t(86426),L=t(46417),F=(0,x.ZL)()((function(e){return{copyAndPasteBox:{display:"inline-block",fontFamily:e.tw.fonts
1Mono,fontSize:"0.875rem",overflow:"auto",whiteSpace:"pre",maxWidth:"calc(100% - 48px)",verticalAlign:"middle"}}})),W=function(e){var n=e.text,t=F().classes;return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)("span",{className:t.copyAndPasteBox,children:n}),(0,L.jsx)(m.h9,{text:n,children:(0,L.jsx)(O.Z,{color:"primary","aria-label":r.ag._("Copy to Clipboard"),size:"large",children:(0,L.jsx)(D.Z,{})})})]})},H=["uuid"],K=["open","onOk"],q=m.w1.Perms,B=m.w1.usePermissions,Q=new URL(M.API_ROOT).host,z=(0,x.ZL)()((function(e){return{formControl:{margin:e.spacing(1),display:"block",minHeight:75}}})),Y=function(e){var n=e.setKey,t=(0,N.u6)().setFieldValue,i=(0,C.useCallback)((0,k.Z)((0,y.Z)().mark((function e(){var i,a,r;return(0,y.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,P.T)();case 2:i=e.sent,a=i.private_key,r=i.public_key,t("public_key",r),n(a);case 7:case"end":return e.stop()}}),e)}))),[t,n]);return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(p.UO,{onClick:i,children:(0,L.jsx)(a.cC,{id:"Generate Keypair"})}),(0,L.jsx)(p.gm,{kind:"smallerByline",style:{marginLeft:"1em"},children:(0,L.jsx)(a.cC,{id:"Note: The private key cannot be recovered once this panel is closed."})})]})},V=function(e){var n=e.privateKey,t=(0,S.Z)(),r=(0,C.useState)(0),s=(0,i.Z)(r,2),c=s[0],l=s[1],o=(0,C.useCallback)((function(e,n){l(n)}),[]),u="RUNTIME_TRIPWIREIO_ROOT=".concat(Q,"\nRUNTIME_SECRET_KEY=").concat(n,"\n"),d="docker run --rm -it \\\n  -e RUNTIME_TRIPWIREIO_ROOT=".concat(Q," \\\n  -e RUNTIME_SECRET_KEY=").concat(n," \\\n  --pull always \\\n  ").concat(M.CMA_RUNTIME_REPOSITORY_URL,"\n"),f="apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: tripwire-private-cloud-agent\n  labels:\n    app: tripwire-private-cloud-agent\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: tripwire-private-cloud-agent\n  template:\n    metadata:\n      labels:\n        app: tripwire-private-cloud-agent\n    spec:\n      containers:\n        - name: tripwire-private-cloud-agent\n          image: ".concat(M.CMA_RUNTIME_REPOSITORY_URL,"\n          imagePullPolicy: Always\n          env:\n            - name: RUNTIME_TRIPWIREIO_ROOT\n              value: ").concat(Q,"\n            - name: RUNTIME_SECRET_KEY\n              value: ").concat(n,"\n\n"),x="tripwire-private-cloud-agent.yaml",v=(0,C.useCallback)((function(){var e=new Blob([f],{type:"application/x-yaml;charset=utf-8"});(0,m.Se)(e,x)}),[f]);return n?(0,L.jsxs)("div",{style:{marginTop:"1em"},children:[(0,L.jsx)(Z.Z,{position:"static",color:"default",children:(0,L.jsxs)(E.Z,{indicatorColor:"primary",textColor:"primary",value:c,onChange:o,scrollButtons:"auto",variant:"scrollable",children:[(0,L.jsx)(R.Z,{label:(0,L.jsx)(a.cC,{id:"Kubernetes"})}),(0,L.jsx)(R.Z,{label:(0,L.jsx)(a.cC,{id:"Docker CLI"})}),(0,L.jsx)(R.Z,{label:(0,L.jsx)(a.cC,{id:"Other"})})]})}),(0,L.jsxs)("div",{hidden:0!==c,children:[(0,L.jsx)("p",{children:(0,L.jsx)(a.cC,{id:"Download the file below and run: <0/>",components:{0:(0,L.jsx)(W,{text:"kubectl apply -f ".concat(x)})}})}),(0,L.jsx)(p.gm,{children:x}),(0,L.jsx)(O.Z,{onClick:v,children:(0,L.jsx)(w.Z,{})}),(0,L.jsx)("p",{style:{fontFamily:t.tw.fontsMono,whiteSpace:"pre",overflow:"auto"},children:f})]}),(0,L.jsxs)("div",{hidden:1!==c,children:[(0,L.jsx)("p",{children:(0,L.jsx)(a.cC,{id:"Run the following command:"})}),(0,L.jsx)(W,{text:d})]}),(0,L.jsxs)("div",{hidden:2!==c,children:[(0,L.jsx)("p",{children:(0,L.jsx)(a.cC,{id:"Run this container: <0/>",components:{0:(0,L.jsx)(W,{text:M.CMA_RUNTIME_REPOSITORY_URL})}})}),(0,L.jsx)("p",{children:(0,L.jsx)(a.cC,{id:"With these environment variables:"})}),(0,L.jsx)(W,{text:u})]})]}):null},G=function(e){var n=e.item,t=e.onOk,s=e.onCancel,c=z().classes,l=(0,p.lm)(),o=(0,i.Z)(l,1)[0],u=(0,m.RK)(),d=B(),x=(0,C.useMemo)((function(){return I.Ry().shape({name:I.Z_().max(255).required(),description:I.Z_(),public_key:I.Z_().required()})}),[]),v=n&&n.uuid,b=(0,C.useMemo)((function(){return{method:v?"PUT":"POST"}}),[v]),g=(0,f.q)("customruntime/:uuid?/",b).query,j=(0,C.useCallback)((function(e){var n=e.uuid,t=(0,_.Z)(e,H);return g(null,{uuid:n,customer:u},t)}),[u,g]),w=(0,h.useQueryClient)(),Z=(0,h.useMutation)(j,{onSuccess:function(e){w.invalidateQueries("@tw/cma/customruntimes"),o({text:v?r.ag._('Private Cloud Agent "{0}" was updated successfully.',{0:e.name}):r.ag._('Private Cloud Agent "{0}" was added successfully.',{0:e.name}),variant:"success",key:"cma_customruntime_update",pendo:{subject:"cma",detail
1:v?"customruntime_update":"customruntime_add"}}),t()}}),E=Z.mutateAsync,R=Z.data,O=Z.error,S=(0,C.useCallback)(function(){var e=(0,k.Z)((0,y.Z)().mark((function e(n){var t,i,a;return(0,y.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.name,i=n.description,a=n.public_key,e.next=3,E({uuid:v||void 0,name:t,description:i,public_key:a});case 3:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),[v,E]),P=!d(q.CMAAccountConfigEdit);O instanceof Error&&o({text:O.message,variant:"error",key:"cma_edit_custom_runtime_error",dataTest:"snackbar-error-message",pendo:{subject:"cma",detail:"edit_custom_runtime"}});var M=(0,C.useState)(),D=(0,i.Z)(M,2),F=D[0],W=D[1];return(0,L.jsx)(N.J9,{enableReinitialize:!0,initialValues:null!==R&&void 0!==R?R:n,initialErrors:O instanceof T.VL?O.data:null,onSubmit:S,validationSchema:x,children:function(e){var t=e.isValid,i=e.isSubmitting,l=e.dirty;return(0,L.jsxs)(N.l0,{children:[(0,L.jsxs)(p.ue,{children:[v?(0,L.jsx)(U.L,{item:n}):null,(0,L.jsx)(A.Z,{className:c.formControl,children:(0,L.jsx)(N.gN,{id:"name",component:p.jN,autoFocus:!0,margin:"dense",name:"name",label:r.ag._("Name"),fullWidth:!0,required:!0,"data-test":"customruntime-name-input",disabled:P})}),(0,L.jsx)(A.Z,{className:c.formControl,children:(0,L.jsx)(N.gN,{id:"description",component:p.jN,fullWidth:!0,multiline:!0,name:"description",label:r.ag._("Description"),"data-test":"customruntime-description-input",disabled:P})}),(0,L.jsx)(A.Z,{className:c.formControl,children:(0,L.jsx)(N.gN,{id:"public_key",component:p.jN,fullWidth:!0,required:!0,name:"public_key",label:r.ag._("Public Key"),"data-test":"customruntime-publickey-input",disabled:!0})}),!v&&window.crypto?(0,L.jsx)(Y,{setKey:W}):null,(0,L.jsx)(V,{privateKey:F})]}),(0,L.jsxs)(p.L0,{children:[(0,L.jsx)(p.U4,{"data-test":"customruntime-cancel-button",onClick:s,children:(0,L.jsx)(a.cC,{id:"Cancel"})}),(0,L.jsx)(p.KM,{disabled:P||i||!t||(n&&null!==n.uuid||!n)&&!l,"data-test":"customruntime-save-button",isSubmitting:i,type:"submit",children:(0,L.jsx)(a.cC,{id:"Save"})})]})]})}})};G.displayName="@tw/cma/CustomRuntime/EditCustomRuntime";var J=function(e){var n,t=e.open,a=e.onOk,s=(0,_.Z)(e,K),c=null===(n=s.item)||void 0===n?void 0:n.uuid,l=(0,C.useState)(!1),o=(0,i.Z)(l,2),u=o[0],d=o[1],m=(0,C.useCallback)((function(){c?a():d(!0)}),[c,a]),f=(0,C.useCallback)((function(){d(!1),a()}),[a]),x=(0,C.useCallback)((function(){return d(!1)}),[]);return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(p.QH,{open:u,title:r.ag._("Confirm Close"),description:r.ag._("Once you close this form, it will no longer be possible to recover the private key in the instructions. Make sure you have saved a copy of the instructions before continuing."),okText:r.ag._("Continue"),onCancel:x,onOk:f}),(0,L.jsx)(p.yo,{isOpen:t,handleClose:s.onCancel,title:c?{id:"Edit Private Cloud Agent"}:{id:"New Private Cloud Agent"},width:p.su.MEDIUM_WIDTH,children:(0,L.jsx)(G,(0,j.Z)({onOk:m},s))})]})},$=m.w1.Perms,X=(0,x.ZL)()((function(e){return{iconError:{color:e.tw.iconError,height:e.tw.iconDefaultSize},iconSuccess:{color:e.tw.iconSuccess,height:e.tw.iconDefaultSize}}})),ee=[{id:"name",desc:!1}],ne=["thumbprint","description","created_at","updated_at","created_by__email","updated_by__email","assigned"],te=[{value:!0,text:{id:"Online"}},{value:!1,text:{id:"Offline"}}],ie=[{value:!0,text:{id:"Assigned"}},{value:!1,text:{id:"Unassigned"}}],ae={name:"",description:"",public_key:""},re=function(){var e=X().classes,n=(0,p.lm)(),t=(0,i.Z)(n,1)[0],x=(0,b.k6)(),j=(0,v.parse)(x.location.search).online,_=Array.isArray(j)?j[0]:j,y=(0,m.d$)({ordering:(0,m.ey)(ee)}),k=(0,i.Z)(y,2),w=k[0],Z=k[1],E=(0,f.q)("customruntime/"),R=(0,h.useQuery)(["@tw/cma/customruntimes",w],E,m.Cd),O=R.data,A=R.isLoading,S=R.error,T=(0,C.useState)(null),P=(0,i.Z)(T,2),M=P[0],N=P[1],I=(0,C.useState)(!1),U=(0,i.Z)(I,2),D=U[0],F=U[1],W=(0,C.useCallback)((function(){N(ae),F(!0)}),[]),H=(0,C.useCallback)((function(e){var n=e.selectedFlatRows;return function(){var e,t=null===(e=n[0])||void 0===e?void 0:e.original;N(t),F(!0)}}),[]),K=(0,C.useCallback)((function(e){N(e.original),F(!0)}),[]),q=(0,C.useCallback)((function(){return F(!1)}),[]),B=(0,C.useState)(!1),Q=(0,i.Z)(B,2),z=Q[0],Y=Q[1],V=(0,C.useCallback)((function(){return Y(!0)}),[]),G=(0,C.useMemo)((function(){return[{label:r.ag._("New"),icon:(0,L.jsx)(s.Z,{}),onClick:W,getEnabled:p.Gl,permission:$.CMAAccountConfigEdit,getVisible:p.Gl},{label:r.ag._("Edit"),icon:(0,L.jsx)(l.Z,{}),tooltip:r.ag._("Edit selected Private Cloud Agent"),getOnClick:H,getEnabled:p.Qj,permission:$.CMAAccountConfigEdit},{label:r.ag._("Delete"),icon:(0,L.jsx)(o.Z,{}),tooltip:r.ag._("Delete selected Private Cloud Agent(s)"),onClick:V,getEnabled:p.Qg,permission:$.CMAAccountConfigEdit}]}),[W,H,V]),re=(0,C.useMemo)((function(){return[{Header:function(){return(0,L.jsx)(a.cC,{id:"Name"})},accessor:"name",Cell:p.lc},{Header:function(){return(0,L.jsx)(a.cC,{id:"Description"})},accessor:"description",Cell:p.lc},{Header:function(){return(0,L.jsx)(a.cC,{id:"Public Key Fingerprint"})},accessor:"thumbprint",Cell:p.lc,disableFilters:!0,disableSortBy:!0},{Header:function(){return(0,L.jsx)(a.cC,{id:"Online"})},accessor:"online",Cell:function(n){return n.cell.value?(0,L.jsx)(d.Z,{title:r.ag._("Online"),children:(0,L.jsx)(c.Z,{className:e.iconSuccess,"aria-hidden":void 0,"data-test":"status-online"})}):(0,L.jsx)(d.Z,{title:r.ag._("Offline"),children:(0,L.jsx)(u.Z,{className:e.iconError,"aria-hidden":void 0,"data-test":"status-offline"})})},maxWidth:15,Filter:function(e){return(0,p.fD)(e,te)},filter:"equals",disableSortBy:!0},{Header:function(){return(0,L.jsx)(a.cC,{id:"Last Seen"})},id:"last_seen",accessor:function(e){return e.last_seen?(0,m.o0)(e.last_seen):r.ag._("Never")},Cell:p.lc,minWidth:50,maxWidth:50,disableFilters:!0},{Header:function(){return(0,L.jsx)(a.cC,{id:"Created Date"})},id:"created_at",accessor:function(e){return(0,m.o0)(e.created_at)},Cell:p.lc,minWidth:50,maxWidth:50,disableFilters:!0},{Header:function(){return(0,L.jsx)(a.cC,{id:"Created By"})},id:"created_by__email",accessor:function(e){var n,t;return null!==(n=null===(t=e.created_by)||void 0===t?void 0:t.email)&&void 0!==n?n:r.ag._("Unknown")},Cell:p.lc,minWidth:50,maxWidth:50},{Header:function(){return(0,L.jsx)(a.cC,{id:"Modified Date"})},id:"updated_at",accessor:function(e){return(0,m.o0)(e.updated_at)},Cell:p.lc,minWidth:50,maxWidth:50,disableFilters:!0},{Header:function(){return(0,L.jsx)(a.cC,{id:"Modified By"})},id:"updated_by__email",accessor:function(e){var n,t;return null!==(n=null===(t=e.updated_by)||void 0===t?void 0:t.email)&&void 0!==n?n:r.ag._("Unknown")},Cell:p.lc,minWidth:50,maxWidth:50},{Header:function(){return(0,L.jsx)(a.cC,{id:"Assigned"})},id:"assigned",accessor:function(){return!1},Filter:function(e){return(0,p.fD)(e,ie)},filter:"equals",isHidden:!0}]}),[e.iconError,e.iconSuccess]),se=(0,p._2)({name:"cma:customRuntime",data:(null===O||void 0===O?void 0:O.results)||[],columns:re,commands:G,keyField:"uuid",loading:A,noDataText:r.ag._('No private cloud agents available. Register a private cloud agent by clicking "New" above.'),onTableRowClick:K,manualPagination:!0,useExternalSortingAndPagination:!0,enableSelection:!0,paginationType:"cursor",pageCount:0,rowCount:null===O||void 0===O?void 0:O.count,showColumnSelector:!0,hiddenColumnsForReset:ne,initialState:{sortBy:ee,hiddenColumns:ne}}),ce=se.toggleAllRowsSelected,le=se.selectedFlatRows,oe=se.setFilter;(0,C.useEffect)((function(){oe("online",_||void 0)}),[oe,_]),(0,m.yp)(Z,O,se);var ue=(0,C.useCallback)((function(){Y(!1),ce(!1)}),[ce]),de=(0,C.useCallback)((function(){Y(!1)}),[]);return(0,C.useEffect)((function(){S instanceof Error&&t({text:S.message,variant:"error",key:"cma_custom_runtime_error",pendo:{subject:"cma",detail
1:"custom_runtime"}})}),[t,S]),(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(J,{open:D,onOk:q,onCancel:q,item:M}),(0,L.jsx)(g.Z,{url:"customruntime",name:r.ag._("Private Cloud Agent"),namePlural:r.ag._("Private Cloud Agents"),invalidateQueries:["@tw/cma/customruntimes"],open:z,onOk:ue,onCancel:de,selectedRows:le.map((function(e){return e.original}))}),(0,L.jsx)(p.iA,{instance:se})]})};re.displayName="@tw/cma/CustomRuntime";var se=re},46226:function(e,n,t){t.d(n,{G:function(){return s},q:function(){return c}});var i=t(94778),a=t(56095),r=a.CMA_API?"".concat(a.CMA_API,"/v1"):"".concat(a.API_ROOT,"/v3/cma"),s=function(e,n){return"".concat(r,"/").concat((0,i.Gn)(e,n))},c=(0,i.r3)(r)},37957:function(e,n,t){var i=t(64836);n.Z=void 0;var a=i(t(45045)),r=t(46417),s=(0,a.default)((0,r.jsx)("path",{d:"M16.59 7.58 10 14.17l-3.59-3.58L5 12l5 5 8-8zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"CheckCircleOutline");n.Z=s}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.