-- stratum 0 advertising
op0_helper_constraint0_helper_publisher('V.8qgOfsaEJkK1tzX51sTT9NKdM8J2SrzQq6k8cRPzvP0.H3') :- true.
-- stratum 1 advertising
op0_helper_constraint0_helper_publication(P) :- Have(P), Field(P,'#Joinery',_,'publication'), Field(P,'By','0',by), op0_helper_constraint0_helper_publisher(by), Field(P,'Serial',_,_).
-- stratum 2 advertising
op0_helper_constraint0_helper_root(R) :- op0_helper_constraint0_helper_publication(P), RecordLink(P,'Bundle+Link','0','bundle',R).
-- stratum 3 advertising
op0_helper_constraint0_helper_directory(D) :- op0_helper_constraint0_helper_directory(Parent), Have(Parent), RecordLink(Parent,'Child+Link',_,_,D).
op0_helper_constraint0_helper_directory(D) :- op0_helper_constraint0_helper_directory(Parent), Have(Parent), RecordLink(Parent,'Page+Link',_,_,D).
op0_helper_constraint0_helper_directory(D) :- op0_helper_constraint0_helper_root(R), Have(R), RecordLink(R,'Root+Link',_,'files',D).
-- stratum 4 advertising
op0_helper_constraint0_helper_file(F) :- op0_helper_constraint0_helper_directory(D), Have(D), RecordLink(D,'File+Link',_,_,F).
op0_helper_constraint0_helper_file(F) :- op0_helper_constraint0_helper_file(Parent), Have(Parent), RecordLink(Parent,'Chunk+Link',_,_,F).
-- stratum 5 requesting
op0_helper_constraint0_facet1(P) :- Advertised(P), AdvertisedField(P,'#Joinery',_,'publication'), AdvertisedField(P,'By','0',by), op0_helper_constraint0_helper_publisher(by), AdvertisedField(P,'Serial',_,_).
op0_helper_constraint0_facet1(R) :- op0_helper_constraint0_helper_directory(R), Advertised(R).
op0_helper_constraint0_facet1(R) :- op0_helper_constraint0_helper_file(R), Advertised(R).
op0_helper_constraint0_facet1(R) :- op0_helper_constraint0_helper_root(R), Advertised(R).
-- stratum 6 requesting
op0_facet_selectadvertisedcandidate(Record) :- op0_helper_constraint0_facet1(Record), not AdvertisedField(Record,'#Joinery-Reach',_,'localhost'), not AdvertisedField(Record,'#Joinery-Reach',_,'native').
-- stratum 7 advertising
op1_helper_constraint0_helper_catalog_scope('V.8qgOfsaEJkK1tzX51sTT9NKdM8J2SrzQq6k8cRPzvP0.H3','release','linux-x86_64') :- true.
-- stratum 8 advertising
op0_helper_constraint0_helper_held(R) :- op0_helper_constraint0_helper_directory(R), Have(R).
op0_helper_constraint0_helper_held(R) :- op0_helper_constraint0_helper_file(R), Have(R).
op0_helper_constraint0_helper_held(R) :- op0_helper_constraint0_helper_publication(R).
op0_helper_constraint0_helper_held(R) :- op0_helper_constraint0_helper_root(R), Have(R).
-- stratum 9 advertising
op0_facet_exposerecord(Record) :- op0_helper_constraint0_helper_held(Record), not Field(Record,'#Joinery-Reach',_,'localhost'), not Field(Record,'#Joinery-Reach',_,'native').
-- stratum 10 advertising
op1_exposed_have(Record) :- Have(Record), op0_facet_exposerecord(Record).
-- stratum 11 advertising
op1_exposed_recordlink(Record,'Bundle+Link','0','bundle',Target) :- RecordLink(Record,'Bundle+Link','0','bundle',Target), op0_facet_exposerecord(Record).
op1_exposed_recordlink(Record,'Child+Link',index,data,Target) :- RecordLink(Record,'Child+Link',index,data,Target), op0_facet_exposerecord(Record).
op1_exposed_recordlink(Record,'Chunk+Link',index,data,Target) :- RecordLink(Record,'Chunk+Link',index,data,Target), op0_facet_exposerecord(Record).
op1_exposed_recordlink(Record,'File+Link',index,'ingredient.json.lr',Target) :- RecordLink(Record,'File+Link',index,'ingredient.json.lr',Target), op0_facet_exposerecord(Record).
op1_exposed_recordlink(Record,'File+Link',index,'source.json.lr',Target) :- RecordLink(Record,'File+Link',index,'source.json.lr',Target), op0_facet_exposerecord(Record).
op1_exposed_recordlink(Record,'File+Link',index,data,Target) :- RecordLink(Record,'File+Link',index,data,Target), op0_facet_exposerecord(Record).
op1_exposed_recordlink(Record,'Page+Link',index,data,Target) :- RecordLink(Record,'Page+Link',index,data,Target), op0_facet_exposerecord(Record).
op1_exposed_recordlink(Record,'Root+Link',index,'files',Target) :- RecordLink(Record,'Root+Link',index,'files',Target), op0_facet_exposerecord(Record).
-- stratum 12 advertising
op1_exposed_field(Record,name,index,value) :- Field(Record,name,index,value), op0_facet_exposerecord(Record).
-- stratum 13 advertising
op1_helper_constraint0_helper_listed(P) :- op1_exposed_have(P), op1_exposed_field(P,'#Joinery',_,'publication'), op1_exposed_field(P,'By','0',by), op1_exposed_field(P,'Channel',_,channel), op1_exposed_field(P,'Serial',_,_), not op1_exposed_field(P,'Platform',_,_), op1_helper_constraint0_helper_catalog_scope(by,channel,_).
op1_helper_constraint0_helper_listed(P) :- op1_exposed_have(P), op1_exposed_field(P,'#Joinery',_,'publication'), op1_exposed_field(P,'By','0',by), op1_exposed_field(P,'Channel',_,channel), op1_exposed_field(P,'Serial',_,_), op1_exposed_field(P,'Platform',_,platform), op1_helper_constraint0_helper_catalog_scope(by,channel,platform).
-- stratum 14 advertising
op1_helper_constraint0_helper_offered(R) :- op1_helper_constraint0_helper_listed(P), op1_exposed_recordlink(P,'Bundle+Link','0','bundle',R).
-- stratum 15 advertising
op1_helper_constraint0_helper_listing(D) :- op1_helper_constraint0_helper_offered(R), op1_exposed_have(R), op1_exposed_recordlink(R,'Root+Link',_,'files',D).
-- stratum 16 advertising
op1_helper_constraint0_helper_manifest(F) :- op1_helper_constraint0_helper_listing(D), op1_exposed_have(D), op1_exposed_recordlink(D,'File+Link',_,'ingredient.json.lr',F).
op1_helper_constraint0_helper_manifest(F) :- op1_helper_constraint0_helper_listing(D), op1_exposed_have(D), op1_exposed_recordlink(D,'File+Link',_,'source.json.lr',F).
-- stratum 17 advertising
op1_helper_constraint0_helper_scope('V.8qgOfsaEJkK1tzX51sTT9NKdM8J2SrzQq6k8cRPzvP0.H3','release','kernel','linux-x86_64') :- true.
-- stratum 18 advertising
op1_helper_constraint0_helper_evidence(P,by,channel,ingredient,platform) :- op1_exposed_have(P), op1_exposed_field(P,'#Joinery',_,'publication'), op1_exposed_field(P,'By','0',by), op1_exposed_field(P,'Ingredient',_,ingredient), op1_exposed_field(P,'Channel',_,channel), op1_exposed_field(P,'Serial',_,_), not op1_exposed_field(P,'Platform',_,_), op1_helper_constraint0_helper_scope(by,channel,ingredient,platform), ingredient != 'kernel'.
op1_helper_constraint0_helper_evidence(P,by,channel,ingredient,platform) :- op1_exposed_have(P), op1_exposed_field(P,'#Joinery',_,'publication'), op1_exposed_field(P,'By','0',by), op1_exposed_field(P,'Ingredient',_,ingredient), op1_exposed_field(P,'Channel',_,channel), op1_exposed_field(P,'Serial',_,_), op1_exposed_field(P,'Platform',_,platform), op1_helper_constraint0_helper_scope(by,channel,ingredient,platform).
-- stratum 19 advertising
op1_helper_constraint0_helper_ordered(P,by,channel,ingredient,platform,serial) :- op1_helper_constraint0_helper_evidence(P,by,channel,ingredient,platform), op1_exposed_field(P,'Serial','0',serial), not op1_exposed_field(P,'Serial','1',_), Compare(Int(serial),'>=',Int('0')).
-- stratum 20 advertising
op1_helper_constraint0_helper_serial(by,channel,ingredient,platform,serial) :- op1_helper_constraint0_helper_ordered(P,by,channel,ingredient,platform,serial).
-- stratum 21 advertising
op1_helper_constraint0_helper_latest(by,channel,ingredient,platform,serial) :- TopK(op1_helper_constraint0_helper_serial(by,channel,ingredient,platform,serial),PartitionBy(by,channel,ingredient,platform),Int(serial),'>','1').
-- stratum 22 advertising
op1_helper_constraint0_helper_requires(P,format) :- op1_helper_constraint0_helper_evidence(P,_,_,_,_), op1_exposed_field(P,'Requires','0',format), not op1_exposed_field(P,'Requires','1',_), Compare(Int(format),'>=',Int('0')).
-- stratum 23 advertising
op1_helper_constraint0_helper_known(P) :- op1_helper_constraint0_helper_evidence(P,_,_,_,_), not op1_exposed_field(P,'Requires',_,_).
op1_helper_constraint0_helper_known(P) :- op1_helper_constraint0_helper_requires(P,format), Compare(Int(format),'<=',Int('1')).
-- stratum 24 advertising
op1_helper_constraint0_helper_oversized(P) :- op1_helper_constraint0_helper_evidence(P,_,_,_,_), Cardinality(op1_exposed_field(P,_,_,_),'>','21').
-- stratum 25 advertising
op1_helper_constraint0_helper_repeated(P) :- op1_helper_constraint0_helper_evidence(P,_,_,_,_), op1_exposed_field(P,'#Joinery','1',_).
op1_helper_constraint0_helper_repeated(P) :- op1_helper_constraint0_helper_evidence(P,_,_,_,_), op1_exposed_field(P,'Bundle+Link','1',_).
op1_helper_constraint0_helper_repeated(P) :- op1_helper_constraint0_helper_evidence(P,_,_,_,_), op1_exposed_field(P,'Channel','1',_).
op1_helper_constraint0_helper_repeated(P) :- op1_helper_constraint0_helper_evidence(P,_,_,_,_), op1_exposed_field(P,'Ingredient','1',_).
op1_helper_constraint0_helper_repeated(P) :- op1_helper_constraint0_helper_evidence(P,_,_,_,_), op1_exposed_field(P,'Platform','1',_).
op1_helper_constraint0_helper_repeated(P) :- op1_helper_constraint0_helper_evidence(P,_,_,_,_), op1_exposed_field(P,'Requires','1',_).
op1_helper_constraint0_helper_repeated(P) :- op1_helper_constraint0_helper_evidence(P,_,_,_,_), op1_exposed_field(P,'Serial','1',_).
-- stratum 26 advertising
op1_helper_constraint0_helper_valid(P,by,channel,ingredient,platform,serial,Bundle) :- op1_helper_constraint0_helper_ordered(P,by,channel,ingredient,platform,serial), op1_helper_constraint0_helper_known(P), not op1_helper_constraint0_helper_repeated(P), not op1_helper_constraint0_helper_oversized(P), op1_exposed_field(P,'Data-Length','0','0'), op1_exposed_recordlink(P,'Bundle+Link','0','bundle',Bundle), TextShape(Bundle,'S.','','.H3').
-- stratum 27 advertising
op1_helper_constraint0_helper_target(by,channel,ingredient,platform,serial,Bundle) :- op1_helper_constraint0_helper_valid(P,by,channel,ingredient,platform,serial,Bundle).
-- stratum 28 advertising
op1_helper_constraint0_helper_unorderable(by,channel,ingredient,platform) :- op1_helper_constraint0_helper_evidence(P,by,channel,ingredient,platform), not op1_helper_constraint0_helper_ordered(P,by,channel,ingredient,platform,_).
-- stratum 29 advertising
op1_helper_constraint0_helper_blocked(by,channel,ingredient,platform) :- op1_helper_constraint0_helper_latest(by,channel,ingredient,platform,serial), Cardinality(op1_helper_constraint0_helper_target(by,channel,ingredient,platform,serial,Bundle),'>','1').
op1_helper_constraint0_helper_blocked(by,channel,ingredient,platform) :- op1_helper_constraint0_helper_latest(by,channel,ingredient,platform,serial), op1_helper_constraint0_helper_ordered(P,by,channel,ingredient,platform,serial), not op1_helper_constraint0_helper_valid(P,by,channel,ingredient,platform,serial,_).
op1_helper_constraint0_helper_blocked(by,channel,ingredient,platform) :- op1_helper_constraint0_helper_unorderable(by,channel,ingredient,platform).
-- stratum 30 advertising
op1_helper_constraint0_helper_selected(by,channel,ingredient,platform,serial,Bundle) :- op1_helper_constraint0_helper_latest(by,channel,ingredient,platform,serial), op1_helper_constraint0_helper_target(by,channel,ingredient,platform,serial,Bundle), not op1_helper_constraint0_helper_blocked(by,channel,ingredient,platform).
-- stratum 31 advertising
op1_helper_constraint0_helper_root(R) :- op1_helper_constraint0_helper_selected(_,_,_,_,_,R), op1_exposed_have(R), op1_exposed_field(R,'#Joinery',_,'bundle').
-- stratum 32 advertising
op1_helper_constraint0_helper_directory(D) :- op1_helper_constraint0_helper_directory(Parent), op1_exposed_have(Parent), op1_exposed_recordlink(Parent,'Child+Link',_,_,D).
op1_helper_constraint0_helper_directory(D) :- op1_helper_constraint0_helper_directory(Parent), op1_exposed_have(Parent), op1_exposed_recordlink(Parent,'Page+Link',_,_,D).
op1_helper_constraint0_helper_directory(D) :- op1_helper_constraint0_helper_root(R), op1_exposed_recordlink(R,'Root+Link',_,'files',D).
-- stratum 33 advertising
op1_helper_constraint0_helper_file(F) :- op1_helper_constraint0_helper_directory(D), op1_exposed_have(D), op1_exposed_recordlink(D,'File+Link',_,_,F).
op1_helper_constraint0_helper_file(F) :- op1_helper_constraint0_helper_file(Parent), op1_exposed_have(Parent), op1_exposed_recordlink(Parent,'Chunk+Link',_,_,F).
-- stratum 34 advertising
op1_helper_constraint0_helper_reachable(R) :- op1_helper_constraint0_helper_directory(R).
op1_helper_constraint0_helper_reachable(R) :- op1_helper_constraint0_helper_file(R).
op1_helper_constraint0_helper_reachable(R) :- op1_helper_constraint0_helper_root(R).
-- stratum 35 requesting
op1_helper_constraint0_facet1(P) :- Advertised(P), AdvertisedField(P,'#Joinery',_,'publication'), AdvertisedField(P,'By','0',by), AdvertisedField(P,'Channel',_,channel), AdvertisedField(P,'Serial',_,_), AdvertisedField(P,'Platform',_,platform), op1_helper_constraint0_helper_catalog_scope(by,channel,platform).
op1_helper_constraint0_facet1(P) :- Advertised(P), AdvertisedField(P,'#Joinery',_,'publication'), AdvertisedField(P,'By','0',by), AdvertisedField(P,'Channel',_,channel), AdvertisedField(P,'Serial',_,_), not AdvertisedField(P,'Platform',_,_), op1_helper_constraint0_helper_catalog_scope(by,channel,_).
op1_helper_constraint0_facet1(P) :- Advertised(P), AdvertisedField(P,'#Joinery',_,'publication'), AdvertisedField(P,'By','0',by), AdvertisedField(P,'Ingredient',_,ingredient), AdvertisedField(P,'Channel',_,channel), AdvertisedField(P,'Serial',_,_), AdvertisedField(P,'Platform',_,platform), op1_helper_constraint0_helper_scope(by,channel,ingredient,platform).
op1_helper_constraint0_facet1(P) :- Advertised(P), AdvertisedField(P,'#Joinery',_,'publication'), AdvertisedField(P,'By','0',by), AdvertisedField(P,'Ingredient',_,ingredient), AdvertisedField(P,'Channel',_,channel), AdvertisedField(P,'Serial',_,_), not AdvertisedField(P,'Platform',_,_), op1_helper_constraint0_helper_scope(by,channel,ingredient,platform), ingredient != 'kernel'.
op1_helper_constraint0_facet1(R) :- op1_helper_constraint0_helper_listing(R), Advertised(R).
op1_helper_constraint0_facet1(R) :- op1_helper_constraint0_helper_manifest(R), Advertised(R).
op1_helper_constraint0_facet1(R) :- op1_helper_constraint0_helper_offered(R), Advertised(R).
op1_helper_constraint0_facet1(R) :- op1_helper_constraint0_helper_reachable(R), Advertised(R).
op1_helper_constraint0_facet1(R) :- op1_helper_constraint0_helper_selected(_,_,_,_,_,R), Advertised(R).
-- stratum 36 requesting
op1_facet_selectadvertisedcandidate(Record) :- op1_helper_constraint0_facet1(Record), not AdvertisedField(Record,'#Joinery-Reach',_,'localhost'), not AdvertisedField(Record,'#Joinery-Reach',_,'native').
-- stratum 37 requesting
lace_may_request(Record) :- op0_facet_selectadvertisedcandidate(Record), op1_facet_selectadvertisedcandidate(Record), Advertised(Record), not Have(Record).
-- stratum 38 advertising
op0_facet_selectstoredrecord(Record) :- op0_helper_constraint0_helper_held(Record), not Field(Record,'#Joinery-Reach',_,'localhost'), not Field(Record,'#Joinery-Reach',_,'native').
-- stratum 39 advertising
op1_helper_constraint0_helper_catalog(R) :- op1_helper_constraint0_helper_listing(R).
op1_helper_constraint0_helper_catalog(R) :- op1_helper_constraint0_helper_manifest(R).
op1_helper_constraint0_helper_catalog(R) :- op1_helper_constraint0_helper_offered(R).
-- stratum 40 advertising
op1_helper_constraint0_facet0(P) :- op1_helper_constraint0_helper_evidence(P,_,_,_,_).
op1_helper_constraint0_facet0(P) :- op1_helper_constraint0_helper_listed(P).
op1_helper_constraint0_facet0(R) :- op1_helper_constraint0_helper_catalog(R), op1_exposed_have(R).
op1_helper_constraint0_facet0(R) :- op1_helper_constraint0_helper_reachable(R), op1_exposed_have(R).
-- stratum 41 advertising
op1_facet_selectstoredrecord(Record) :- op1_helper_constraint0_facet0(Record), not op1_exposed_field(Record,'#Joinery-Reach',_,'localhost'), not op1_exposed_field(Record,'#Joinery-Reach',_,'native').
-- stratum 42 advertising
lace_may_send(Record) :- op0_facet_selectstoredrecord(Record), op1_facet_selectstoredrecord(Record), op0_facet_exposerecord(Record).
