|
@@ -0,0 +1,530 @@
|
|
|
|
+package com.miniframe.model.system;
|
|
|
|
+
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.List;
|
|
|
|
+
|
|
|
|
+public class DPtpipeassSQLBuilder {
|
|
|
|
+ protected String orderByClause;
|
|
|
|
+
|
|
|
|
+ protected boolean distinct;
|
|
|
|
+
|
|
|
|
+ protected List<Criteria> oredCriteria;
|
|
|
|
+
|
|
|
|
+ public DPtpipeassSQLBuilder() {
|
|
|
|
+ oredCriteria = new ArrayList<Criteria>();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void setOrderByClause(String orderByClause) {
|
|
|
|
+ this.orderByClause = orderByClause;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public String getOrderByClause() {
|
|
|
|
+ return orderByClause;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void setDistinct(boolean distinct) {
|
|
|
|
+ this.distinct = distinct;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public boolean isDistinct() {
|
|
|
|
+ return distinct;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public List<Criteria> getOredCriteria() {
|
|
|
|
+ return oredCriteria;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void or(Criteria criteria) {
|
|
|
|
+ oredCriteria.add(criteria);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria or() {
|
|
|
|
+ Criteria criteria = createCriteriaInternal();
|
|
|
|
+ oredCriteria.add(criteria);
|
|
|
|
+ return criteria;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria createCriteria() {
|
|
|
|
+ Criteria criteria = createCriteriaInternal();
|
|
|
|
+ if (oredCriteria.size() == 0) {
|
|
|
|
+ oredCriteria.add(criteria);
|
|
|
|
+ }
|
|
|
|
+ return criteria;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ protected Criteria createCriteriaInternal() {
|
|
|
|
+ Criteria criteria = new Criteria();
|
|
|
|
+ return criteria;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void clear() {
|
|
|
|
+ oredCriteria.clear();
|
|
|
|
+ orderByClause = null;
|
|
|
|
+ distinct = false;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ protected abstract static class GeneratedCriteria {
|
|
|
|
+ protected List<Criterion> criteria;
|
|
|
|
+
|
|
|
|
+ protected GeneratedCriteria() {
|
|
|
|
+ super();
|
|
|
|
+ criteria = new ArrayList<Criterion>();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public boolean isValid() {
|
|
|
|
+ return criteria.size() > 0;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public List<Criterion> getAllCriteria() {
|
|
|
|
+ return criteria;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public List<Criterion> getCriteria() {
|
|
|
|
+ return criteria;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ protected void addCriterion(String condition) {
|
|
|
|
+ if (condition == null) {
|
|
|
|
+ throw new RuntimeException("Value for condition cannot be null");
|
|
|
|
+ }
|
|
|
|
+ criteria.add(new Criterion(condition));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ protected void addCriterion(String condition, Object value, String property) {
|
|
|
|
+ if (value == null) {
|
|
|
|
+ throw new RuntimeException("Value for " + property + " cannot be null");
|
|
|
|
+ }
|
|
|
|
+ criteria.add(new Criterion(condition, value));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ protected void addCriterion(String condition, Object value1, Object value2, String property) {
|
|
|
|
+ if (value1 == null || value2 == null) {
|
|
|
|
+ throw new RuntimeException("Between values for " + property + " cannot be null");
|
|
|
|
+ }
|
|
|
|
+ criteria.add(new Criterion(condition, value1, value2));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andIdIsNull() {
|
|
|
|
+ addCriterion("id is null");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andIdIsNotNull() {
|
|
|
|
+ addCriterion("id is not null");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andIdEqualTo(Integer value) {
|
|
|
|
+ addCriterion("id =", value, "id");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andIdNotEqualTo(Integer value) {
|
|
|
|
+ addCriterion("id <>", value, "id");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andIdGreaterThan(Integer value) {
|
|
|
|
+ addCriterion("id >", value, "id");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andIdGreaterThanOrEqualTo(Integer value) {
|
|
|
|
+ addCriterion("id >=", value, "id");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andIdLessThan(Integer value) {
|
|
|
|
+ addCriterion("id <", value, "id");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andIdLessThanOrEqualTo(Integer value) {
|
|
|
|
+ addCriterion("id <=", value, "id");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andIdIn(List<Integer> values) {
|
|
|
|
+ addCriterion("id in", values, "id");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andIdNotIn(List<Integer> values) {
|
|
|
|
+ addCriterion("id not in", values, "id");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andIdBetween(Integer value1, Integer value2) {
|
|
|
|
+ addCriterion("id between", value1, value2, "id");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andIdNotBetween(Integer value1, Integer value2) {
|
|
|
|
+ addCriterion("id not between", value1, value2, "id");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPtcodeIsNull() {
|
|
|
|
+ addCriterion("ptcode is null");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPtcodeIsNotNull() {
|
|
|
|
+ addCriterion("ptcode is not null");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPtcodeEqualTo(String value) {
|
|
|
|
+ addCriterion("ptcode =", value, "ptcode");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPtcodeNotEqualTo(String value) {
|
|
|
|
+ addCriterion("ptcode <>", value, "ptcode");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPtcodeGreaterThan(String value) {
|
|
|
|
+ addCriterion("ptcode >", value, "ptcode");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPtcodeGreaterThanOrEqualTo(String value) {
|
|
|
|
+ addCriterion("ptcode >=", value, "ptcode");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPtcodeLessThan(String value) {
|
|
|
|
+ addCriterion("ptcode <", value, "ptcode");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPtcodeLessThanOrEqualTo(String value) {
|
|
|
|
+ addCriterion("ptcode <=", value, "ptcode");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPtcodeLike(String value) {
|
|
|
|
+ addCriterion("ptcode like", value, "ptcode");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPtcodeNotLike(String value) {
|
|
|
|
+ addCriterion("ptcode not like", value, "ptcode");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPtcodeIn(List<String> values) {
|
|
|
|
+ addCriterion("ptcode in", values, "ptcode");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPtcodeNotIn(List<String> values) {
|
|
|
|
+ addCriterion("ptcode not in", values, "ptcode");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPtcodeBetween(String value1, String value2) {
|
|
|
|
+ addCriterion("ptcode between", value1, value2, "ptcode");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPtcodeNotBetween(String value1, String value2) {
|
|
|
|
+ addCriterion("ptcode not between", value1, value2, "ptcode");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPidIsNull() {
|
|
|
|
+ addCriterion("pid is null");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPidIsNotNull() {
|
|
|
|
+ addCriterion("pid is not null");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPidEqualTo(Integer value) {
|
|
|
|
+ addCriterion("pid =", value, "pid");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPidNotEqualTo(Integer value) {
|
|
|
|
+ addCriterion("pid <>", value, "pid");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPidGreaterThan(Integer value) {
|
|
|
|
+ addCriterion("pid >", value, "pid");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPidGreaterThanOrEqualTo(Integer value) {
|
|
|
|
+ addCriterion("pid >=", value, "pid");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPidLessThan(Integer value) {
|
|
|
|
+ addCriterion("pid <", value, "pid");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPidLessThanOrEqualTo(Integer value) {
|
|
|
|
+ addCriterion("pid <=", value, "pid");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPidIn(List<Integer> values) {
|
|
|
|
+ addCriterion("pid in", values, "pid");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPidNotIn(List<Integer> values) {
|
|
|
|
+ addCriterion("pid not in", values, "pid");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPidBetween(Integer value1, Integer value2) {
|
|
|
|
+ addCriterion("pid between", value1, value2, "pid");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPidNotBetween(Integer value1, Integer value2) {
|
|
|
|
+ addCriterion("pid not between", value1, value2, "pid");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPcodeIsNull() {
|
|
|
|
+ addCriterion("pcode is null");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPcodeIsNotNull() {
|
|
|
|
+ addCriterion("pcode is not null");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPcodeEqualTo(String value) {
|
|
|
|
+ addCriterion("pcode =", value, "pcode");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPcodeNotEqualTo(String value) {
|
|
|
|
+ addCriterion("pcode <>", value, "pcode");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPcodeGreaterThan(String value) {
|
|
|
|
+ addCriterion("pcode >", value, "pcode");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPcodeGreaterThanOrEqualTo(String value) {
|
|
|
|
+ addCriterion("pcode >=", value, "pcode");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPcodeLessThan(String value) {
|
|
|
|
+ addCriterion("pcode <", value, "pcode");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPcodeLessThanOrEqualTo(String value) {
|
|
|
|
+ addCriterion("pcode <=", value, "pcode");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPcodeLike(String value) {
|
|
|
|
+ addCriterion("pcode like", value, "pcode");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPcodeNotLike(String value) {
|
|
|
|
+ addCriterion("pcode not like", value, "pcode");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPcodeIn(List<String> values) {
|
|
|
|
+ addCriterion("pcode in", values, "pcode");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPcodeNotIn(List<String> values) {
|
|
|
|
+ addCriterion("pcode not in", values, "pcode");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPcodeBetween(String value1, String value2) {
|
|
|
|
+ addCriterion("pcode between", value1, value2, "pcode");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPcodeNotBetween(String value1, String value2) {
|
|
|
|
+ addCriterion("pcode not between", value1, value2, "pcode");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPnameIsNull() {
|
|
|
|
+ addCriterion("pname is null");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPnameIsNotNull() {
|
|
|
|
+ addCriterion("pname is not null");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPnameEqualTo(String value) {
|
|
|
|
+ addCriterion("pname =", value, "pname");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPnameNotEqualTo(String value) {
|
|
|
|
+ addCriterion("pname <>", value, "pname");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPnameGreaterThan(String value) {
|
|
|
|
+ addCriterion("pname >", value, "pname");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPnameGreaterThanOrEqualTo(String value) {
|
|
|
|
+ addCriterion("pname >=", value, "pname");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPnameLessThan(String value) {
|
|
|
|
+ addCriterion("pname <", value, "pname");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPnameLessThanOrEqualTo(String value) {
|
|
|
|
+ addCriterion("pname <=", value, "pname");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPnameLike(String value) {
|
|
|
|
+ addCriterion("pname like", value, "pname");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPnameNotLike(String value) {
|
|
|
|
+ addCriterion("pname not like", value, "pname");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPnameIn(List<String> values) {
|
|
|
|
+ addCriterion("pname in", values, "pname");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPnameNotIn(List<String> values) {
|
|
|
|
+ addCriterion("pname not in", values, "pname");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPnameBetween(String value1, String value2) {
|
|
|
|
+ addCriterion("pname between", value1, value2, "pname");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Criteria andPnameNotBetween(String value1, String value2) {
|
|
|
|
+ addCriterion("pname not between", value1, value2, "pname");
|
|
|
|
+ return (Criteria) this;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public static class Criteria extends GeneratedCriteria {
|
|
|
|
+
|
|
|
|
+ protected Criteria() {
|
|
|
|
+ super();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public static class Criterion {
|
|
|
|
+ private String condition;
|
|
|
|
+
|
|
|
|
+ private Object value;
|
|
|
|
+
|
|
|
|
+ private Object secondValue;
|
|
|
|
+
|
|
|
|
+ private boolean noValue;
|
|
|
|
+
|
|
|
|
+ private boolean singleValue;
|
|
|
|
+
|
|
|
|
+ private boolean betweenValue;
|
|
|
|
+
|
|
|
|
+ private boolean listValue;
|
|
|
|
+
|
|
|
|
+ private String typeHandler;
|
|
|
|
+
|
|
|
|
+ public String getCondition() {
|
|
|
|
+ return condition;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Object getValue() {
|
|
|
|
+ return value;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Object getSecondValue() {
|
|
|
|
+ return secondValue;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public boolean isNoValue() {
|
|
|
|
+ return noValue;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public boolean isSingleValue() {
|
|
|
|
+ return singleValue;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public boolean isBetweenValue() {
|
|
|
|
+ return betweenValue;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public boolean isListValue() {
|
|
|
|
+ return listValue;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public String getTypeHandler() {
|
|
|
|
+ return typeHandler;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ protected Criterion(String condition) {
|
|
|
|
+ super();
|
|
|
|
+ this.condition = condition;
|
|
|
|
+ this.typeHandler = null;
|
|
|
|
+ this.noValue = true;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ protected Criterion(String condition, Object value, String typeHandler) {
|
|
|
|
+ super();
|
|
|
|
+ this.condition = condition;
|
|
|
|
+ this.value = value;
|
|
|
|
+ this.typeHandler = typeHandler;
|
|
|
|
+ if (value instanceof List<?>) {
|
|
|
|
+ this.listValue = true;
|
|
|
|
+ } else {
|
|
|
|
+ this.singleValue = true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ protected Criterion(String condition, Object value) {
|
|
|
|
+ this(condition, value, null);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
|
|
|
|
+ super();
|
|
|
|
+ this.condition = condition;
|
|
|
|
+ this.value = value;
|
|
|
|
+ this.secondValue = secondValue;
|
|
|
|
+ this.typeHandler = typeHandler;
|
|
|
|
+ this.betweenValue = true;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ protected Criterion(String condition, Object value, Object secondValue) {
|
|
|
|
+ this(condition, value, secondValue, null);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|