You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1190 lines
44 KiB

  1. // Code generated by protoc-gen-go.
  2. // source: filer.proto
  3. // DO NOT EDIT!
  4. /*
  5. Package filer_pb is a generated protocol buffer package.
  6. It is generated from these files:
  7. filer.proto
  8. It has these top-level messages:
  9. LookupDirectoryEntryRequest
  10. LookupDirectoryEntryResponse
  11. ListEntriesRequest
  12. ListEntriesResponse
  13. Entry
  14. EventNotification
  15. FileChunk
  16. FuseAttributes
  17. GetEntryAttributesRequest
  18. GetEntryAttributesResponse
  19. GetFileContentRequest
  20. GetFileContentResponse
  21. CreateEntryRequest
  22. CreateEntryResponse
  23. UpdateEntryRequest
  24. UpdateEntryResponse
  25. DeleteEntryRequest
  26. DeleteEntryResponse
  27. AssignVolumeRequest
  28. AssignVolumeResponse
  29. LookupVolumeRequest
  30. Locations
  31. Location
  32. LookupVolumeResponse
  33. DeleteCollectionRequest
  34. DeleteCollectionResponse
  35. */
  36. package filer_pb
  37. import proto "github.com/golang/protobuf/proto"
  38. import fmt "fmt"
  39. import math "math"
  40. import (
  41. context "golang.org/x/net/context"
  42. grpc "google.golang.org/grpc"
  43. )
  44. // Reference imports to suppress errors if they are not otherwise used.
  45. var _ = proto.Marshal
  46. var _ = fmt.Errorf
  47. var _ = math.Inf
  48. // This is a compile-time assertion to ensure that this generated file
  49. // is compatible with the proto package it is being compiled against.
  50. // A compilation error at this line likely means your copy of the
  51. // proto package needs to be updated.
  52. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
  53. type LookupDirectoryEntryRequest struct {
  54. Directory string `protobuf:"bytes,1,opt,name=directory" json:"directory,omitempty"`
  55. Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
  56. }
  57. func (m *LookupDirectoryEntryRequest) Reset() { *m = LookupDirectoryEntryRequest{} }
  58. func (m *LookupDirectoryEntryRequest) String() string { return proto.CompactTextString(m) }
  59. func (*LookupDirectoryEntryRequest) ProtoMessage() {}
  60. func (*LookupDirectoryEntryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
  61. func (m *LookupDirectoryEntryRequest) GetDirectory() string {
  62. if m != nil {
  63. return m.Directory
  64. }
  65. return ""
  66. }
  67. func (m *LookupDirectoryEntryRequest) GetName() string {
  68. if m != nil {
  69. return m.Name
  70. }
  71. return ""
  72. }
  73. type LookupDirectoryEntryResponse struct {
  74. Entry *Entry `protobuf:"bytes,1,opt,name=entry" json:"entry,omitempty"`
  75. }
  76. func (m *LookupDirectoryEntryResponse) Reset() { *m = LookupDirectoryEntryResponse{} }
  77. func (m *LookupDirectoryEntryResponse) String() string { return proto.CompactTextString(m) }
  78. func (*LookupDirectoryEntryResponse) ProtoMessage() {}
  79. func (*LookupDirectoryEntryResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
  80. func (m *LookupDirectoryEntryResponse) GetEntry() *Entry {
  81. if m != nil {
  82. return m.Entry
  83. }
  84. return nil
  85. }
  86. type ListEntriesRequest struct {
  87. Directory string `protobuf:"bytes,1,opt,name=directory" json:"directory,omitempty"`
  88. Prefix string `protobuf:"bytes,2,opt,name=prefix" json:"prefix,omitempty"`
  89. StartFromFileName string `protobuf:"bytes,3,opt,name=startFromFileName" json:"startFromFileName,omitempty"`
  90. InclusiveStartFrom bool `protobuf:"varint,4,opt,name=inclusiveStartFrom" json:"inclusiveStartFrom,omitempty"`
  91. Limit uint32 `protobuf:"varint,5,opt,name=limit" json:"limit,omitempty"`
  92. }
  93. func (m *ListEntriesRequest) Reset() { *m = ListEntriesRequest{} }
  94. func (m *ListEntriesRequest) String() string { return proto.CompactTextString(m) }
  95. func (*ListEntriesRequest) ProtoMessage() {}
  96. func (*ListEntriesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
  97. func (m *ListEntriesRequest) GetDirectory() string {
  98. if m != nil {
  99. return m.Directory
  100. }
  101. return ""
  102. }
  103. func (m *ListEntriesRequest) GetPrefix() string {
  104. if m != nil {
  105. return m.Prefix
  106. }
  107. return ""
  108. }
  109. func (m *ListEntriesRequest) GetStartFromFileName() string {
  110. if m != nil {
  111. return m.StartFromFileName
  112. }
  113. return ""
  114. }
  115. func (m *ListEntriesRequest) GetInclusiveStartFrom() bool {
  116. if m != nil {
  117. return m.InclusiveStartFrom
  118. }
  119. return false
  120. }
  121. func (m *ListEntriesRequest) GetLimit() uint32 {
  122. if m != nil {
  123. return m.Limit
  124. }
  125. return 0
  126. }
  127. type ListEntriesResponse struct {
  128. Entries []*Entry `protobuf:"bytes,1,rep,name=entries" json:"entries,omitempty"`
  129. }
  130. func (m *ListEntriesResponse) Reset() { *m = ListEntriesResponse{} }
  131. func (m *ListEntriesResponse) String() string { return proto.CompactTextString(m) }
  132. func (*ListEntriesResponse) ProtoMessage() {}
  133. func (*ListEntriesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
  134. func (m *ListEntriesResponse) GetEntries() []*Entry {
  135. if m != nil {
  136. return m.Entries
  137. }
  138. return nil
  139. }
  140. type Entry struct {
  141. Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
  142. IsDirectory bool `protobuf:"varint,2,opt,name=is_directory,json=isDirectory" json:"is_directory,omitempty"`
  143. Chunks []*FileChunk `protobuf:"bytes,3,rep,name=chunks" json:"chunks,omitempty"`
  144. Attributes *FuseAttributes `protobuf:"bytes,4,opt,name=attributes" json:"attributes,omitempty"`
  145. }
  146. func (m *Entry) Reset() { *m = Entry{} }
  147. func (m *Entry) String() string { return proto.CompactTextString(m) }
  148. func (*Entry) ProtoMessage() {}
  149. func (*Entry) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
  150. func (m *Entry) GetName() string {
  151. if m != nil {
  152. return m.Name
  153. }
  154. return ""
  155. }
  156. func (m *Entry) GetIsDirectory() bool {
  157. if m != nil {
  158. return m.IsDirectory
  159. }
  160. return false
  161. }
  162. func (m *Entry) GetChunks() []*FileChunk {
  163. if m != nil {
  164. return m.Chunks
  165. }
  166. return nil
  167. }
  168. func (m *Entry) GetAttributes() *FuseAttributes {
  169. if m != nil {
  170. return m.Attributes
  171. }
  172. return nil
  173. }
  174. type EventNotification struct {
  175. OldEntry *Entry `protobuf:"bytes,2,opt,name=old_entry,json=oldEntry" json:"old_entry,omitempty"`
  176. NewEntry *Entry `protobuf:"bytes,3,opt,name=new_entry,json=newEntry" json:"new_entry,omitempty"`
  177. }
  178. func (m *EventNotification) Reset() { *m = EventNotification{} }
  179. func (m *EventNotification) String() string { return proto.CompactTextString(m) }
  180. func (*EventNotification) ProtoMessage() {}
  181. func (*EventNotification) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
  182. func (m *EventNotification) GetOldEntry() *Entry {
  183. if m != nil {
  184. return m.OldEntry
  185. }
  186. return nil
  187. }
  188. func (m *EventNotification) GetNewEntry() *Entry {
  189. if m != nil {
  190. return m.NewEntry
  191. }
  192. return nil
  193. }
  194. type FileChunk struct {
  195. FileId string `protobuf:"bytes,1,opt,name=file_id,json=fileId" json:"file_id,omitempty"`
  196. Offset int64 `protobuf:"varint,2,opt,name=offset" json:"offset,omitempty"`
  197. Size uint64 `protobuf:"varint,3,opt,name=size" json:"size,omitempty"`
  198. Mtime int64 `protobuf:"varint,4,opt,name=mtime" json:"mtime,omitempty"`
  199. }
  200. func (m *FileChunk) Reset() { *m = FileChunk{} }
  201. func (m *FileChunk) String() string { return proto.CompactTextString(m) }
  202. func (*FileChunk) ProtoMessage() {}
  203. func (*FileChunk) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
  204. func (m *FileChunk) GetFileId() string {
  205. if m != nil {
  206. return m.FileId
  207. }
  208. return ""
  209. }
  210. func (m *FileChunk) GetOffset() int64 {
  211. if m != nil {
  212. return m.Offset
  213. }
  214. return 0
  215. }
  216. func (m *FileChunk) GetSize() uint64 {
  217. if m != nil {
  218. return m.Size
  219. }
  220. return 0
  221. }
  222. func (m *FileChunk) GetMtime() int64 {
  223. if m != nil {
  224. return m.Mtime
  225. }
  226. return 0
  227. }
  228. type FuseAttributes struct {
  229. FileSize uint64 `protobuf:"varint,1,opt,name=file_size,json=fileSize" json:"file_size,omitempty"`
  230. Mtime int64 `protobuf:"varint,2,opt,name=mtime" json:"mtime,omitempty"`
  231. FileMode uint32 `protobuf:"varint,3,opt,name=file_mode,json=fileMode" json:"file_mode,omitempty"`
  232. Uid uint32 `protobuf:"varint,4,opt,name=uid" json:"uid,omitempty"`
  233. Gid uint32 `protobuf:"varint,5,opt,name=gid" json:"gid,omitempty"`
  234. Crtime int64 `protobuf:"varint,6,opt,name=crtime" json:"crtime,omitempty"`
  235. Mime string `protobuf:"bytes,7,opt,name=mime" json:"mime,omitempty"`
  236. Replication string `protobuf:"bytes,8,opt,name=replication" json:"replication,omitempty"`
  237. Collection string `protobuf:"bytes,9,opt,name=collection" json:"collection,omitempty"`
  238. TtlSec int32 `protobuf:"varint,10,opt,name=ttl_sec,json=ttlSec" json:"ttl_sec,omitempty"`
  239. }
  240. func (m *FuseAttributes) Reset() { *m = FuseAttributes{} }
  241. func (m *FuseAttributes) String() string { return proto.CompactTextString(m) }
  242. func (*FuseAttributes) ProtoMessage() {}
  243. func (*FuseAttributes) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
  244. func (m *FuseAttributes) GetFileSize() uint64 {
  245. if m != nil {
  246. return m.FileSize
  247. }
  248. return 0
  249. }
  250. func (m *FuseAttributes) GetMtime() int64 {
  251. if m != nil {
  252. return m.Mtime
  253. }
  254. return 0
  255. }
  256. func (m *FuseAttributes) GetFileMode() uint32 {
  257. if m != nil {
  258. return m.FileMode
  259. }
  260. return 0
  261. }
  262. func (m *FuseAttributes) GetUid() uint32 {
  263. if m != nil {
  264. return m.Uid
  265. }
  266. return 0
  267. }
  268. func (m *FuseAttributes) GetGid() uint32 {
  269. if m != nil {
  270. return m.Gid
  271. }
  272. return 0
  273. }
  274. func (m *FuseAttributes) GetCrtime() int64 {
  275. if m != nil {
  276. return m.Crtime
  277. }
  278. return 0
  279. }
  280. func (m *FuseAttributes) GetMime() string {
  281. if m != nil {
  282. return m.Mime
  283. }
  284. return ""
  285. }
  286. func (m *FuseAttributes) GetReplication() string {
  287. if m != nil {
  288. return m.Replication
  289. }
  290. return ""
  291. }
  292. func (m *FuseAttributes) GetCollection() string {
  293. if m != nil {
  294. return m.Collection
  295. }
  296. return ""
  297. }
  298. func (m *FuseAttributes) GetTtlSec() int32 {
  299. if m != nil {
  300. return m.TtlSec
  301. }
  302. return 0
  303. }
  304. type GetEntryAttributesRequest struct {
  305. Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
  306. ParentDir string `protobuf:"bytes,2,opt,name=parent_dir,json=parentDir" json:"parent_dir,omitempty"`
  307. FileId string `protobuf:"bytes,3,opt,name=file_id,json=fileId" json:"file_id,omitempty"`
  308. }
  309. func (m *GetEntryAttributesRequest) Reset() { *m = GetEntryAttributesRequest{} }
  310. func (m *GetEntryAttributesRequest) String() string { return proto.CompactTextString(m) }
  311. func (*GetEntryAttributesRequest) ProtoMessage() {}
  312. func (*GetEntryAttributesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
  313. func (m *GetEntryAttributesRequest) GetName() string {
  314. if m != nil {
  315. return m.Name
  316. }
  317. return ""
  318. }
  319. func (m *GetEntryAttributesRequest) GetParentDir() string {
  320. if m != nil {
  321. return m.ParentDir
  322. }
  323. return ""
  324. }
  325. func (m *GetEntryAttributesRequest) GetFileId() string {
  326. if m != nil {
  327. return m.FileId
  328. }
  329. return ""
  330. }
  331. type GetEntryAttributesResponse struct {
  332. Attributes *FuseAttributes `protobuf:"bytes,1,opt,name=attributes" json:"attributes,omitempty"`
  333. Chunks []*FileChunk `protobuf:"bytes,2,rep,name=chunks" json:"chunks,omitempty"`
  334. }
  335. func (m *GetEntryAttributesResponse) Reset() { *m = GetEntryAttributesResponse{} }
  336. func (m *GetEntryAttributesResponse) String() string { return proto.CompactTextString(m) }
  337. func (*GetEntryAttributesResponse) ProtoMessage() {}
  338. func (*GetEntryAttributesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
  339. func (m *GetEntryAttributesResponse) GetAttributes() *FuseAttributes {
  340. if m != nil {
  341. return m.Attributes
  342. }
  343. return nil
  344. }
  345. func (m *GetEntryAttributesResponse) GetChunks() []*FileChunk {
  346. if m != nil {
  347. return m.Chunks
  348. }
  349. return nil
  350. }
  351. type GetFileContentRequest struct {
  352. FileId string `protobuf:"bytes,1,opt,name=file_id,json=fileId" json:"file_id,omitempty"`
  353. }
  354. func (m *GetFileContentRequest) Reset() { *m = GetFileContentRequest{} }
  355. func (m *GetFileContentRequest) String() string { return proto.CompactTextString(m) }
  356. func (*GetFileContentRequest) ProtoMessage() {}
  357. func (*GetFileContentRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
  358. func (m *GetFileContentRequest) GetFileId() string {
  359. if m != nil {
  360. return m.FileId
  361. }
  362. return ""
  363. }
  364. type GetFileContentResponse struct {
  365. Content []byte `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"`
  366. }
  367. func (m *GetFileContentResponse) Reset() { *m = GetFileContentResponse{} }
  368. func (m *GetFileContentResponse) String() string { return proto.CompactTextString(m) }
  369. func (*GetFileContentResponse) ProtoMessage() {}
  370. func (*GetFileContentResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
  371. func (m *GetFileContentResponse) GetContent() []byte {
  372. if m != nil {
  373. return m.Content
  374. }
  375. return nil
  376. }
  377. type CreateEntryRequest struct {
  378. Directory string `protobuf:"bytes,1,opt,name=directory" json:"directory,omitempty"`
  379. Entry *Entry `protobuf:"bytes,2,opt,name=entry" json:"entry,omitempty"`
  380. }
  381. func (m *CreateEntryRequest) Reset() { *m = CreateEntryRequest{} }
  382. func (m *CreateEntryRequest) String() string { return proto.CompactTextString(m) }
  383. func (*CreateEntryRequest) ProtoMessage() {}
  384. func (*CreateEntryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
  385. func (m *CreateEntryRequest) GetDirectory() string {
  386. if m != nil {
  387. return m.Directory
  388. }
  389. return ""
  390. }
  391. func (m *CreateEntryRequest) GetEntry() *Entry {
  392. if m != nil {
  393. return m.Entry
  394. }
  395. return nil
  396. }
  397. type CreateEntryResponse struct {
  398. }
  399. func (m *CreateEntryResponse) Reset() { *m = CreateEntryResponse{} }
  400. func (m *CreateEntryResponse) String() string { return proto.CompactTextString(m) }
  401. func (*CreateEntryResponse) ProtoMessage() {}
  402. func (*CreateEntryResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
  403. type UpdateEntryRequest struct {
  404. Directory string `protobuf:"bytes,1,opt,name=directory" json:"directory,omitempty"`
  405. Entry *Entry `protobuf:"bytes,2,opt,name=entry" json:"entry,omitempty"`
  406. }
  407. func (m *UpdateEntryRequest) Reset() { *m = UpdateEntryRequest{} }
  408. func (m *UpdateEntryRequest) String() string { return proto.CompactTextString(m) }
  409. func (*UpdateEntryRequest) ProtoMessage() {}
  410. func (*UpdateEntryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
  411. func (m *UpdateEntryRequest) GetDirectory() string {
  412. if m != nil {
  413. return m.Directory
  414. }
  415. return ""
  416. }
  417. func (m *UpdateEntryRequest) GetEntry() *Entry {
  418. if m != nil {
  419. return m.Entry
  420. }
  421. return nil
  422. }
  423. type UpdateEntryResponse struct {
  424. }
  425. func (m *UpdateEntryResponse) Reset() { *m = UpdateEntryResponse{} }
  426. func (m *UpdateEntryResponse) String() string { return proto.CompactTextString(m) }
  427. func (*UpdateEntryResponse) ProtoMessage() {}
  428. func (*UpdateEntryResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
  429. type DeleteEntryRequest struct {
  430. Directory string `protobuf:"bytes,1,opt,name=directory" json:"directory,omitempty"`
  431. Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
  432. IsDirectory bool `protobuf:"varint,3,opt,name=is_directory,json=isDirectory" json:"is_directory,omitempty"`
  433. IsDeleteData bool `protobuf:"varint,4,opt,name=is_delete_data,json=isDeleteData" json:"is_delete_data,omitempty"`
  434. IsRecursive bool `protobuf:"varint,5,opt,name=is_recursive,json=isRecursive" json:"is_recursive,omitempty"`
  435. }
  436. func (m *DeleteEntryRequest) Reset() { *m = DeleteEntryRequest{} }
  437. func (m *DeleteEntryRequest) String() string { return proto.CompactTextString(m) }
  438. func (*DeleteEntryRequest) ProtoMessage() {}
  439. func (*DeleteEntryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
  440. func (m *DeleteEntryRequest) GetDirectory() string {
  441. if m != nil {
  442. return m.Directory
  443. }
  444. return ""
  445. }
  446. func (m *DeleteEntryRequest) GetName() string {
  447. if m != nil {
  448. return m.Name
  449. }
  450. return ""
  451. }
  452. func (m *DeleteEntryRequest) GetIsDirectory() bool {
  453. if m != nil {
  454. return m.IsDirectory
  455. }
  456. return false
  457. }
  458. func (m *DeleteEntryRequest) GetIsDeleteData() bool {
  459. if m != nil {
  460. return m.IsDeleteData
  461. }
  462. return false
  463. }
  464. func (m *DeleteEntryRequest) GetIsRecursive() bool {
  465. if m != nil {
  466. return m.IsRecursive
  467. }
  468. return false
  469. }
  470. type DeleteEntryResponse struct {
  471. }
  472. func (m *DeleteEntryResponse) Reset() { *m = DeleteEntryResponse{} }
  473. func (m *DeleteEntryResponse) String() string { return proto.CompactTextString(m) }
  474. func (*DeleteEntryResponse) ProtoMessage() {}
  475. func (*DeleteEntryResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
  476. type AssignVolumeRequest struct {
  477. Count int32 `protobuf:"varint,1,opt,name=count" json:"count,omitempty"`
  478. Collection string `protobuf:"bytes,2,opt,name=collection" json:"collection,omitempty"`
  479. Replication string `protobuf:"bytes,3,opt,name=replication" json:"replication,omitempty"`
  480. TtlSec int32 `protobuf:"varint,4,opt,name=ttl_sec,json=ttlSec" json:"ttl_sec,omitempty"`
  481. DataCenter string `protobuf:"bytes,5,opt,name=data_center,json=dataCenter" json:"data_center,omitempty"`
  482. }
  483. func (m *AssignVolumeRequest) Reset() { *m = AssignVolumeRequest{} }
  484. func (m *AssignVolumeRequest) String() string { return proto.CompactTextString(m) }
  485. func (*AssignVolumeRequest) ProtoMessage() {}
  486. func (*AssignVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }
  487. func (m *AssignVolumeRequest) GetCount() int32 {
  488. if m != nil {
  489. return m.Count
  490. }
  491. return 0
  492. }
  493. func (m *AssignVolumeRequest) GetCollection() string {
  494. if m != nil {
  495. return m.Collection
  496. }
  497. return ""
  498. }
  499. func (m *AssignVolumeRequest) GetReplication() string {
  500. if m != nil {
  501. return m.Replication
  502. }
  503. return ""
  504. }
  505. func (m *AssignVolumeRequest) GetTtlSec() int32 {
  506. if m != nil {
  507. return m.TtlSec
  508. }
  509. return 0
  510. }
  511. func (m *AssignVolumeRequest) GetDataCenter() string {
  512. if m != nil {
  513. return m.DataCenter
  514. }
  515. return ""
  516. }
  517. type AssignVolumeResponse struct {
  518. FileId string `protobuf:"bytes,1,opt,name=file_id,json=fileId" json:"file_id,omitempty"`
  519. Url string `protobuf:"bytes,2,opt,name=url" json:"url,omitempty"`
  520. PublicUrl string `protobuf:"bytes,3,opt,name=public_url,json=publicUrl" json:"public_url,omitempty"`
  521. Count int32 `protobuf:"varint,4,opt,name=count" json:"count,omitempty"`
  522. }
  523. func (m *AssignVolumeResponse) Reset() { *m = AssignVolumeResponse{} }
  524. func (m *AssignVolumeResponse) String() string { return proto.CompactTextString(m) }
  525. func (*AssignVolumeResponse) ProtoMessage() {}
  526. func (*AssignVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
  527. func (m *AssignVolumeResponse) GetFileId() string {
  528. if m != nil {
  529. return m.FileId
  530. }
  531. return ""
  532. }
  533. func (m *AssignVolumeResponse) GetUrl() string {
  534. if m != nil {
  535. return m.Url
  536. }
  537. return ""
  538. }
  539. func (m *AssignVolumeResponse) GetPublicUrl() string {
  540. if m != nil {
  541. return m.PublicUrl
  542. }
  543. return ""
  544. }
  545. func (m *AssignVolumeResponse) GetCount() int32 {
  546. if m != nil {
  547. return m.Count
  548. }
  549. return 0
  550. }
  551. type LookupVolumeRequest struct {
  552. VolumeIds []string `protobuf:"bytes,1,rep,name=volume_ids,json=volumeIds" json:"volume_ids,omitempty"`
  553. }
  554. func (m *LookupVolumeRequest) Reset() { *m = LookupVolumeRequest{} }
  555. func (m *LookupVolumeRequest) String() string { return proto.CompactTextString(m) }
  556. func (*LookupVolumeRequest) ProtoMessage() {}
  557. func (*LookupVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }
  558. func (m *LookupVolumeRequest) GetVolumeIds() []string {
  559. if m != nil {
  560. return m.VolumeIds
  561. }
  562. return nil
  563. }
  564. type Locations struct {
  565. Locations []*Location `protobuf:"bytes,1,rep,name=locations" json:"locations,omitempty"`
  566. }
  567. func (m *Locations) Reset() { *m = Locations{} }
  568. func (m *Locations) String() string { return proto.CompactTextString(m) }
  569. func (*Locations) ProtoMessage() {}
  570. func (*Locations) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }
  571. func (m *Locations) GetLocations() []*Location {
  572. if m != nil {
  573. return m.Locations
  574. }
  575. return nil
  576. }
  577. type Location struct {
  578. Url string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
  579. PublicUrl string `protobuf:"bytes,2,opt,name=public_url,json=publicUrl" json:"public_url,omitempty"`
  580. }
  581. func (m *Location) Reset() { *m = Location{} }
  582. func (m *Location) String() string { return proto.CompactTextString(m) }
  583. func (*Location) ProtoMessage() {}
  584. func (*Location) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }
  585. func (m *Location) GetUrl() string {
  586. if m != nil {
  587. return m.Url
  588. }
  589. return ""
  590. }
  591. func (m *Location) GetPublicUrl() string {
  592. if m != nil {
  593. return m.PublicUrl
  594. }
  595. return ""
  596. }
  597. type LookupVolumeResponse struct {
  598. LocationsMap map[string]*Locations `protobuf:"bytes,1,rep,name=locations_map,json=locationsMap" json:"locations_map,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
  599. }
  600. func (m *LookupVolumeResponse) Reset() { *m = LookupVolumeResponse{} }
  601. func (m *LookupVolumeResponse) String() string { return proto.CompactTextString(m) }
  602. func (*LookupVolumeResponse) ProtoMessage() {}
  603. func (*LookupVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }
  604. func (m *LookupVolumeResponse) GetLocationsMap() map[string]*Locations {
  605. if m != nil {
  606. return m.LocationsMap
  607. }
  608. return nil
  609. }
  610. type DeleteCollectionRequest struct {
  611. Collection string `protobuf:"bytes,1,opt,name=collection" json:"collection,omitempty"`
  612. }
  613. func (m *DeleteCollectionRequest) Reset() { *m = DeleteCollectionRequest{} }
  614. func (m *DeleteCollectionRequest) String() string { return proto.CompactTextString(m) }
  615. func (*DeleteCollectionRequest) ProtoMessage() {}
  616. func (*DeleteCollectionRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }
  617. func (m *DeleteCollectionRequest) GetCollection() string {
  618. if m != nil {
  619. return m.Collection
  620. }
  621. return ""
  622. }
  623. type DeleteCollectionResponse struct {
  624. }
  625. func (m *DeleteCollectionResponse) Reset() { *m = DeleteCollectionResponse{} }
  626. func (m *DeleteCollectionResponse) String() string { return proto.CompactTextString(m) }
  627. func (*DeleteCollectionResponse) ProtoMessage() {}
  628. func (*DeleteCollectionResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }
  629. func init() {
  630. proto.RegisterType((*LookupDirectoryEntryRequest)(nil), "filer_pb.LookupDirectoryEntryRequest")
  631. proto.RegisterType((*LookupDirectoryEntryResponse)(nil), "filer_pb.LookupDirectoryEntryResponse")
  632. proto.RegisterType((*ListEntriesRequest)(nil), "filer_pb.ListEntriesRequest")
  633. proto.RegisterType((*ListEntriesResponse)(nil), "filer_pb.ListEntriesResponse")
  634. proto.RegisterType((*Entry)(nil), "filer_pb.Entry")
  635. proto.RegisterType((*EventNotification)(nil), "filer_pb.EventNotification")
  636. proto.RegisterType((*FileChunk)(nil), "filer_pb.FileChunk")
  637. proto.RegisterType((*FuseAttributes)(nil), "filer_pb.FuseAttributes")
  638. proto.RegisterType((*GetEntryAttributesRequest)(nil), "filer_pb.GetEntryAttributesRequest")
  639. proto.RegisterType((*GetEntryAttributesResponse)(nil), "filer_pb.GetEntryAttributesResponse")
  640. proto.RegisterType((*GetFileContentRequest)(nil), "filer_pb.GetFileContentRequest")
  641. proto.RegisterType((*GetFileContentResponse)(nil), "filer_pb.GetFileContentResponse")
  642. proto.RegisterType((*CreateEntryRequest)(nil), "filer_pb.CreateEntryRequest")
  643. proto.RegisterType((*CreateEntryResponse)(nil), "filer_pb.CreateEntryResponse")
  644. proto.RegisterType((*UpdateEntryRequest)(nil), "filer_pb.UpdateEntryRequest")
  645. proto.RegisterType((*UpdateEntryResponse)(nil), "filer_pb.UpdateEntryResponse")
  646. proto.RegisterType((*DeleteEntryRequest)(nil), "filer_pb.DeleteEntryRequest")
  647. proto.RegisterType((*DeleteEntryResponse)(nil), "filer_pb.DeleteEntryResponse")
  648. proto.RegisterType((*AssignVolumeRequest)(nil), "filer_pb.AssignVolumeRequest")
  649. proto.RegisterType((*AssignVolumeResponse)(nil), "filer_pb.AssignVolumeResponse")
  650. proto.RegisterType((*LookupVolumeRequest)(nil), "filer_pb.LookupVolumeRequest")
  651. proto.RegisterType((*Locations)(nil), "filer_pb.Locations")
  652. proto.RegisterType((*Location)(nil), "filer_pb.Location")
  653. proto.RegisterType((*LookupVolumeResponse)(nil), "filer_pb.LookupVolumeResponse")
  654. proto.RegisterType((*DeleteCollectionRequest)(nil), "filer_pb.DeleteCollectionRequest")
  655. proto.RegisterType((*DeleteCollectionResponse)(nil), "filer_pb.DeleteCollectionResponse")
  656. }
  657. // Reference imports to suppress errors if they are not otherwise used.
  658. var _ context.Context
  659. var _ grpc.ClientConn
  660. // This is a compile-time assertion to ensure that this generated file
  661. // is compatible with the grpc package it is being compiled against.
  662. const _ = grpc.SupportPackageIsVersion4
  663. // Client API for SeaweedFiler service
  664. type SeaweedFilerClient interface {
  665. LookupDirectoryEntry(ctx context.Context, in *LookupDirectoryEntryRequest, opts ...grpc.CallOption) (*LookupDirectoryEntryResponse, error)
  666. ListEntries(ctx context.Context, in *ListEntriesRequest, opts ...grpc.CallOption) (*ListEntriesResponse, error)
  667. GetEntryAttributes(ctx context.Context, in *GetEntryAttributesRequest, opts ...grpc.CallOption) (*GetEntryAttributesResponse, error)
  668. CreateEntry(ctx context.Context, in *CreateEntryRequest, opts ...grpc.CallOption) (*CreateEntryResponse, error)
  669. UpdateEntry(ctx context.Context, in *UpdateEntryRequest, opts ...grpc.CallOption) (*UpdateEntryResponse, error)
  670. DeleteEntry(ctx context.Context, in *DeleteEntryRequest, opts ...grpc.CallOption) (*DeleteEntryResponse, error)
  671. AssignVolume(ctx context.Context, in *AssignVolumeRequest, opts ...grpc.CallOption) (*AssignVolumeResponse, error)
  672. LookupVolume(ctx context.Context, in *LookupVolumeRequest, opts ...grpc.CallOption) (*LookupVolumeResponse, error)
  673. DeleteCollection(ctx context.Context, in *DeleteCollectionRequest, opts ...grpc.CallOption) (*DeleteCollectionResponse, error)
  674. }
  675. type seaweedFilerClient struct {
  676. cc *grpc.ClientConn
  677. }
  678. func NewSeaweedFilerClient(cc *grpc.ClientConn) SeaweedFilerClient {
  679. return &seaweedFilerClient{cc}
  680. }
  681. func (c *seaweedFilerClient) LookupDirectoryEntry(ctx context.Context, in *LookupDirectoryEntryRequest, opts ...grpc.CallOption) (*LookupDirectoryEntryResponse, error) {
  682. out := new(LookupDirectoryEntryResponse)
  683. err := grpc.Invoke(ctx, "/filer_pb.SeaweedFiler/LookupDirectoryEntry", in, out, c.cc, opts...)
  684. if err != nil {
  685. return nil, err
  686. }
  687. return out, nil
  688. }
  689. func (c *seaweedFilerClient) ListEntries(ctx context.Context, in *ListEntriesRequest, opts ...grpc.CallOption) (*ListEntriesResponse, error) {
  690. out := new(ListEntriesResponse)
  691. err := grpc.Invoke(ctx, "/filer_pb.SeaweedFiler/ListEntries", in, out, c.cc, opts...)
  692. if err != nil {
  693. return nil, err
  694. }
  695. return out, nil
  696. }
  697. func (c *seaweedFilerClient) GetEntryAttributes(ctx context.Context, in *GetEntryAttributesRequest, opts ...grpc.CallOption) (*GetEntryAttributesResponse, error) {
  698. out := new(GetEntryAttributesResponse)
  699. err := grpc.Invoke(ctx, "/filer_pb.SeaweedFiler/GetEntryAttributes", in, out, c.cc, opts...)
  700. if err != nil {
  701. return nil, err
  702. }
  703. return out, nil
  704. }
  705. func (c *seaweedFilerClient) CreateEntry(ctx context.Context, in *CreateEntryRequest, opts ...grpc.CallOption) (*CreateEntryResponse, error) {
  706. out := new(CreateEntryResponse)
  707. err := grpc.Invoke(ctx, "/filer_pb.SeaweedFiler/CreateEntry", in, out, c.cc, opts...)
  708. if err != nil {
  709. return nil, err
  710. }
  711. return out, nil
  712. }
  713. func (c *seaweedFilerClient) UpdateEntry(ctx context.Context, in *UpdateEntryRequest, opts ...grpc.CallOption) (*UpdateEntryResponse, error) {
  714. out := new(UpdateEntryResponse)
  715. err := grpc.Invoke(ctx, "/filer_pb.SeaweedFiler/UpdateEntry", in, out, c.cc, opts...)
  716. if err != nil {
  717. return nil, err
  718. }
  719. return out, nil
  720. }
  721. func (c *seaweedFilerClient) DeleteEntry(ctx context.Context, in *DeleteEntryRequest, opts ...grpc.CallOption) (*DeleteEntryResponse, error) {
  722. out := new(DeleteEntryResponse)
  723. err := grpc.Invoke(ctx, "/filer_pb.SeaweedFiler/DeleteEntry", in, out, c.cc, opts...)
  724. if err != nil {
  725. return nil, err
  726. }
  727. return out, nil
  728. }
  729. func (c *seaweedFilerClient) AssignVolume(ctx context.Context, in *AssignVolumeRequest, opts ...grpc.CallOption) (*AssignVolumeResponse, error) {
  730. out := new(AssignVolumeResponse)
  731. err := grpc.Invoke(ctx, "/filer_pb.SeaweedFiler/AssignVolume", in, out, c.cc, opts...)
  732. if err != nil {
  733. return nil, err
  734. }
  735. return out, nil
  736. }
  737. func (c *seaweedFilerClient) LookupVolume(ctx context.Context, in *LookupVolumeRequest, opts ...grpc.CallOption) (*LookupVolumeResponse, error) {
  738. out := new(LookupVolumeResponse)
  739. err := grpc.Invoke(ctx, "/filer_pb.SeaweedFiler/LookupVolume", in, out, c.cc, opts...)
  740. if err != nil {
  741. return nil, err
  742. }
  743. return out, nil
  744. }
  745. func (c *seaweedFilerClient) DeleteCollection(ctx context.Context, in *DeleteCollectionRequest, opts ...grpc.CallOption) (*DeleteCollectionResponse, error) {
  746. out := new(DeleteCollectionResponse)
  747. err := grpc.Invoke(ctx, "/filer_pb.SeaweedFiler/DeleteCollection", in, out, c.cc, opts...)
  748. if err != nil {
  749. return nil, err
  750. }
  751. return out, nil
  752. }
  753. // Server API for SeaweedFiler service
  754. type SeaweedFilerServer interface {
  755. LookupDirectoryEntry(context.Context, *LookupDirectoryEntryRequest) (*LookupDirectoryEntryResponse, error)
  756. ListEntries(context.Context, *ListEntriesRequest) (*ListEntriesResponse, error)
  757. GetEntryAttributes(context.Context, *GetEntryAttributesRequest) (*GetEntryAttributesResponse, error)
  758. CreateEntry(context.Context, *CreateEntryRequest) (*CreateEntryResponse, error)
  759. UpdateEntry(context.Context, *UpdateEntryRequest) (*UpdateEntryResponse, error)
  760. DeleteEntry(context.Context, *DeleteEntryRequest) (*DeleteEntryResponse, error)
  761. AssignVolume(context.Context, *AssignVolumeRequest) (*AssignVolumeResponse, error)
  762. LookupVolume(context.Context, *LookupVolumeRequest) (*LookupVolumeResponse, error)
  763. DeleteCollection(context.Context, *DeleteCollectionRequest) (*DeleteCollectionResponse, error)
  764. }
  765. func RegisterSeaweedFilerServer(s *grpc.Server, srv SeaweedFilerServer) {
  766. s.RegisterService(&_SeaweedFiler_serviceDesc, srv)
  767. }
  768. func _SeaweedFiler_LookupDirectoryEntry_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  769. in := new(LookupDirectoryEntryRequest)
  770. if err := dec(in); err != nil {
  771. return nil, err
  772. }
  773. if interceptor == nil {
  774. return srv.(SeaweedFilerServer).LookupDirectoryEntry(ctx, in)
  775. }
  776. info := &grpc.UnaryServerInfo{
  777. Server: srv,
  778. FullMethod: "/filer_pb.SeaweedFiler/LookupDirectoryEntry",
  779. }
  780. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  781. return srv.(SeaweedFilerServer).LookupDirectoryEntry(ctx, req.(*LookupDirectoryEntryRequest))
  782. }
  783. return interceptor(ctx, in, info, handler)
  784. }
  785. func _SeaweedFiler_ListEntries_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  786. in := new(ListEntriesRequest)
  787. if err := dec(in); err != nil {
  788. return nil, err
  789. }
  790. if interceptor == nil {
  791. return srv.(SeaweedFilerServer).ListEntries(ctx, in)
  792. }
  793. info := &grpc.UnaryServerInfo{
  794. Server: srv,
  795. FullMethod: "/filer_pb.SeaweedFiler/ListEntries",
  796. }
  797. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  798. return srv.(SeaweedFilerServer).ListEntries(ctx, req.(*ListEntriesRequest))
  799. }
  800. return interceptor(ctx, in, info, handler)
  801. }
  802. func _SeaweedFiler_GetEntryAttributes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  803. in := new(GetEntryAttributesRequest)
  804. if err := dec(in); err != nil {
  805. return nil, err
  806. }
  807. if interceptor == nil {
  808. return srv.(SeaweedFilerServer).GetEntryAttributes(ctx, in)
  809. }
  810. info := &grpc.UnaryServerInfo{
  811. Server: srv,
  812. FullMethod: "/filer_pb.SeaweedFiler/GetEntryAttributes",
  813. }
  814. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  815. return srv.(SeaweedFilerServer).GetEntryAttributes(ctx, req.(*GetEntryAttributesRequest))
  816. }
  817. return interceptor(ctx, in, info, handler)
  818. }
  819. func _SeaweedFiler_CreateEntry_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  820. in := new(CreateEntryRequest)
  821. if err := dec(in); err != nil {
  822. return nil, err
  823. }
  824. if interceptor == nil {
  825. return srv.(SeaweedFilerServer).CreateEntry(ctx, in)
  826. }
  827. info := &grpc.UnaryServerInfo{
  828. Server: srv,
  829. FullMethod: "/filer_pb.SeaweedFiler/CreateEntry",
  830. }
  831. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  832. return srv.(SeaweedFilerServer).CreateEntry(ctx, req.(*CreateEntryRequest))
  833. }
  834. return interceptor(ctx, in, info, handler)
  835. }
  836. func _SeaweedFiler_UpdateEntry_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  837. in := new(UpdateEntryRequest)
  838. if err := dec(in); err != nil {
  839. return nil, err
  840. }
  841. if interceptor == nil {
  842. return srv.(SeaweedFilerServer).UpdateEntry(ctx, in)
  843. }
  844. info := &grpc.UnaryServerInfo{
  845. Server: srv,
  846. FullMethod: "/filer_pb.SeaweedFiler/UpdateEntry",
  847. }
  848. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  849. return srv.(SeaweedFilerServer).UpdateEntry(ctx, req.(*UpdateEntryRequest))
  850. }
  851. return interceptor(ctx, in, info, handler)
  852. }
  853. func _SeaweedFiler_DeleteEntry_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  854. in := new(DeleteEntryRequest)
  855. if err := dec(in); err != nil {
  856. return nil, err
  857. }
  858. if interceptor == nil {
  859. return srv.(SeaweedFilerServer).DeleteEntry(ctx, in)
  860. }
  861. info := &grpc.UnaryServerInfo{
  862. Server: srv,
  863. FullMethod: "/filer_pb.SeaweedFiler/DeleteEntry",
  864. }
  865. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  866. return srv.(SeaweedFilerServer).DeleteEntry(ctx, req.(*DeleteEntryRequest))
  867. }
  868. return interceptor(ctx, in, info, handler)
  869. }
  870. func _SeaweedFiler_AssignVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  871. in := new(AssignVolumeRequest)
  872. if err := dec(in); err != nil {
  873. return nil, err
  874. }
  875. if interceptor == nil {
  876. return srv.(SeaweedFilerServer).AssignVolume(ctx, in)
  877. }
  878. info := &grpc.UnaryServerInfo{
  879. Server: srv,
  880. FullMethod: "/filer_pb.SeaweedFiler/AssignVolume",
  881. }
  882. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  883. return srv.(SeaweedFilerServer).AssignVolume(ctx, req.(*AssignVolumeRequest))
  884. }
  885. return interceptor(ctx, in, info, handler)
  886. }
  887. func _SeaweedFiler_LookupVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  888. in := new(LookupVolumeRequest)
  889. if err := dec(in); err != nil {
  890. return nil, err
  891. }
  892. if interceptor == nil {
  893. return srv.(SeaweedFilerServer).LookupVolume(ctx, in)
  894. }
  895. info := &grpc.UnaryServerInfo{
  896. Server: srv,
  897. FullMethod: "/filer_pb.SeaweedFiler/LookupVolume",
  898. }
  899. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  900. return srv.(SeaweedFilerServer).LookupVolume(ctx, req.(*LookupVolumeRequest))
  901. }
  902. return interceptor(ctx, in, info, handler)
  903. }
  904. func _SeaweedFiler_DeleteCollection_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  905. in := new(DeleteCollectionRequest)
  906. if err := dec(in); err != nil {
  907. return nil, err
  908. }
  909. if interceptor == nil {
  910. return srv.(SeaweedFilerServer).DeleteCollection(ctx, in)
  911. }
  912. info := &grpc.UnaryServerInfo{
  913. Server: srv,
  914. FullMethod: "/filer_pb.SeaweedFiler/DeleteCollection",
  915. }
  916. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  917. return srv.(SeaweedFilerServer).DeleteCollection(ctx, req.(*DeleteCollectionRequest))
  918. }
  919. return interceptor(ctx, in, info, handler)
  920. }
  921. var _SeaweedFiler_serviceDesc = grpc.ServiceDesc{
  922. ServiceName: "filer_pb.SeaweedFiler",
  923. HandlerType: (*SeaweedFilerServer)(nil),
  924. Methods: []grpc.MethodDesc{
  925. {
  926. MethodName: "LookupDirectoryEntry",
  927. Handler: _SeaweedFiler_LookupDirectoryEntry_Handler,
  928. },
  929. {
  930. MethodName: "ListEntries",
  931. Handler: _SeaweedFiler_ListEntries_Handler,
  932. },
  933. {
  934. MethodName: "GetEntryAttributes",
  935. Handler: _SeaweedFiler_GetEntryAttributes_Handler,
  936. },
  937. {
  938. MethodName: "CreateEntry",
  939. Handler: _SeaweedFiler_CreateEntry_Handler,
  940. },
  941. {
  942. MethodName: "UpdateEntry",
  943. Handler: _SeaweedFiler_UpdateEntry_Handler,
  944. },
  945. {
  946. MethodName: "DeleteEntry",
  947. Handler: _SeaweedFiler_DeleteEntry_Handler,
  948. },
  949. {
  950. MethodName: "AssignVolume",
  951. Handler: _SeaweedFiler_AssignVolume_Handler,
  952. },
  953. {
  954. MethodName: "LookupVolume",
  955. Handler: _SeaweedFiler_LookupVolume_Handler,
  956. },
  957. {
  958. MethodName: "DeleteCollection",
  959. Handler: _SeaweedFiler_DeleteCollection_Handler,
  960. },
  961. },
  962. Streams: []grpc.StreamDesc{},
  963. Metadata: "filer.proto",
  964. }
  965. func init() { proto.RegisterFile("filer.proto", fileDescriptor0) }
  966. var fileDescriptor0 = []byte{
  967. // 1152 bytes of a gzipped FileDescriptorProto
  968. 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xb4, 0x57, 0xcd, 0x6e, 0xdb, 0x46,
  969. 0x10, 0x36, 0x25, 0x4b, 0x36, 0x47, 0x72, 0x1a, 0xaf, 0x9c, 0x84, 0x55, 0xec, 0x54, 0xd9, 0x26,
  970. 0x85, 0x83, 0x1a, 0x86, 0xe1, 0xf6, 0x90, 0xb6, 0x28, 0xd0, 0xc0, 0x76, 0x82, 0x00, 0x4e, 0x02,
  971. 0xd0, 0x75, 0x81, 0xa2, 0x07, 0x81, 0x26, 0x47, 0xee, 0xc2, 0x14, 0xa9, 0x72, 0x97, 0x76, 0xdd,
  972. 0x6b, 0x8f, 0x3d, 0xf5, 0x21, 0x8a, 0xde, 0xfb, 0x00, 0xbd, 0xf4, 0xc5, 0x8a, 0xfd, 0xa1, 0xb4,
  973. 0x14, 0x29, 0x27, 0x39, 0xe4, 0xb6, 0x3b, 0x33, 0x3b, 0x33, 0xdf, 0xec, 0xcc, 0xb7, 0x24, 0x74,
  974. 0x46, 0x2c, 0xc6, 0x6c, 0x77, 0x92, 0xa5, 0x22, 0x25, 0xab, 0x6a, 0x33, 0x9c, 0x9c, 0xd1, 0x37,
  975. 0x70, 0xff, 0x38, 0x4d, 0x2f, 0xf2, 0xc9, 0x21, 0xcb, 0x30, 0x14, 0x69, 0x76, 0x7d, 0x94, 0x88,
  976. 0xec, 0xda, 0xc7, 0x5f, 0x72, 0xe4, 0x82, 0x6c, 0x82, 0x1b, 0x15, 0x0a, 0xcf, 0x19, 0x38, 0xdb,
  977. 0xae, 0x3f, 0x13, 0x10, 0x02, 0xcb, 0x49, 0x30, 0x46, 0xaf, 0xa1, 0x14, 0x6a, 0x4d, 0x8f, 0x60,
  978. 0xb3, 0xde, 0x21, 0x9f, 0xa4, 0x09, 0x47, 0xf2, 0x18, 0x5a, 0x28, 0x05, 0xca, 0x5b, 0x67, 0xff,
  979. 0xa3, 0xdd, 0x22, 0x95, 0x5d, 0x6d, 0xa7, 0xb5, 0xf4, 0x5f, 0x07, 0xc8, 0x31, 0xe3, 0x42, 0x0a,
  980. 0x19, 0xf2, 0x77, 0xcb, 0xe7, 0x2e, 0xb4, 0x27, 0x19, 0x8e, 0xd8, 0xaf, 0x26, 0x23, 0xb3, 0x23,
  981. 0x3b, 0xb0, 0xce, 0x45, 0x90, 0x89, 0xe7, 0x59, 0x3a, 0x7e, 0xce, 0x62, 0x7c, 0x2d, 0x93, 0x6e,
  982. 0x2a, 0x93, 0xaa, 0x82, 0xec, 0x02, 0x61, 0x49, 0x18, 0xe7, 0x9c, 0x5d, 0xe2, 0x49, 0xa1, 0xf5,
  983. 0x96, 0x07, 0xce, 0xf6, 0xaa, 0x5f, 0xa3, 0x21, 0x1b, 0xd0, 0x8a, 0xd9, 0x98, 0x09, 0xaf, 0x35,
  984. 0x70, 0xb6, 0xd7, 0x7c, 0xbd, 0xa1, 0xdf, 0x41, 0xaf, 0x94, 0xbf, 0x81, 0xff, 0x04, 0x56, 0x50,
  985. 0x8b, 0x3c, 0x67, 0xd0, 0xac, 0x2b, 0x40, 0xa1, 0xa7, 0x7f, 0x39, 0xd0, 0x52, 0xa2, 0x69, 0x9d,
  986. 0x9d, 0x59, 0x9d, 0xc9, 0x43, 0xe8, 0x32, 0x3e, 0x9c, 0x15, 0xa3, 0xa1, 0xf2, 0xeb, 0x30, 0x3e,
  987. 0xad, 0x3b, 0xf9, 0x1c, 0xda, 0xe1, 0xcf, 0x79, 0x72, 0xc1, 0xbd, 0xa6, 0x0a, 0xd5, 0x9b, 0x85,
  988. 0x92, 0x60, 0x0f, 0xa4, 0xce, 0x37, 0x26, 0xe4, 0x29, 0x40, 0x20, 0x44, 0xc6, 0xce, 0x72, 0x81,
  989. 0x5c, 0xa1, 0xed, 0xec, 0x7b, 0xd6, 0x81, 0x9c, 0xe3, 0xb3, 0xa9, 0xde, 0xb7, 0x6c, 0x69, 0x0a,
  990. 0xeb, 0x47, 0x97, 0x98, 0x88, 0xd7, 0xa9, 0x60, 0x23, 0x16, 0x06, 0x82, 0xa5, 0x09, 0xd9, 0x01,
  991. 0x37, 0x8d, 0xa3, 0xa1, 0xbe, 0xea, 0x46, 0xfd, 0x55, 0xaf, 0xa6, 0x71, 0xa4, 0x01, 0xee, 0x80,
  992. 0x9b, 0xe0, 0x95, 0xb1, 0x6e, 0x2e, 0xb0, 0x4e, 0xf0, 0x4a, 0xad, 0xe8, 0x08, 0xdc, 0x69, 0xfe,
  993. 0xe4, 0x1e, 0xac, 0x48, 0xc3, 0x21, 0x8b, 0x4c, 0x79, 0xda, 0x72, 0xfb, 0x32, 0x92, 0xcd, 0x90,
  994. 0x8e, 0x46, 0x1c, 0x85, 0x0a, 0xdf, 0xf4, 0xcd, 0x4e, 0x16, 0x93, 0xb3, 0xdf, 0xf4, 0xfd, 0x2f,
  995. 0xfb, 0x6a, 0x2d, 0xaf, 0x70, 0x2c, 0xd8, 0x18, 0x15, 0xee, 0xa6, 0xaf, 0x37, 0xf4, 0x8f, 0x06,
  996. 0xdc, 0x2a, 0xe3, 0x26, 0xf7, 0xc1, 0x55, 0xd1, 0x94, 0x07, 0x47, 0x79, 0x50, 0xb3, 0x74, 0x52,
  997. 0xf2, 0xd2, 0xb0, 0xbc, 0x4c, 0x8f, 0x8c, 0xd3, 0x48, 0x07, 0x5d, 0xd3, 0x47, 0x5e, 0xa5, 0x11,
  998. 0x92, 0xdb, 0xd0, 0xcc, 0x59, 0xa4, 0xc2, 0xae, 0xf9, 0x72, 0x29, 0x25, 0xe7, 0x2c, 0x32, 0xbd,
  999. 0x24, 0x97, 0x12, 0x48, 0x98, 0x29, 0xbf, 0x6d, 0x0d, 0x44, 0xef, 0x24, 0x90, 0xb1, 0x94, 0xae,
  1000. 0xe8, 0xae, 0x90, 0x6b, 0x32, 0x80, 0x4e, 0x86, 0x93, 0xd8, 0xdc, 0x82, 0xb7, 0xaa, 0x54, 0xb6,
  1001. 0x88, 0x3c, 0x00, 0x08, 0xd3, 0x38, 0xc6, 0x50, 0x19, 0xb8, 0xca, 0xc0, 0x92, 0xc8, 0x7a, 0x0a,
  1002. 0x11, 0x0f, 0x39, 0x86, 0x1e, 0x0c, 0x9c, 0xed, 0x96, 0xdf, 0x16, 0x22, 0x3e, 0xc1, 0x90, 0x9e,
  1003. 0xc3, 0xc7, 0x2f, 0x50, 0xf5, 0xf3, 0xb5, 0xd5, 0x08, 0x66, 0x2e, 0xeb, 0x3a, 0x74, 0x0b, 0x60,
  1004. 0x12, 0x64, 0x98, 0x08, 0xd9, 0xa5, 0x66, 0x22, 0x5d, 0x2d, 0x39, 0x64, 0x99, 0x7d, 0x71, 0x4d,
  1005. 0xfb, 0xe2, 0xe8, 0xef, 0x0e, 0xf4, 0xeb, 0x22, 0x99, 0x09, 0x2a, 0x37, 0xaa, 0xf3, 0xee, 0x8d,
  1006. 0x6a, 0xcd, 0x43, 0xe3, 0xad, 0xf3, 0x40, 0xf7, 0xe0, 0xce, 0x0b, 0x14, 0x4a, 0x9e, 0x26, 0x02,
  1007. 0x13, 0x51, 0x40, 0x5d, 0xd4, 0x70, 0x74, 0x1f, 0xee, 0xce, 0x9f, 0x30, 0x29, 0x7b, 0xb0, 0x12,
  1008. 0x6a, 0x91, 0x3a, 0xd2, 0xf5, 0x8b, 0x2d, 0xfd, 0x11, 0xc8, 0x41, 0x86, 0x81, 0xc0, 0xf7, 0x60,
  1009. 0xdd, 0x29, 0x83, 0x36, 0x6e, 0x64, 0xd0, 0x3b, 0xd0, 0x2b, 0xb9, 0xd6, 0xb9, 0xc8, 0x88, 0xa7,
  1010. 0x93, 0xe8, 0x43, 0x45, 0x2c, 0xb9, 0x36, 0x11, 0xff, 0x71, 0x80, 0x1c, 0x62, 0x8c, 0xef, 0x15,
  1011. 0xb2, 0xe6, 0x69, 0xa9, 0x50, 0x5e, 0xb3, 0x4a, 0x79, 0x8f, 0xe0, 0x96, 0x34, 0x51, 0xd1, 0x86,
  1012. 0x51, 0x20, 0x02, 0xc3, 0xdb, 0x5d, 0xc6, 0x75, 0x0a, 0x87, 0x81, 0x08, 0x8c, 0xa3, 0x0c, 0xc3,
  1013. 0x3c, 0x93, 0x54, 0xae, 0x86, 0x4d, 0x39, 0xf2, 0x0b, 0x91, 0xc4, 0x52, 0xca, 0xd9, 0x60, 0xf9,
  1014. 0xdb, 0x81, 0xde, 0x33, 0xce, 0xd9, 0x79, 0xf2, 0x43, 0x1a, 0xe7, 0x63, 0x2c, 0xc0, 0x6c, 0x40,
  1015. 0x2b, 0x4c, 0x73, 0x73, 0xbf, 0x2d, 0x5f, 0x6f, 0xe6, 0x66, 0xad, 0x51, 0x99, 0xb5, 0xb9, 0x69,
  1016. 0x6d, 0x56, 0xa7, 0xd5, 0x9a, 0xc6, 0x65, 0x7b, 0x1a, 0xc9, 0x27, 0xd0, 0x91, 0xf0, 0x86, 0x21,
  1017. 0x26, 0x02, 0x33, 0x85, 0xc0, 0xf5, 0x41, 0x8a, 0x0e, 0x94, 0x84, 0x5e, 0xc2, 0x46, 0x39, 0x51,
  1018. 0xd3, 0x8b, 0x0b, 0xf9, 0x52, 0x52, 0x51, 0x16, 0x9b, 0x2c, 0xe5, 0x52, 0x0d, 0x70, 0x7e, 0x16,
  1019. 0xb3, 0x70, 0x28, 0x15, 0x4d, 0x33, 0xc0, 0x4a, 0x72, 0x9a, 0xc5, 0x33, 0xcc, 0xcb, 0x16, 0x66,
  1020. 0xfa, 0x25, 0xf4, 0xf4, 0xfb, 0x5f, 0x2e, 0xd0, 0x16, 0xc0, 0xa5, 0x12, 0x0c, 0x59, 0xa4, 0x9f,
  1021. 0x3e, 0xd7, 0x77, 0xb5, 0xe4, 0x65, 0xc4, 0xe9, 0xb7, 0xe0, 0x1e, 0xa7, 0x1a, 0x33, 0x27, 0x7b,
  1022. 0xe0, 0xc6, 0xc5, 0xc6, 0xbc, 0x92, 0x64, 0xd6, 0x72, 0x85, 0x9d, 0x3f, 0x33, 0xa2, 0xdf, 0xc0,
  1023. 0x6a, 0x21, 0x2e, 0x70, 0x38, 0x8b, 0x70, 0x34, 0xe6, 0x70, 0xd0, 0xff, 0x1c, 0xd8, 0x28, 0xa7,
  1024. 0x6c, 0x4a, 0x75, 0x0a, 0x6b, 0xd3, 0x10, 0xc3, 0x71, 0x30, 0x31, 0xb9, 0xec, 0xd9, 0xb9, 0x54,
  1025. 0x8f, 0x4d, 0x13, 0xe4, 0xaf, 0x82, 0x89, 0xee, 0x9e, 0x6e, 0x6c, 0x89, 0xfa, 0xdf, 0xc3, 0x7a,
  1026. 0xc5, 0x44, 0x66, 0x7d, 0x81, 0xc5, 0x1c, 0xc8, 0x25, 0x79, 0x02, 0xad, 0xcb, 0x20, 0xce, 0xd1,
  1027. 0x0c, 0x5d, 0xaf, 0x5a, 0x01, 0xee, 0x6b, 0x8b, 0xaf, 0x1b, 0x4f, 0x1d, 0xfa, 0x15, 0xdc, 0xd3,
  1028. 0x0d, 0x7b, 0x30, 0xed, 0xaf, 0xa2, 0xf6, 0xe5, 0x36, 0x74, 0xe6, 0xdb, 0x90, 0xf6, 0xc1, 0xab,
  1029. 0x1e, 0xd5, 0x60, 0xf6, 0xff, 0x6c, 0x43, 0xf7, 0x04, 0x83, 0x2b, 0xc4, 0x48, 0x32, 0x5b, 0x46,
  1030. 0xce, 0x8b, 0x62, 0x95, 0xbf, 0xef, 0xc8, 0xe3, 0xf9, 0xaa, 0xd4, 0x7e, 0x50, 0xf6, 0x3f, 0x7b,
  1031. 0x9b, 0x99, 0x19, 0xb4, 0x25, 0x72, 0x0c, 0x1d, 0xeb, 0x03, 0x8a, 0x6c, 0x5a, 0x07, 0x2b, 0xdf,
  1032. 0x85, 0xfd, 0xad, 0x05, 0xda, 0xa9, 0xb7, 0x00, 0x48, 0xf5, 0x4d, 0x21, 0x9f, 0xce, 0x8e, 0x2d,
  1033. 0x7c, 0xdb, 0xfa, 0x8f, 0x6e, 0x36, 0xb2, 0x13, 0xb6, 0x08, 0xd7, 0x4e, 0xb8, 0x4a, 0xf1, 0x76,
  1034. 0xc2, 0x75, 0x2c, 0xad, 0xbc, 0x59, 0x64, 0x6a, 0x7b, 0xab, 0xd2, 0xb7, 0xed, 0xad, 0x8e, 0x81,
  1035. 0x95, 0x37, 0x8b, 0xce, 0x6c, 0x6f, 0x55, 0x66, 0xb6, 0xbd, 0xd5, 0x71, 0xe0, 0x12, 0x79, 0x03,
  1036. 0x5d, 0x9b, 0x5b, 0x88, 0x75, 0xa0, 0x86, 0x1c, 0xfb, 0x0f, 0x16, 0xa9, 0x6d, 0x87, 0xf6, 0x28,
  1037. 0xd9, 0x0e, 0x6b, 0xc8, 0xc4, 0x76, 0x58, 0x37, 0x81, 0x74, 0x89, 0xfc, 0x04, 0xb7, 0xe7, 0x5b,
  1038. 0x9a, 0x3c, 0x9c, 0x87, 0x55, 0x99, 0x94, 0x3e, 0xbd, 0xc9, 0xa4, 0x70, 0x7e, 0xd6, 0x56, 0x3f,
  1039. 0x51, 0x5f, 0xfc, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x81, 0x71, 0x63, 0x3e, 0x53, 0x0d, 0x00, 0x00,
  1040. }