UNPKG

@htdangkhoa/google-ads

Version:
5,659 lines 213 kB
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
// versions:
//   protoc-gen-ts_proto  v1.181.2
//   protoc               v3.21.12
// source: google/ads/googleads/v24/common/criteria.proto
/* eslint-disable */
import Long from "long";
import _m0 from "protobufjs/minimal.js";
import { ageRangeTypeEnum_AgeRangeTypeFromJSON, ageRangeTypeEnum_AgeRangeTypeToJSON, } from "../enums/age_range_type.js";
import { appPaymentModelTypeEnum_AppPaymentModelTypeFromJSON, appPaymentModelTypeEnum_AppPaymentModelTypeToJSON, } from "../enums/app_payment_model_type.js";
import { brandRequestRejectionReasonEnum_BrandRequestRejectionReasonFromJSON, brandRequestRejectionReasonEnum_BrandRequestRejectionReasonToJSON, } from "../enums/brand_request_rejection_reason.js";
import { brandStateEnum_BrandStateFromJSON, brandStateEnum_BrandStateToJSON, } from "../enums/brand_state.js";
import { contentLabelTypeEnum_ContentLabelTypeFromJSON, contentLabelTypeEnum_ContentLabelTypeToJSON, } from "../enums/content_label_type.js";
import { dayOfWeekEnum_DayOfWeekFromJSON, dayOfWeekEnum_DayOfWeekToJSON, } from "../enums/day_of_week.js";
import { deviceEnum_DeviceFromJSON, deviceEnum_DeviceToJSON } from "../enums/device.js";
import { genderTypeEnum_GenderTypeFromJSON, genderTypeEnum_GenderTypeToJSON, } from "../enums/gender_type.js";
import { hotelDateSelectionTypeEnum_HotelDateSelectionTypeFromJSON, hotelDateSelectionTypeEnum_HotelDateSelectionTypeToJSON, } from "../enums/hotel_date_selection_type.js";
import { incomeRangeTypeEnum_IncomeRangeTypeFromJSON, incomeRangeTypeEnum_IncomeRangeTypeToJSON, } from "../enums/income_range_type.js";
import { interactionTypeEnum_InteractionTypeFromJSON, interactionTypeEnum_InteractionTypeToJSON, } from "../enums/interaction_type.js";
import { keywordMatchTypeEnum_KeywordMatchTypeFromJSON, keywordMatchTypeEnum_KeywordMatchTypeToJSON, } from "../enums/keyword_match_type.js";
import { listingGroupTypeEnum_ListingGroupTypeFromJSON, listingGroupTypeEnum_ListingGroupTypeToJSON, } from "../enums/listing_group_type.js";
import { locationGroupRadiusUnitsEnum_LocationGroupRadiusUnitsFromJSON, locationGroupRadiusUnitsEnum_LocationGroupRadiusUnitsToJSON, } from "../enums/location_group_radius_units.js";
import { minuteOfHourEnum_MinuteOfHourFromJSON, minuteOfHourEnum_MinuteOfHourToJSON, } from "../enums/minute_of_hour.js";
import { parentalStatusTypeEnum_ParentalStatusTypeFromJSON, parentalStatusTypeEnum_ParentalStatusTypeToJSON, } from "../enums/parental_status_type.js";
import { productCategoryLevelEnum_ProductCategoryLevelFromJSON, productCategoryLevelEnum_ProductCategoryLevelToJSON, } from "../enums/product_category_level.js";
import { productChannelEnum_ProductChannelFromJSON, productChannelEnum_ProductChannelToJSON, } from "../enums/product_channel.js";
import { productChannelExclusivityEnum_ProductChannelExclusivityFromJSON, productChannelExclusivityEnum_ProductChannelExclusivityToJSON, } from "../enums/product_channel_exclusivity.js";
import { productConditionEnum_ProductConditionFromJSON, productConditionEnum_ProductConditionToJSON, } from "../enums/product_condition.js";
import { productCustomAttributeIndexEnum_ProductCustomAttributeIndexFromJSON, productCustomAttributeIndexEnum_ProductCustomAttributeIndexToJSON, } from "../enums/product_custom_attribute_index.js";
import { productTypeLevelEnum_ProductTypeLevelFromJSON, productTypeLevelEnum_ProductTypeLevelToJSON, } from "../enums/product_type_level.js";
import { proximityRadiusUnitsEnum_ProximityRadiusUnitsFromJSON, proximityRadiusUnitsEnum_ProximityRadiusUnitsToJSON, } from "../enums/proximity_radius_units.js";
import { webpageConditionOperandEnum_WebpageConditionOperandFromJSON, webpageConditionOperandEnum_WebpageConditionOperandToJSON, } from "../enums/webpage_condition_operand.js";
import { webpageConditionOperatorEnum_WebpageConditionOperatorFromJSON, webpageConditionOperatorEnum_WebpageConditionOperatorToJSON, } from "../enums/webpage_condition_operator.js";
function createBaseKeywordInfo() {
    return { text: undefined, match_type: 0 };
}
export const KeywordInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.text !== undefined) {
            writer.uint32(26).string(message.text);
        }
        if (message.match_type !== undefined && message.match_type !== 0) {
            writer.uint32(16).int32(message.match_type);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseKeywordInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 3:
                    if (tag !== 26) {
                        break;
                    }
                    message.text = reader.string();
                    continue;
                case 2:
                    if (tag !== 16) {
                        break;
                    }
                    message.match_type = reader.int32();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            text: isSet(object.text) ? globalThis.String(object.text) : undefined,
            match_type: isSet(object.match_type) ? keywordMatchTypeEnum_KeywordMatchTypeFromJSON(object.match_type) : 0,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.text !== undefined) {
            obj.text = message.text;
        }
        if (message.match_type !== undefined && message.match_type !== 0) {
            obj.match_type = keywordMatchTypeEnum_KeywordMatchTypeToJSON(message.match_type);
        }
        return obj;
    },
    create(base) {
        return KeywordInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a, _b;
        const message = createBaseKeywordInfo();
        message.text = (_a = object.text) !== null && _a !== void 0 ? _a : undefined;
        message.match_type = (_b = object.match_type) !== null && _b !== void 0 ? _b : 0;
        return message;
    },
};
function createBasePlacementInfo() {
    return { url: undefined };
}
export const PlacementInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.url !== undefined) {
            writer.uint32(18).string(message.url);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBasePlacementInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.url = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { url: isSet(object.url) ? globalThis.String(object.url) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.url !== undefined) {
            obj.url = message.url;
        }
        return obj;
    },
    create(base) {
        return PlacementInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBasePlacementInfo();
        message.url = (_a = object.url) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseNegativeKeywordListInfo() {
    return { shared_set: undefined };
}
export const NegativeKeywordListInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.shared_set !== undefined) {
            writer.uint32(10).string(message.shared_set);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseNegativeKeywordListInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.shared_set = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { shared_set: isSet(object.shared_set) ? globalThis.String(object.shared_set) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.shared_set !== undefined) {
            obj.shared_set = message.shared_set;
        }
        return obj;
    },
    create(base) {
        return NegativeKeywordListInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseNegativeKeywordListInfo();
        message.shared_set = (_a = object.shared_set) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseMobileAppCategoryInfo() {
    return { mobile_app_category_constant: undefined };
}
export const MobileAppCategoryInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.mobile_app_category_constant !== undefined) {
            writer.uint32(18).string(message.mobile_app_category_constant);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseMobileAppCategoryInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.mobile_app_category_constant = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            mobile_app_category_constant: isSet(object.mobile_app_category_constant)
                ? globalThis.String(object.mobile_app_category_constant)
                : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.mobile_app_category_constant !== undefined) {
            obj.mobile_app_category_constant = message.mobile_app_category_constant;
        }
        return obj;
    },
    create(base) {
        return MobileAppCategoryInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseMobileAppCategoryInfo();
        message.mobile_app_category_constant = (_a = object.mobile_app_category_constant) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseMobileApplicationInfo() {
    return { app_id: undefined, name: undefined };
}
export const MobileApplicationInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.app_id !== undefined) {
            writer.uint32(34).string(message.app_id);
        }
        if (message.name !== undefined) {
            writer.uint32(42).string(message.name);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseMobileApplicationInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 4:
                    if (tag !== 34) {
                        break;
                    }
                    message.app_id = reader.string();
                    continue;
                case 5:
                    if (tag !== 42) {
                        break;
                    }
                    message.name = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            app_id: isSet(object.app_id) ? globalThis.String(object.app_id) : undefined,
            name: isSet(object.name) ? globalThis.String(object.name) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.app_id !== undefined) {
            obj.app_id = message.app_id;
        }
        if (message.name !== undefined) {
            obj.name = message.name;
        }
        return obj;
    },
    create(base) {
        return MobileApplicationInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a, _b;
        const message = createBaseMobileApplicationInfo();
        message.app_id = (_a = object.app_id) !== null && _a !== void 0 ? _a : undefined;
        message.name = (_b = object.name) !== null && _b !== void 0 ? _b : undefined;
        return message;
    },
};
function createBaseLocationInfo() {
    return { geo_target_constant: undefined };
}
export const LocationInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.geo_target_constant !== undefined) {
            writer.uint32(18).string(message.geo_target_constant);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseLocationInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.geo_target_constant = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            geo_target_constant: isSet(object.geo_target_constant)
                ? globalThis.String(object.geo_target_constant)
                : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.geo_target_constant !== undefined) {
            obj.geo_target_constant = message.geo_target_constant;
        }
        return obj;
    },
    create(base) {
        return LocationInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseLocationInfo();
        message.geo_target_constant = (_a = object.geo_target_constant) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseDeviceInfo() {
    return { type: 0 };
}
export const DeviceInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.type !== undefined && message.type !== 0) {
            writer.uint32(8).int32(message.type);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseDeviceInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 8) {
                        break;
                    }
                    message.type = reader.int32();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { type: isSet(object.type) ? deviceEnum_DeviceFromJSON(object.type) : 0 };
    },
    toJSON(message) {
        const obj = {};
        if (message.type !== undefined && message.type !== 0) {
            obj.type = deviceEnum_DeviceToJSON(message.type);
        }
        return obj;
    },
    create(base) {
        return DeviceInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseDeviceInfo();
        message.type = (_a = object.type) !== null && _a !== void 0 ? _a : 0;
        return message;
    },
};
function createBaseListingGroupInfo() {
    return { type: 0, case_value: undefined, parent_ad_group_criterion: undefined, path: undefined };
}
export const ListingGroupInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.type !== undefined && message.type !== 0) {
            writer.uint32(8).int32(message.type);
        }
        if (message.case_value !== undefined) {
            ListingDimensionInfo.encode(message.case_value, writer.uint32(18).fork()).ldelim();
        }
        if (message.parent_ad_group_criterion !== undefined) {
            writer.uint32(34).string(message.parent_ad_group_criterion);
        }
        if (message.path !== undefined) {
            ListingDimensionPath.encode(message.path, writer.uint32(42).fork()).ldelim();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseListingGroupInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 8) {
                        break;
                    }
                    message.type = reader.int32();
                    continue;
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.case_value = ListingDimensionInfo.decode(reader, reader.uint32());
                    continue;
                case 4:
                    if (tag !== 34) {
                        break;
                    }
                    message.parent_ad_group_criterion = reader.string();
                    continue;
                case 5:
                    if (tag !== 42) {
                        break;
                    }
                    message.path = ListingDimensionPath.decode(reader, reader.uint32());
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            type: isSet(object.type) ? listingGroupTypeEnum_ListingGroupTypeFromJSON(object.type) : 0,
            case_value: isSet(object.case_value) ? ListingDimensionInfo.fromJSON(object.case_value) : undefined,
            parent_ad_group_criterion: isSet(object.parent_ad_group_criterion)
                ? globalThis.String(object.parent_ad_group_criterion)
                : undefined,
            path: isSet(object.path) ? ListingDimensionPath.fromJSON(object.path) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.type !== undefined && message.type !== 0) {
            obj.type = listingGroupTypeEnum_ListingGroupTypeToJSON(message.type);
        }
        if (message.case_value !== undefined) {
            obj.case_value = ListingDimensionInfo.toJSON(message.case_value);
        }
        if (message.parent_ad_group_criterion !== undefined) {
            obj.parent_ad_group_criterion = message.parent_ad_group_criterion;
        }
        if (message.path !== undefined) {
            obj.path = ListingDimensionPath.toJSON(message.path);
        }
        return obj;
    },
    create(base) {
        return ListingGroupInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a, _b;
        const message = createBaseListingGroupInfo();
        message.type = (_a = object.type) !== null && _a !== void 0 ? _a : 0;
        message.case_value = (object.case_value !== undefined && object.case_value !== null)
            ? ListingDimensionInfo.fromPartial(object.case_value)
            : undefined;
        message.parent_ad_group_criterion = (_b = object.parent_ad_group_criterion) !== null && _b !== void 0 ? _b : undefined;
        message.path = (object.path !== undefined && object.path !== null)
            ? ListingDimensionPath.fromPartial(object.path)
            : undefined;
        return message;
    },
};
function createBaseListingDimensionPath() {
    return { dimensions: [] };
}
export const ListingDimensionPath = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.dimensions !== undefined && message.dimensions.length !== 0) {
            for (const v of message.dimensions) {
                ListingDimensionInfo.encode(v, writer.uint32(10).fork()).ldelim();
            }
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseListingDimensionPath();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.dimensions.push(ListingDimensionInfo.decode(reader, reader.uint32()));
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            dimensions: globalThis.Array.isArray(object === null || object === void 0 ? void 0 : object.dimensions)
                ? object.dimensions.map((e) => ListingDimensionInfo.fromJSON(e))
                : [],
        };
    },
    toJSON(message) {
        var _a;
        const obj = {};
        if ((_a = message.dimensions) === null || _a === void 0 ? void 0 : _a.length) {
            obj.dimensions = message.dimensions.map((e) => ListingDimensionInfo.toJSON(e));
        }
        return obj;
    },
    create(base) {
        return ListingDimensionPath.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseListingDimensionPath();
        message.dimensions = ((_a = object.dimensions) === null || _a === void 0 ? void 0 : _a.map((e) => ListingDimensionInfo.fromPartial(e))) || [];
        return message;
    },
};
function createBaseListingScopeInfo() {
    return { dimensions: [] };
}
export const ListingScopeInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.dimensions !== undefined && message.dimensions.length !== 0) {
            for (const v of message.dimensions) {
                ListingDimensionInfo.encode(v, writer.uint32(18).fork()).ldelim();
            }
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseListingScopeInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.dimensions.push(ListingDimensionInfo.decode(reader, reader.uint32()));
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            dimensions: globalThis.Array.isArray(object === null || object === void 0 ? void 0 : object.dimensions)
                ? object.dimensions.map((e) => ListingDimensionInfo.fromJSON(e))
                : [],
        };
    },
    toJSON(message) {
        var _a;
        const obj = {};
        if ((_a = message.dimensions) === null || _a === void 0 ? void 0 : _a.length) {
            obj.dimensions = message.dimensions.map((e) => ListingDimensionInfo.toJSON(e));
        }
        return obj;
    },
    create(base) {
        return ListingScopeInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseListingScopeInfo();
        message.dimensions = ((_a = object.dimensions) === null || _a === void 0 ? void 0 : _a.map((e) => ListingDimensionInfo.fromPartial(e))) || [];
        return message;
    },
};
function createBaseListingDimensionInfo() {
    return {
        hotel_id: undefined,
        hotel_class: undefined,
        hotel_country_region: undefined,
        hotel_state: undefined,
        hotel_city: undefined,
        product_category: undefined,
        product_brand: undefined,
        product_channel: undefined,
        product_channel_exclusivity: undefined,
        product_condition: undefined,
        product_custom_attribute: undefined,
        product_item_id: undefined,
        product_type: undefined,
        product_grouping: undefined,
        product_labels: undefined,
        product_legacy_condition: undefined,
        product_type_full: undefined,
        activity_id: undefined,
        activity_rating: undefined,
        activity_country: undefined,
        activity_state: undefined,
        activity_city: undefined,
        unknown_listing_dimension: undefined,
    };
}
export const ListingDimensionInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.hotel_id !== undefined) {
            HotelIdInfo.encode(message.hotel_id, writer.uint32(18).fork()).ldelim();
        }
        if (message.hotel_class !== undefined) {
            HotelClassInfo.encode(message.hotel_class, writer.uint32(26).fork()).ldelim();
        }
        if (message.hotel_country_region !== undefined) {
            HotelCountryRegionInfo.encode(message.hotel_country_region, writer.uint32(34).fork()).ldelim();
        }
        if (message.hotel_state !== undefined) {
            HotelStateInfo.encode(message.hotel_state, writer.uint32(42).fork()).ldelim();
        }
        if (message.hotel_city !== undefined) {
            HotelCityInfo.encode(message.hotel_city, writer.uint32(50).fork()).ldelim();
        }
        if (message.product_category !== undefined) {
            ProductCategoryInfo.encode(message.product_category, writer.uint32(194).fork()).ldelim();
        }
        if (message.product_brand !== undefined) {
            ProductBrandInfo.encode(message.product_brand, writer.uint32(122).fork()).ldelim();
        }
        if (message.product_channel !== undefined) {
            ProductChannelInfo.encode(message.product_channel, writer.uint32(66).fork()).ldelim();
        }
        if (message.product_channel_exclusivity !== undefined) {
            ProductChannelExclusivityInfo.encode(message.product_channel_exclusivity, writer.uint32(74).fork()).ldelim();
        }
        if (message.product_condition !== undefined) {
            ProductConditionInfo.encode(message.product_condition, writer.uint32(82).fork()).ldelim();
        }
        if (message.product_custom_attribute !== undefined) {
            ProductCustomAttributeInfo.encode(message.product_custom_attribute, writer.uint32(130).fork()).ldelim();
        }
        if (message.product_item_id !== undefined) {
            ProductItemIdInfo.encode(message.product_item_id, writer.uint32(90).fork()).ldelim();
        }
        if (message.product_type !== undefined) {
            ProductTypeInfo.encode(message.product_type, writer.uint32(98).fork()).ldelim();
        }
        if (message.product_grouping !== undefined) {
            ProductGroupingInfo.encode(message.product_grouping, writer.uint32(138).fork()).ldelim();
        }
        if (message.product_labels !== undefined) {
            ProductLabelsInfo.encode(message.product_labels, writer.uint32(146).fork()).ldelim();
        }
        if (message.product_legacy_condition !== undefined) {
            ProductLegacyConditionInfo.encode(message.product_legacy_condition, writer.uint32(154).fork()).ldelim();
        }
        if (message.product_type_full !== undefined) {
            ProductTypeFullInfo.encode(message.product_type_full, writer.uint32(162).fork()).ldelim();
        }
        if (message.activity_id !== undefined) {
            ActivityIdInfo.encode(message.activity_id, writer.uint32(170).fork()).ldelim();
        }
        if (message.activity_rating !== undefined) {
            ActivityRatingInfo.encode(message.activity_rating, writer.uint32(178).fork()).ldelim();
        }
        if (message.activity_country !== undefined) {
            ActivityCountryInfo.encode(message.activity_country, writer.uint32(186).fork()).ldelim();
        }
        if (message.activity_state !== undefined) {
            ActivityStateInfo.encode(message.activity_state, writer.uint32(202).fork()).ldelim();
        }
        if (message.activity_city !== undefined) {
            ActivityCityInfo.encode(message.activity_city, writer.uint32(210).fork()).ldelim();
        }
        if (message.unknown_listing_dimension !== undefined) {
            UnknownListingDimensionInfo.encode(message.unknown_listing_dimension, writer.uint32(114).fork()).ldelim();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseListingDimensionInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.hotel_id = HotelIdInfo.decode(reader, reader.uint32());
                    continue;
                case 3:
                    if (tag !== 26) {
                        break;
                    }
                    message.hotel_class = HotelClassInfo.decode(reader, reader.uint32());
                    continue;
                case 4:
                    if (tag !== 34) {
                        break;
                    }
                    message.hotel_country_region = HotelCountryRegionInfo.decode(reader, reader.uint32());
                    continue;
                case 5:
                    if (tag !== 42) {
                        break;
                    }
                    message.hotel_state = HotelStateInfo.decode(reader, reader.uint32());
                    continue;
                case 6:
                    if (tag !== 50) {
                        break;
                    }
                    message.hotel_city = HotelCityInfo.decode(reader, reader.uint32());
                    continue;
                case 24:
                    if (tag !== 194) {
                        break;
                    }
                    message.product_category = ProductCategoryInfo.decode(reader, reader.uint32());
                    continue;
                case 15:
                    if (tag !== 122) {
                        break;
                    }
                    message.product_brand = ProductBrandInfo.decode(reader, reader.uint32());
                    continue;
                case 8:
                    if (tag !== 66) {
                        break;
                    }
                    message.product_channel = ProductChannelInfo.decode(reader, reader.uint32());
                    continue;
                case 9:
                    if (tag !== 74) {
                        break;
                    }
                    message.product_channel_exclusivity = ProductChannelExclusivityInfo.decode(reader, reader.uint32());
                    continue;
                case 10:
                    if (tag !== 82) {
                        break;
                    }
                    message.product_condition = ProductConditionInfo.decode(reader, reader.uint32());
                    continue;
                case 16:
                    if (tag !== 130) {
                        break;
                    }
                    message.product_custom_attribute = ProductCustomAttributeInfo.decode(reader, reader.uint32());
                    continue;
                case 11:
                    if (tag !== 90) {
                        break;
                    }
                    message.product_item_id = ProductItemIdInfo.decode(reader, reader.uint32());
                    continue;
                case 12:
                    if (tag !== 98) {
                        break;
                    }
                    message.product_type = ProductTypeInfo.decode(reader, reader.uint32());
                    continue;
                case 17:
                    if (tag !== 138) {
                        break;
                    }
                    message.product_grouping = ProductGroupingInfo.decode(reader, reader.uint32());
                    continue;
                case 18:
                    if (tag !== 146) {
                        break;
                    }
                    message.product_labels = ProductLabelsInfo.decode(reader, reader.uint32());
                    continue;
                case 19:
                    if (tag !== 154) {
                        break;
                    }
                    message.product_legacy_condition = ProductLegacyConditionInfo.decode(reader, reader.uint32());
                    continue;
                case 20:
                    if (tag !== 162) {
                        break;
                    }
                    message.product_type_full = ProductTypeFullInfo.decode(reader, reader.uint32());
                    continue;
                case 21:
                    if (tag !== 170) {
                        break;
                    }
                    message.activity_id = ActivityIdInfo.decode(reader, reader.uint32());
                    continue;
                case 22:
                    if (tag !== 178) {
                        break;
                    }
                    message.activity_rating = ActivityRatingInfo.decode(reader, reader.uint32());
                    continue;
                case 23:
                    if (tag !== 186) {
                        break;
                    }
                    message.activity_country = ActivityCountryInfo.decode(reader, reader.uint32());
                    continue;
                case 25:
                    if (tag !== 202) {
                        break;
                    }
                    message.activity_state = ActivityStateInfo.decode(reader, reader.uint32());
                    continue;
                case 26:
                    if (tag !== 210) {
                        break;
                    }
                    message.activity_city = ActivityCityInfo.decode(reader, reader.uint32());
                    continue;
                case 14:
                    if (tag !== 114) {
                        break;
                    }
                    message.unknown_listing_dimension = UnknownListingDimensionInfo.decode(reader, reader.uint32());
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            hotel_id: isSet(object.hotel_id) ? HotelIdInfo.fromJSON(object.hotel_id) : undefined,
            hotel_class: isSet(object.hotel_class) ? HotelClassInfo.fromJSON(object.hotel_class) : undefined,
            hotel_country_region: isSet(object.hotel_country_region)
                ? HotelCountryRegionInfo.fromJSON(object.hotel_country_region)
                : undefined,
            hotel_state: isSet(object.hotel_state) ? HotelStateInfo.fromJSON(object.hotel_state) : undefined,
            hotel_city: isSet(object.hotel_city) ? HotelCityInfo.fromJSON(object.hotel_city) : undefined,
            product_category: isSet(object.product_category)
                ? ProductCategoryInfo.fromJSON(object.product_category)
                : undefined,
            product_brand: isSet(object.product_brand) ? ProductBrandInfo.fromJSON(object.product_brand) : undefined,
            product_channel: isSet(object.product_channel) ? ProductChannelInfo.fromJSON(object.product_channel) : undefined,
            product_channel_exclusivity: isSet(object.product_channel_exclusivity)
                ? ProductChannelExclusivityInfo.fromJSON(object.product_channel_exclusivity)
                : undefined,
            product_condition: isSet(object.product_condition)
                ? ProductConditionInfo.fromJSON(object.product_condition)
                : undefined,
            product_custom_attribute: isSet(object.product_custom_attribute)
                ? ProductCustomAttributeInfo.fromJSON(object.product_custom_attribute)
                : undefined,
            product_item_id: isSet(object.product_item_id) ? ProductItemIdInfo.fromJSON(object.product_item_id) : undefined,
            product_type: isSet(object.product_type) ? ProductTypeInfo.fromJSON(object.product_type) : undefined,
            product_grouping: isSet(object.product_grouping)
                ? ProductGroupingInfo.fromJSON(object.product_grouping)
                : undefined,
            product_labels: isSet(object.product_labels) ? ProductLabelsInfo.fromJSON(object.product_labels) : undefined,
            product_legacy_condition: isSet(object.product_legacy_condition)
                ? ProductLegacyConditionInfo.fromJSON(object.product_legacy_condition)
                : undefined,
            product_type_full: isSet(object.product_type_full)
                ? ProductTypeFullInfo.fromJSON(object.product_type_full)
                : undefined,
            activity_id: isSet(object.activity_id) ? ActivityIdInfo.fromJSON(object.activity_id) : undefined,
            activity_rating: isSet(object.activity_rating) ? ActivityRatingInfo.fromJSON(object.activity_rating) : undefined,
            activity_country: isSet(object.activity_country)
                ? ActivityCountryInfo.fromJSON(object.activity_country)
                : undefined,
            activity_state: isSet(object.activity_state) ? ActivityStateInfo.fromJSON(object.activity_state) : undefined,
            activity_city: isSet(object.activity_city) ? ActivityCityInfo.fromJSON(object.activity_city) : undefined,
            unknown_listing_dimension: isSet(object.unknown_listing_dimension)
                ? UnknownListingDimensionInfo.fromJSON(object.unknown_listing_dimension)
                : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.hotel_id !== undefined) {
            obj.hotel_id = HotelIdInfo.toJSON(message.hotel_id);
        }
        if (message.hotel_class !== undefined) {
            obj.hotel_class = HotelClassInfo.toJSON(message.hotel_class);
        }
        if (message.hotel_country_region !== undefined) {
            obj.hotel_country_region = HotelCountryRegionInfo.toJSON(message.hotel_country_region);
        }
        if (message.hotel_state !== undefined) {
            obj.hotel_state = HotelStateInfo.toJSON(message.hotel_state);
        }
        if (message.hotel_city !== undefined) {
            obj.hotel_city = HotelCityInfo.toJSON(message.hotel_city);
        }
        if (message.product_category !== undefined) {
            obj.product_category = ProductCategoryInfo.toJSON(message.product_category);
        }
        if (message.product_brand !== undefined) {
            obj.product_brand = ProductBrandInfo.toJSON(message.product_brand);
        }
        if (message.product_channel !== undefined) {
            obj.product_channel = ProductChannelInfo.toJSON(message.product_channel);
        }
        if (message.product_channel_exclusivity !== undefined) {
            obj.product_channel_exclusivity = ProductChannelExclusivityInfo.toJSON(message.product_channel_exclusivity);
        }
        if (message.product_condition !== undefined) {
            obj.product_condition = ProductConditionInfo.toJSON(message.product_condition);
        }
        if (message.product_custom_attribute !== undefined) {
            obj.product_custom_attribute = ProductCustomAttributeInfo.toJSON(message.product_custom_attribute);
        }
        if (message.product_item_id !== undefined) {
            obj.product_item_id = ProductItemIdInfo.toJSON(message.product_item_id);
        }
        if (message.product_type !== undefined) {
            obj.product_type = ProductTypeInfo.toJSON(message.product_type);
        }
        if (message.product_grouping !== undefined) {
            obj.product_grouping = ProductGroupingInfo.toJSON(message.product_grouping);
        }
        if (message.product_labels !== undefined) {
            obj.product_labels = ProductLabelsInfo.toJSON(message.product_labels);
        }
        if (message.product_legacy_condition !== undefined) {
            obj.product_legacy_condition = ProductLegacyConditionInfo.toJSON(message.product_legacy_condition);
        }
        if (message.product_type_full !== undefined) {
            obj.product_type_full = ProductTypeFullInfo.toJSON(message.product_type_full);
        }
        if (message.activity_id !== undefined) {
            obj.activity_id = ActivityIdInfo.toJSON(message.activity_id);
        }
        if (message.activity_rating !== undefined) {
            obj.activity_rating = ActivityRatingInfo.toJSON(message.activity_rating);
        }
        if (message.activity_country !== undefined) {
            obj.activity_country = ActivityCountryInfo.toJSON(message.activity_country);
        }
        if (message.activity_state !== undefined) {
            obj.activity_state = ActivityStateInfo.toJSON(message.activity_state);
        }
        if (message.activity_city !== undefined) {
            obj.activity_city = ActivityCityInfo.toJSON(message.activity_city);
        }
        if (message.unknown_listing_dimension !== undefined) {
            obj.unknown_listing_dimension = UnknownListingDimensionInfo.toJSON(message.unknown_listing_dimension);
        }
        return obj;
    },
    create(base) {
        return ListingDimensionInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        const message = createBaseListingDimensionInfo();
        message.hotel_id = (object.hotel_id !== undefined && object.hotel_id !== null)
            ? HotelIdInfo.fromPartial(object.hotel_id)
            : undefined;
        message.hotel_class = (object.hotel_class !== undefined && object.hotel_class !== null)
            ? HotelClassInfo.fromPartial(object.hotel_class)
            : undefined;
        message.hotel_country_region = (object.hotel_country_region !== undefined && object.hotel_country_region !== null)
            ? HotelCountryRegionInfo.fromPartial(object.hotel_country_region)
            : undefined;
        message.hotel_state = (object.hotel_state !== undefined && object.hotel_state !== null)
            ? HotelStateInfo.fromPartial(object.hotel_state)
            : undefined;
        message.hotel_city = (object.hotel_city !== undefined && object.hotel_city !== null)
            ? HotelCityInfo.fromPartial(object.hotel_city)
            : undefined;
        message.product_category = (object.product_category !== undefined && object.product_category !== null)
            ? ProductCategoryInfo.fromPartial(object.product_category)
            : undefined;
        message.product_brand = (object.product_brand !== undefined && object.product_brand !== null)
            ? ProductBrandInfo.fromPartial(object.product_brand)
            : undefined;
        message.product_channel = (object.product_channel !== undefined && object.product_channel !== null)
            ? ProductChannelInfo.fromPartial(object.product_channel)
            : undefined;
        message.product_channel_exclusivity =
            (object.product_channel_exclusivity !== undefined && object.product_channel_exclusivity !== null)
                ? ProductChannelExclusivityInfo.fromPartial(object.product_channel_exclusivity)
                : undefined;
        message.product_condition = (object.product_condition !== undefined && object.product_condition !== null)
            ? ProductConditionInfo.fromPartial(object.product_condition)
            : undefined;
        message.product_custom_attribute =
            (object.product_custom_attribute !== undefined && object.product_custom_attribute !== null)
                ? ProductCustomAttributeInfo.fromPartial(object.product_custom_attribute)
                : undefined;
        message.product_item_id = (object.product_item_id !== undefined && object.product_item_id !== null)
            ? ProductItemIdInfo.fromPartial(object.product_item_id)
            : undefined;
        message.product_type = (object.product_type !== undefined && object.product_type !== null)
            ? ProductTypeInfo.fromPartial(object.product_type)
            : undefined;
        message.product_grouping = (object.product_grouping !== undefined && object.product_grouping !== null)
            ? ProductGroupingInfo.fromPartial(object.product_grouping)
            : undefined;
        message.product_labels = (object.product_labels !== undefined && object.product_labels !== null)
            ? ProductLabelsInfo.fromPartial(object.product_labels)
            : undefined;
        message.product_legacy_condition =
            (object.product_legacy_condition !== undefined && object.product_legacy_condition !== null)
                ? ProductLegacyConditionInfo.fromPartial(object.product_legacy_condition)
                : undefined;
        message.product_type_full = (object.product_type_full !== undefined && object.product_type_full !== null)
            ? ProductTypeFullInfo.fromPartial(object.product_type_full)
            : undefined;
        message.activity_id = (object.activity_id !== undefined && object.activity_id !== null)
            ? ActivityIdInfo.fromPartial(object.activity_id)
            : undefined;
        message.activity_rating = (object.activity_rating !== undefined && object.activity_rating !== null)
            ? ActivityRatingInfo.fromPartial(object.activity_rating)
            : undefined;
        message.activity_country = (object.activity_country !== undefined && object.activity_country !== null)
            ? ActivityCountryInfo.fromPartial(object.activity_country)
            : undefined;
        message.activity_state = (object.activity_state !== undefined && object.activity_state !== null)
            ? ActivityStateInfo.fromPartial(object.activity_state)
            : undefined;
        message.activity_city = (object.activity_city !== undefined && object.activity_city !== null)
            ? ActivityCityInfo.fromPartial(object.activity_city)
            : undefined;
        message.unknown_listing_dimension =
            (object.unknown_listing_dimension !== undefined && object.unknown_listing_dimension !== null)
                ? UnknownListingDimensionInfo.fromPartial(object.unknown_listing_dimension)
                : undefined;
        return message;
    },
};
function createBaseHotelIdInfo() {
    return { value: undefined };
}
export const HotelIdInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.value !== undefined) {
            writer.uint32(18).string(message.value);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseHotelIdInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.value = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { value: isSet(object.value) ? globalThis.String(object.value) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.value !== undefined) {
            obj.value = message.value;
        }
        return obj;
    },
    create(base) {
        return HotelIdInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseHotelIdInfo();
        message.value = (_a = object.value) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseHotelClassInfo() {
    return { value: undefined };
}
export const HotelClassInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.value !== undefined) {
            writer.uint32(16).int64(message.value);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseHotelClassInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2:
                    if (tag !== 16) {
                        break;
                    }
                    message.value = longToString(reader.int64());
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { value: isSet(object.value) ? globalThis.String(object.value) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.value !== undefined) {
            obj.value = message.value;
        }
        return obj;
    },
    create(base) {
        return HotelClassInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseHotelClassInfo();
        message.value = (_a = object.value) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseHotelCountryRegionInfo() {
    return { country_region_criterion: undefined };
}
export const HotelCountryRegionInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.country_region_criterion !== undefined) {
            writer.uint32(18).string(message.country_region_criterion);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseHotelCountryRegionInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.country_region_criterion = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            country_region_criterion: isSet(object.country_region_criterion)
                ? globalThis.String(object.country_region_criterion)
                : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.country_region_criterion !== undefined) {
            obj.country_region_criterion = message.country_region_criterion;
        }
        return obj;
    },
    create(base) {
        return HotelCountryRegionInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseHotelCountryRegionInfo();
        message.country_region_criterion = (_a = object.country_region_criterion) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseHotelStateInfo() {
    return { state_criterion: undefined };
}
export const HotelStateInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.state_criterion !== undefined) {
            writer.uint32(18).string(message.state_criterion);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseHotelStateInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.state_criterion = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { state_criterion: isSet(object.state_criterion) ? globalThis.String(object.state_criterion) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.state_criterion !== undefined) {
            obj.state_criterion = message.state_criterion;
        }
        return obj;
    },
    create(base) {
        return HotelStateInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseHotelStateInfo();
        message.state_criterion = (_a = object.state_criterion) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseHotelCityInfo() {
    return { city_criterion: undefined };
}
export const HotelCityInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.city_criterion !== undefined) {
            writer.uint32(18).string(message.city_criterion);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseHotelCityInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.city_criterion = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { city_criterion: isSet(object.city_criterion) ? globalThis.String(object.city_criterion) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.city_criterion !== undefined) {
            obj.city_criterion = message.city_criterion;
        }
        return obj;
    },
    create(base) {
        return HotelCityInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseHotelCityInfo();
        message.city_criterion = (_a = object.city_criterion) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseProductCategoryInfo() {
    return { category_id: undefined, level: 0 };
}
export const ProductCategoryInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.category_id !== undefined) {
            writer.uint32(8).int64(message.category_id);
        }
        if (message.level !== undefined && message.level !== 0) {
            writer.uint32(16).int32(message.level);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseProductCategoryInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 8) {
                        break;
                    }
                    message.category_id = longToString(reader.int64());
                    continue;
                case 2:
                    if (tag !== 16) {
                        break;
                    }
                    message.level = reader.int32();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            category_id: isSet(object.category_id) ? globalThis.String(object.category_id) : undefined,
            level: isSet(object.level) ? productCategoryLevelEnum_ProductCategoryLevelFromJSON(object.level) : 0,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.category_id !== undefined) {
            obj.category_id = message.category_id;
        }
        if (message.level !== undefined && message.level !== 0) {
            obj.level = productCategoryLevelEnum_ProductCategoryLevelToJSON(message.level);
        }
        return obj;
    },
    create(base) {
        return ProductCategoryInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a, _b;
        const message = createBaseProductCategoryInfo();
        message.category_id = (_a = object.category_id) !== null && _a !== void 0 ? _a : undefined;
        message.level = (_b = object.level) !== null && _b !== void 0 ? _b : 0;
        return message;
    },
};
function createBaseProductBrandInfo() {
    return { value: undefined };
}
export const ProductBrandInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.value !== undefined) {
            writer.uint32(18).string(message.value);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseProductBrandInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.value = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { value: isSet(object.value) ? globalThis.String(object.value) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.value !== undefined) {
            obj.value = message.value;
        }
        return obj;
    },
    create(base) {
        return ProductBrandInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseProductBrandInfo();
        message.value = (_a = object.value) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseProductChannelInfo() {
    return { channel: 0 };
}
export const ProductChannelInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.channel !== undefined && message.channel !== 0) {
            writer.uint32(8).int32(message.channel);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseProductChannelInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 8) {
                        break;
                    }
                    message.channel = reader.int32();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { channel: isSet(object.channel) ? productChannelEnum_ProductChannelFromJSON(object.channel) : 0 };
    },
    toJSON(message) {
        const obj = {};
        if (message.channel !== undefined && message.channel !== 0) {
            obj.channel = productChannelEnum_ProductChannelToJSON(message.channel);
        }
        return obj;
    },
    create(base) {
        return ProductChannelInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseProductChannelInfo();
        message.channel = (_a = object.channel) !== null && _a !== void 0 ? _a : 0;
        return message;
    },
};
function createBaseProductChannelExclusivityInfo() {
    return { channel_exclusivity: 0 };
}
export const ProductChannelExclusivityInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.channel_exclusivity !== undefined && message.channel_exclusivity !== 0) {
            writer.uint32(8).int32(message.channel_exclusivity);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseProductChannelExclusivityInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 8) {
                        break;
                    }
                    message.channel_exclusivity = reader.int32();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            channel_exclusivity: isSet(object.channel_exclusivity)
                ? productChannelExclusivityEnum_ProductChannelExclusivityFromJSON(object.channel_exclusivity)
                : 0,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.channel_exclusivity !== undefined && message.channel_exclusivity !== 0) {
            obj.channel_exclusivity = productChannelExclusivityEnum_ProductChannelExclusivityToJSON(message.channel_exclusivity);
        }
        return obj;
    },
    create(base) {
        return ProductChannelExclusivityInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseProductChannelExclusivityInfo();
        message.channel_exclusivity = (_a = object.channel_exclusivity) !== null && _a !== void 0 ? _a : 0;
        return message;
    },
};
function createBaseProductConditionInfo() {
    return { condition: 0 };
}
export const ProductConditionInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.condition !== undefined && message.condition !== 0) {
            writer.uint32(8).int32(message.condition);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseProductConditionInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 8) {
                        break;
                    }
                    message.condition = reader.int32();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { condition: isSet(object.condition) ? productConditionEnum_ProductConditionFromJSON(object.condition) : 0 };
    },
    toJSON(message) {
        const obj = {};
        if (message.condition !== undefined && message.condition !== 0) {
            obj.condition = productConditionEnum_ProductConditionToJSON(message.condition);
        }
        return obj;
    },
    create(base) {
        return ProductConditionInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseProductConditionInfo();
        message.condition = (_a = object.condition) !== null && _a !== void 0 ? _a : 0;
        return message;
    },
};
function createBaseProductCustomAttributeInfo() {
    return { value: undefined, index: 0 };
}
export const ProductCustomAttributeInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.value !== undefined) {
            writer.uint32(26).string(message.value);
        }
        if (message.index !== undefined && message.index !== 0) {
            writer.uint32(16).int32(message.index);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseProductCustomAttributeInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 3:
                    if (tag !== 26) {
                        break;
                    }
                    message.value = reader.string();
                    continue;
                case 2:
                    if (tag !== 16) {
                        break;
                    }
                    message.index = reader.int32();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            value: isSet(object.value) ? globalThis.String(object.value) : undefined,
            index: isSet(object.index)
                ? productCustomAttributeIndexEnum_ProductCustomAttributeIndexFromJSON(object.index)
                : 0,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.value !== undefined) {
            obj.value = message.value;
        }
        if (message.index !== undefined && message.index !== 0) {
            obj.index = productCustomAttributeIndexEnum_ProductCustomAttributeIndexToJSON(message.index);
        }
        return obj;
    },
    create(base) {
        return ProductCustomAttributeInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a, _b;
        const message = createBaseProductCustomAttributeInfo();
        message.value = (_a = object.value) !== null && _a !== void 0 ? _a : undefined;
        message.index = (_b = object.index) !== null && _b !== void 0 ? _b : 0;
        return message;
    },
};
function createBaseProductItemIdInfo() {
    return { value: undefined };
}
export const ProductItemIdInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.value !== undefined) {
            writer.uint32(18).string(message.value);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseProductItemIdInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.value = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { value: isSet(object.value) ? globalThis.String(object.value) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.value !== undefined) {
            obj.value = message.value;
        }
        return obj;
    },
    create(base) {
        return ProductItemIdInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseProductItemIdInfo();
        message.value = (_a = object.value) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseProductTypeInfo() {
    return { value: undefined, level: 0 };
}
export const ProductTypeInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.value !== undefined) {
            writer.uint32(26).string(message.value);
        }
        if (message.level !== undefined && message.level !== 0) {
            writer.uint32(16).int32(message.level);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseProductTypeInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 3:
                    if (tag !== 26) {
                        break;
                    }
                    message.value = reader.string();
                    continue;
                case 2:
                    if (tag !== 16) {
                        break;
                    }
                    message.level = reader.int32();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            value: isSet(object.value) ? globalThis.String(object.value) : undefined,
            level: isSet(object.level) ? productTypeLevelEnum_ProductTypeLevelFromJSON(object.level) : 0,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.value !== undefined) {
            obj.value = message.value;
        }
        if (message.level !== undefined && message.level !== 0) {
            obj.level = productTypeLevelEnum_ProductTypeLevelToJSON(message.level);
        }
        return obj;
    },
    create(base) {
        return ProductTypeInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a, _b;
        const message = createBaseProductTypeInfo();
        message.value = (_a = object.value) !== null && _a !== void 0 ? _a : undefined;
        message.level = (_b = object.level) !== null && _b !== void 0 ? _b : 0;
        return message;
    },
};
function createBaseProductGroupingInfo() {
    return { value: undefined };
}
export const ProductGroupingInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.value !== undefined) {
            writer.uint32(10).string(message.value);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseProductGroupingInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.value = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { value: isSet(object.value) ? globalThis.String(object.value) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.value !== undefined) {
            obj.value = message.value;
        }
        return obj;
    },
    create(base) {
        return ProductGroupingInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseProductGroupingInfo();
        message.value = (_a = object.value) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseProductLabelsInfo() {
    return { value: undefined };
}
export const ProductLabelsInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.value !== undefined) {
            writer.uint32(10).string(message.value);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseProductLabelsInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.value = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { value: isSet(object.value) ? globalThis.String(object.value) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.value !== undefined) {
            obj.value = message.value;
        }
        return obj;
    },
    create(base) {
        return ProductLabelsInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseProductLabelsInfo();
        message.value = (_a = object.value) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseProductLegacyConditionInfo() {
    return { value: undefined };
}
export const ProductLegacyConditionInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.value !== undefined) {
            writer.uint32(10).string(message.value);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseProductLegacyConditionInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.value = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { value: isSet(object.value) ? globalThis.String(object.value) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.value !== undefined) {
            obj.value = message.value;
        }
        return obj;
    },
    create(base) {
        return ProductLegacyConditionInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseProductLegacyConditionInfo();
        message.value = (_a = object.value) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseProductTypeFullInfo() {
    return { value: undefined };
}
export const ProductTypeFullInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.value !== undefined) {
            writer.uint32(10).string(message.value);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseProductTypeFullInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.value = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { value: isSet(object.value) ? globalThis.String(object.value) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.value !== undefined) {
            obj.value = message.value;
        }
        return obj;
    },
    create(base) {
        return ProductTypeFullInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseProductTypeFullInfo();
        message.value = (_a = object.value) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseUnknownListingDimensionInfo() {
    return {};
}
export const UnknownListingDimensionInfo = {
    encode(_, writer = _m0.Writer.create()) {
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseUnknownListingDimensionInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(_) {
        return {};
    },
    toJSON(_) {
        const obj = {};
        return obj;
    },
    create(base) {
        return UnknownListingDimensionInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(_) {
        const message = createBaseUnknownListingDimensionInfo();
        return message;
    },
};
function createBaseHotelDateSelectionTypeInfo() {
    return { type: 0 };
}
export const HotelDateSelectionTypeInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.type !== undefined && message.type !== 0) {
            writer.uint32(8).int32(message.type);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseHotelDateSelectionTypeInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 8) {
                        break;
                    }
                    message.type = reader.int32();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { type: isSet(object.type) ? hotelDateSelectionTypeEnum_HotelDateSelectionTypeFromJSON(object.type) : 0 };
    },
    toJSON(message) {
        const obj = {};
        if (message.type !== undefined && message.type !== 0) {
            obj.type = hotelDateSelectionTypeEnum_HotelDateSelectionTypeToJSON(message.type);
        }
        return obj;
    },
    create(base) {
        return HotelDateSelectionTypeInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseHotelDateSelectionTypeInfo();
        message.type = (_a = object.type) !== null && _a !== void 0 ? _a : 0;
        return message;
    },
};
function createBaseHotelAdvanceBookingWindowInfo() {
    return { min_days: undefined, max_days: undefined };
}
export const HotelAdvanceBookingWindowInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.min_days !== undefined) {
            writer.uint32(24).int64(message.min_days);
        }
        if (message.max_days !== undefined) {
            writer.uint32(32).int64(message.max_days);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseHotelAdvanceBookingWindowInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 3:
                    if (tag !== 24) {
                        break;
                    }
                    message.min_days = longToString(reader.int64());
                    continue;
                case 4:
                    if (tag !== 32) {
                        break;
                    }
                    message.max_days = longToString(reader.int64());
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            min_days: isSet(object.min_days) ? globalThis.String(object.min_days) : undefined,
            max_days: isSet(object.max_days) ? globalThis.String(object.max_days) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.min_days !== undefined) {
            obj.min_days = message.min_days;
        }
        if (message.max_days !== undefined) {
            obj.max_days = message.max_days;
        }
        return obj;
    },
    create(base) {
        return HotelAdvanceBookingWindowInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a, _b;
        const message = createBaseHotelAdvanceBookingWindowInfo();
        message.min_days = (_a = object.min_days) !== null && _a !== void 0 ? _a : undefined;
        message.max_days = (_b = object.max_days) !== null && _b !== void 0 ? _b : undefined;
        return message;
    },
};
function createBaseHotelLengthOfStayInfo() {
    return { min_nights: undefined, max_nights: undefined };
}
export const HotelLengthOfStayInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.min_nights !== undefined) {
            writer.uint32(24).int64(message.min_nights);
        }
        if (message.max_nights !== undefined) {
            writer.uint32(32).int64(message.max_nights);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseHotelLengthOfStayInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 3:
                    if (tag !== 24) {
                        break;
                    }
                    message.min_nights = longToString(reader.int64());
                    continue;
                case 4:
                    if (tag !== 32) {
                        break;
                    }
                    message.max_nights = longToString(reader.int64());
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            min_nights: isSet(object.min_nights) ? globalThis.String(object.min_nights) : undefined,
            max_nights: isSet(object.max_nights) ? globalThis.String(object.max_nights) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.min_nights !== undefined) {
            obj.min_nights = message.min_nights;
        }
        if (message.max_nights !== undefined) {
            obj.max_nights = message.max_nights;
        }
        return obj;
    },
    create(base) {
        return HotelLengthOfStayInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a, _b;
        const message = createBaseHotelLengthOfStayInfo();
        message.min_nights = (_a = object.min_nights) !== null && _a !== void 0 ? _a : undefined;
        message.max_nights = (_b = object.max_nights) !== null && _b !== void 0 ? _b : undefined;
        return message;
    },
};
function createBaseHotelCheckInDateRangeInfo() {
    return { start_date: "", end_date: "" };
}
export const HotelCheckInDateRangeInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.start_date !== undefined && message.start_date !== "") {
            writer.uint32(10).string(message.start_date);
        }
        if (message.end_date !== undefined && message.end_date !== "") {
            writer.uint32(18).string(message.end_date);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseHotelCheckInDateRangeInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.start_date = reader.string();
                    continue;
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.end_date = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            start_date: isSet(object.start_date) ? globalThis.String(object.start_date) : "",
            end_date: isSet(object.end_date) ? globalThis.String(object.end_date) : "",
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.start_date !== undefined && message.start_date !== "") {
            obj.start_date = message.start_date;
        }
        if (message.end_date !== undefined && message.end_date !== "") {
            obj.end_date = message.end_date;
        }
        return obj;
    },
    create(base) {
        return HotelCheckInDateRangeInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a, _b;
        const message = createBaseHotelCheckInDateRangeInfo();
        message.start_date = (_a = object.start_date) !== null && _a !== void 0 ? _a : "";
        message.end_date = (_b = object.end_date) !== null && _b !== void 0 ? _b : "";
        return message;
    },
};
function createBaseHotelCheckInDayInfo() {
    return { day_of_week: 0 };
}
export const HotelCheckInDayInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.day_of_week !== undefined && message.day_of_week !== 0) {
            writer.uint32(8).int32(message.day_of_week);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseHotelCheckInDayInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 8) {
                        break;
                    }
                    message.day_of_week = reader.int32();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { day_of_week: isSet(object.day_of_week) ? dayOfWeekEnum_DayOfWeekFromJSON(object.day_of_week) : 0 };
    },
    toJSON(message) {
        const obj = {};
        if (message.day_of_week !== undefined && message.day_of_week !== 0) {
            obj.day_of_week = dayOfWeekEnum_DayOfWeekToJSON(message.day_of_week);
        }
        return obj;
    },
    create(base) {
        return HotelCheckInDayInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseHotelCheckInDayInfo();
        message.day_of_week = (_a = object.day_of_week) !== null && _a !== void 0 ? _a : 0;
        return message;
    },
};
function createBaseActivityIdInfo() {
    return { value: undefined };
}
export const ActivityIdInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.value !== undefined) {
            writer.uint32(10).string(message.value);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseActivityIdInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.value = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { value: isSet(object.value) ? globalThis.String(object.value) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.value !== undefined) {
            obj.value = message.value;
        }
        return obj;
    },
    create(base) {
        return ActivityIdInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseActivityIdInfo();
        message.value = (_a = object.value) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseActivityRatingInfo() {
    return { value: undefined };
}
export const ActivityRatingInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.value !== undefined) {
            writer.uint32(8).int64(message.value);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseActivityRatingInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 8) {
                        break;
                    }
                    message.value = longToString(reader.int64());
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { value: isSet(object.value) ? globalThis.String(object.value) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.value !== undefined) {
            obj.value = message.value;
        }
        return obj;
    },
    create(base) {
        return ActivityRatingInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseActivityRatingInfo();
        message.value = (_a = object.value) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseActivityCountryInfo() {
    return { value: undefined };
}
export const ActivityCountryInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.value !== undefined) {
            writer.uint32(10).string(message.value);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseActivityCountryInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.value = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { value: isSet(object.value) ? globalThis.String(object.value) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.value !== undefined) {
            obj.value = message.value;
        }
        return obj;
    },
    create(base) {
        return ActivityCountryInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseActivityCountryInfo();
        message.value = (_a = object.value) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseActivityStateInfo() {
    return { value: undefined };
}
export const ActivityStateInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.value !== undefined) {
            writer.uint32(10).string(message.value);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseActivityStateInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.value = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { value: isSet(object.value) ? globalThis.String(object.value) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.value !== undefined) {
            obj.value = message.value;
        }
        return obj;
    },
    create(base) {
        return ActivityStateInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseActivityStateInfo();
        message.value = (_a = object.value) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseActivityCityInfo() {
    return { value: undefined };
}
export const ActivityCityInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.value !== undefined) {
            writer.uint32(10).string(message.value);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseActivityCityInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.value = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { value: isSet(object.value) ? globalThis.String(object.value) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.value !== undefined) {
            obj.value = message.value;
        }
        return obj;
    },
    create(base) {
        return ActivityCityInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseActivityCityInfo();
        message.value = (_a = object.value) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseInteractionTypeInfo() {
    return { type: 0 };
}
export const InteractionTypeInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.type !== undefined && message.type !== 0) {
            writer.uint32(8).int32(message.type);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseInteractionTypeInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 8) {
                        break;
                    }
                    message.type = reader.int32();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { type: isSet(object.type) ? interactionTypeEnum_InteractionTypeFromJSON(object.type) : 0 };
    },
    toJSON(message) {
        const obj = {};
        if (message.type !== undefined && message.type !== 0) {
            obj.type = interactionTypeEnum_InteractionTypeToJSON(message.type);
        }
        return obj;
    },
    create(base) {
        return InteractionTypeInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseInteractionTypeInfo();
        message.type = (_a = object.type) !== null && _a !== void 0 ? _a : 0;
        return message;
    },
};
function createBaseAdScheduleInfo() {
    return { start_minute: 0, end_minute: 0, start_hour: undefined, end_hour: undefined, day_of_week: 0 };
}
export const AdScheduleInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.start_minute !== undefined && message.start_minute !== 0) {
            writer.uint32(8).int32(message.start_minute);
        }
        if (message.end_minute !== undefined && message.end_minute !== 0) {
            writer.uint32(16).int32(message.end_minute);
        }
        if (message.start_hour !== undefined) {
            writer.uint32(48).int32(message.start_hour);
        }
        if (message.end_hour !== undefined) {
            writer.uint32(56).int32(message.end_hour);
        }
        if (message.day_of_week !== undefined && message.day_of_week !== 0) {
            writer.uint32(40).int32(message.day_of_week);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseAdScheduleInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 8) {
                        break;
                    }
                    message.start_minute = reader.int32();
                    continue;
                case 2:
                    if (tag !== 16) {
                        break;
                    }
                    message.end_minute = reader.int32();
                    continue;
                case 6:
                    if (tag !== 48) {
                        break;
                    }
                    message.start_hour = reader.int32();
                    continue;
                case 7:
                    if (tag !== 56) {
                        break;
                    }
                    message.end_hour = reader.int32();
                    continue;
                case 5:
                    if (tag !== 40) {
                        break;
                    }
                    message.day_of_week = reader.int32();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            start_minute: isSet(object.start_minute) ? minuteOfHourEnum_MinuteOfHourFromJSON(object.start_minute) : 0,
            end_minute: isSet(object.end_minute) ? minuteOfHourEnum_MinuteOfHourFromJSON(object.end_minute) : 0,
            start_hour: isSet(object.start_hour) ? globalThis.Number(object.start_hour) : undefined,
            end_hour: isSet(object.end_hour) ? globalThis.Number(object.end_hour) : undefined,
            day_of_week: isSet(object.day_of_week) ? dayOfWeekEnum_DayOfWeekFromJSON(object.day_of_week) : 0,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.start_minute !== undefined && message.start_minute !== 0) {
            obj.start_minute = minuteOfHourEnum_MinuteOfHourToJSON(message.start_minute);
        }
        if (message.end_minute !== undefined && message.end_minute !== 0) {
            obj.end_minute = minuteOfHourEnum_MinuteOfHourToJSON(message.end_minute);
        }
        if (message.start_hour !== undefined) {
            obj.start_hour = Math.round(message.start_hour);
        }
        if (message.end_hour !== undefined) {
            obj.end_hour = Math.round(message.end_hour);
        }
        if (message.day_of_week !== undefined && message.day_of_week !== 0) {
            obj.day_of_week = dayOfWeekEnum_DayOfWeekToJSON(message.day_of_week);
        }
        return obj;
    },
    create(base) {
        return AdScheduleInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a, _b, _c, _d, _e;
        const message = createBaseAdScheduleInfo();
        message.start_minute = (_a = object.start_minute) !== null && _a !== void 0 ? _a : 0;
        message.end_minute = (_b = object.end_minute) !== null && _b !== void 0 ? _b : 0;
        message.start_hour = (_c = object.start_hour) !== null && _c !== void 0 ? _c : undefined;
        message.end_hour = (_d = object.end_hour) !== null && _d !== void 0 ? _d : undefined;
        message.day_of_week = (_e = object.day_of_week) !== null && _e !== void 0 ? _e : 0;
        return message;
    },
};
function createBaseAgeRangeInfo() {
    return { type: 0 };
}
export const AgeRangeInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.type !== undefined && message.type !== 0) {
            writer.uint32(8).int32(message.type);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseAgeRangeInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 8) {
                        break;
                    }
                    message.type = reader.int32();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { type: isSet(object.type) ? ageRangeTypeEnum_AgeRangeTypeFromJSON(object.type) : 0 };
    },
    toJSON(message) {
        const obj = {};
        if (message.type !== undefined && message.type !== 0) {
            obj.type = ageRangeTypeEnum_AgeRangeTypeToJSON(message.type);
        }
        return obj;
    },
    create(base) {
        return AgeRangeInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseAgeRangeInfo();
        message.type = (_a = object.type) !== null && _a !== void 0 ? _a : 0;
        return message;
    },
};
function createBaseGenderInfo() {
    return { type: 0 };
}
export const GenderInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.type !== undefined && message.type !== 0) {
            writer.uint32(8).int32(message.type);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseGenderInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 8) {
                        break;
                    }
                    message.type = reader.int32();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { type: isSet(object.type) ? genderTypeEnum_GenderTypeFromJSON(object.type) : 0 };
    },
    toJSON(message) {
        const obj = {};
        if (message.type !== undefined && message.type !== 0) {
            obj.type = genderTypeEnum_GenderTypeToJSON(message.type);
        }
        return obj;
    },
    create(base) {
        return GenderInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseGenderInfo();
        message.type = (_a = object.type) !== null && _a !== void 0 ? _a : 0;
        return message;
    },
};
function createBaseIncomeRangeInfo() {
    return { type: 0 };
}
export const IncomeRangeInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.type !== undefined && message.type !== 0) {
            writer.uint32(8).int32(message.type);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseIncomeRangeInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 8) {
                        break;
                    }
                    message.type = reader.int32();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { type: isSet(object.type) ? incomeRangeTypeEnum_IncomeRangeTypeFromJSON(object.type) : 0 };
    },
    toJSON(message) {
        const obj = {};
        if (message.type !== undefined && message.type !== 0) {
            obj.type = incomeRangeTypeEnum_IncomeRangeTypeToJSON(message.type);
        }
        return obj;
    },
    create(base) {
        return IncomeRangeInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseIncomeRangeInfo();
        message.type = (_a = object.type) !== null && _a !== void 0 ? _a : 0;
        return message;
    },
};
function createBaseParentalStatusInfo() {
    return { type: 0 };
}
export const ParentalStatusInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.type !== undefined && message.type !== 0) {
            writer.uint32(8).int32(message.type);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseParentalStatusInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 8) {
                        break;
                    }
                    message.type = reader.int32();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { type: isSet(object.type) ? parentalStatusTypeEnum_ParentalStatusTypeFromJSON(object.type) : 0 };
    },
    toJSON(message) {
        const obj = {};
        if (message.type !== undefined && message.type !== 0) {
            obj.type = parentalStatusTypeEnum_ParentalStatusTypeToJSON(message.type);
        }
        return obj;
    },
    create(base) {
        return ParentalStatusInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseParentalStatusInfo();
        message.type = (_a = object.type) !== null && _a !== void 0 ? _a : 0;
        return message;
    },
};
function createBaseYouTubeVideoInfo() {
    return { video_id: undefined };
}
export const YouTubeVideoInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.video_id !== undefined) {
            writer.uint32(18).string(message.video_id);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseYouTubeVideoInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.video_id = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { video_id: isSet(object.video_id) ? globalThis.String(object.video_id) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.video_id !== undefined) {
            obj.video_id = message.video_id;
        }
        return obj;
    },
    create(base) {
        return YouTubeVideoInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseYouTubeVideoInfo();
        message.video_id = (_a = object.video_id) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseYouTubeChannelInfo() {
    return { channel_id: undefined };
}
export const YouTubeChannelInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.channel_id !== undefined) {
            writer.uint32(18).string(message.channel_id);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseYouTubeChannelInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.channel_id = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { channel_id: isSet(object.channel_id) ? globalThis.String(object.channel_id) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.channel_id !== undefined) {
            obj.channel_id = message.channel_id;
        }
        return obj;
    },
    create(base) {
        return YouTubeChannelInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseYouTubeChannelInfo();
        message.channel_id = (_a = object.channel_id) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseUserListInfo() {
    return { user_list: undefined };
}
export const UserListInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.user_list !== undefined) {
            writer.uint32(18).string(message.user_list);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseUserListInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.user_list = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { user_list: isSet(object.user_list) ? globalThis.String(object.user_list) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.user_list !== undefined) {
            obj.user_list = message.user_list;
        }
        return obj;
    },
    create(base) {
        return UserListInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseUserListInfo();
        message.user_list = (_a = object.user_list) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseProximityInfo() {
    return { geo_point: undefined, radius: undefined, radius_units: 0, address: undefined };
}
export const ProximityInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.geo_point !== undefined) {
            GeoPointInfo.encode(message.geo_point, writer.uint32(10).fork()).ldelim();
        }
        if (message.radius !== undefined) {
            writer.uint32(41).double(message.radius);
        }
        if (message.radius_units !== undefined && message.radius_units !== 0) {
            writer.uint32(24).int32(message.radius_units);
        }
        if (message.address !== undefined) {
            AddressInfo.encode(message.address, writer.uint32(34).fork()).ldelim();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseProximityInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.geo_point = GeoPointInfo.decode(reader, reader.uint32());
                    continue;
                case 5:
                    if (tag !== 41) {
                        break;
                    }
                    message.radius = reader.double();
                    continue;
                case 3:
                    if (tag !== 24) {
                        break;
                    }
                    message.radius_units = reader.int32();
                    continue;
                case 4:
                    if (tag !== 34) {
                        break;
                    }
                    message.address = AddressInfo.decode(reader, reader.uint32());
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            geo_point: isSet(object.geo_point) ? GeoPointInfo.fromJSON(object.geo_point) : undefined,
            radius: isSet(object.radius) ? globalThis.Number(object.radius) : undefined,
            radius_units: isSet(object.radius_units)
                ? proximityRadiusUnitsEnum_ProximityRadiusUnitsFromJSON(object.radius_units)
                : 0,
            address: isSet(object.address) ? AddressInfo.fromJSON(object.address) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.geo_point !== undefined) {
            obj.geo_point = GeoPointInfo.toJSON(message.geo_point);
        }
        if (message.radius !== undefined) {
            obj.radius = message.radius;
        }
        if (message.radius_units !== undefined && message.radius_units !== 0) {
            obj.radius_units = proximityRadiusUnitsEnum_ProximityRadiusUnitsToJSON(message.radius_units);
        }
        if (message.address !== undefined) {
            obj.address = AddressInfo.toJSON(message.address);
        }
        return obj;
    },
    create(base) {
        return ProximityInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a, _b;
        const message = createBaseProximityInfo();
        message.geo_point = (object.geo_point !== undefined && object.geo_point !== null)
            ? GeoPointInfo.fromPartial(object.geo_point)
            : undefined;
        message.radius = (_a = object.radius) !== null && _a !== void 0 ? _a : undefined;
        message.radius_units = (_b = object.radius_units) !== null && _b !== void 0 ? _b : 0;
        message.address = (object.address !== undefined && object.address !== null)
            ? AddressInfo.fromPartial(object.address)
            : undefined;
        return message;
    },
};
function createBaseGeoPointInfo() {
    return { longitude_in_micro_degrees: undefined, latitude_in_micro_degrees: undefined };
}
export const GeoPointInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.longitude_in_micro_degrees !== undefined) {
            writer.uint32(24).int32(message.longitude_in_micro_degrees);
        }
        if (message.latitude_in_micro_degrees !== undefined) {
            writer.uint32(32).int32(message.latitude_in_micro_degrees);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseGeoPointInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 3:
                    if (tag !== 24) {
                        break;
                    }
                    message.longitude_in_micro_degrees = reader.int32();
                    continue;
                case 4:
                    if (tag !== 32) {
                        break;
                    }
                    message.latitude_in_micro_degrees = reader.int32();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            longitude_in_micro_degrees: isSet(object.longitude_in_micro_degrees)
                ? globalThis.Number(object.longitude_in_micro_degrees)
                : undefined,
            latitude_in_micro_degrees: isSet(object.latitude_in_micro_degrees)
                ? globalThis.Number(object.latitude_in_micro_degrees)
                : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.longitude_in_micro_degrees !== undefined) {
            obj.longitude_in_micro_degrees = Math.round(message.longitude_in_micro_degrees);
        }
        if (message.latitude_in_micro_degrees !== undefined) {
            obj.latitude_in_micro_degrees = Math.round(message.latitude_in_micro_degrees);
        }
        return obj;
    },
    create(base) {
        return GeoPointInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a, _b;
        const message = createBaseGeoPointInfo();
        message.longitude_in_micro_degrees = (_a = object.longitude_in_micro_degrees) !== null && _a !== void 0 ? _a : undefined;
        message.latitude_in_micro_degrees = (_b = object.latitude_in_micro_degrees) !== null && _b !== void 0 ? _b : undefined;
        return message;
    },
};
function createBaseAddressInfo() {
    return {
        postal_code: undefined,
        province_code: undefined,
        country_code: undefined,
        province_name: undefined,
        street_address: undefined,
        street_address2: undefined,
        city_name: undefined,
    };
}
export const AddressInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.postal_code !== undefined) {
            writer.uint32(66).string(message.postal_code);
        }
        if (message.province_code !== undefined) {
            writer.uint32(74).string(message.province_code);
        }
        if (message.country_code !== undefined) {
            writer.uint32(82).string(message.country_code);
        }
        if (message.province_name !== undefined) {
            writer.uint32(90).string(message.province_name);
        }
        if (message.street_address !== undefined) {
            writer.uint32(98).string(message.street_address);
        }
        if (message.street_address2 !== undefined) {
            writer.uint32(106).string(message.street_address2);
        }
        if (message.city_name !== undefined) {
            writer.uint32(114).string(message.city_name);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseAddressInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 8:
                    if (tag !== 66) {
                        break;
                    }
                    message.postal_code = reader.string();
                    continue;
                case 9:
                    if (tag !== 74) {
                        break;
                    }
                    message.province_code = reader.string();
                    continue;
                case 10:
                    if (tag !== 82) {
                        break;
                    }
                    message.country_code = reader.string();
                    continue;
                case 11:
                    if (tag !== 90) {
                        break;
                    }
                    message.province_name = reader.string();
                    continue;
                case 12:
                    if (tag !== 98) {
                        break;
                    }
                    message.street_address = reader.string();
                    continue;
                case 13:
                    if (tag !== 106) {
                        break;
                    }
                    message.street_address2 = reader.string();
                    continue;
                case 14:
                    if (tag !== 114) {
                        break;
                    }
                    message.city_name = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            postal_code: isSet(object.postal_code) ? globalThis.String(object.postal_code) : undefined,
            province_code: isSet(object.province_code) ? globalThis.String(object.province_code) : undefined,
            country_code: isSet(object.country_code) ? globalThis.String(object.country_code) : undefined,
            province_name: isSet(object.province_name) ? globalThis.String(object.province_name) : undefined,
            street_address: isSet(object.street_address) ? globalThis.String(object.street_address) : undefined,
            street_address2: isSet(object.street_address2) ? globalThis.String(object.street_address2) : undefined,
            city_name: isSet(object.city_name) ? globalThis.String(object.city_name) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.postal_code !== undefined) {
            obj.postal_code = message.postal_code;
        }
        if (message.province_code !== undefined) {
            obj.province_code = message.province_code;
        }
        if (message.country_code !== undefined) {
            obj.country_code = message.country_code;
        }
        if (message.province_name !== undefined) {
            obj.province_name = message.province_name;
        }
        if (message.street_address !== undefined) {
            obj.street_address = message.street_address;
        }
        if (message.street_address2 !== undefined) {
            obj.street_address2 = message.street_address2;
        }
        if (message.city_name !== undefined) {
            obj.city_name = message.city_name;
        }
        return obj;
    },
    create(base) {
        return AddressInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a, _b, _c, _d, _e, _f, _g;
        const message = createBaseAddressInfo();
        message.postal_code = (_a = object.postal_code) !== null && _a !== void 0 ? _a : undefined;
        message.province_code = (_b = object.province_code) !== null && _b !== void 0 ? _b : undefined;
        message.country_code = (_c = object.country_code) !== null && _c !== void 0 ? _c : undefined;
        message.province_name = (_d = object.province_name) !== null && _d !== void 0 ? _d : undefined;
        message.street_address = (_e = object.street_address) !== null && _e !== void 0 ? _e : undefined;
        message.street_address2 = (_f = object.street_address2) !== null && _f !== void 0 ? _f : undefined;
        message.city_name = (_g = object.city_name) !== null && _g !== void 0 ? _g : undefined;
        return message;
    },
};
function createBaseTopicInfo() {
    return { topic_constant: undefined, path: [] };
}
export const TopicInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.topic_constant !== undefined) {
            writer.uint32(26).string(message.topic_constant);
        }
        if (message.path !== undefined && message.path.length !== 0) {
            for (const v of message.path) {
                writer.uint32(34).string(v);
            }
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseTopicInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 3:
                    if (tag !== 26) {
                        break;
                    }
                    message.topic_constant = reader.string();
                    continue;
                case 4:
                    if (tag !== 34) {
                        break;
                    }
                    message.path.push(reader.string());
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            topic_constant: isSet(object.topic_constant) ? globalThis.String(object.topic_constant) : undefined,
            path: globalThis.Array.isArray(object === null || object === void 0 ? void 0 : object.path) ? object.path.map((e) => globalThis.String(e)) : [],
        };
    },
    toJSON(message) {
        var _a;
        const obj = {};
        if (message.topic_constant !== undefined) {
            obj.topic_constant = message.topic_constant;
        }
        if ((_a = message.path) === null || _a === void 0 ? void 0 : _a.length) {
            obj.path = message.path;
        }
        return obj;
    },
    create(base) {
        return TopicInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a, _b;
        const message = createBaseTopicInfo();
        message.topic_constant = (_a = object.topic_constant) !== null && _a !== void 0 ? _a : undefined;
        message.path = ((_b = object.path) === null || _b === void 0 ? void 0 : _b.map((e) => e)) || [];
        return message;
    },
};
function createBaseLanguageInfo() {
    return { language_constant: undefined };
}
export const LanguageInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.language_constant !== undefined) {
            writer.uint32(18).string(message.language_constant);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseLanguageInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.language_constant = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            language_constant: isSet(object.language_constant) ? globalThis.String(object.language_constant) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.language_constant !== undefined) {
            obj.language_constant = message.language_constant;
        }
        return obj;
    },
    create(base) {
        return LanguageInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseLanguageInfo();
        message.language_constant = (_a = object.language_constant) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseIpBlockInfo() {
    return { ip_address: undefined };
}
export const IpBlockInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.ip_address !== undefined) {
            writer.uint32(18).string(message.ip_address);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseIpBlockInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.ip_address = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { ip_address: isSet(object.ip_address) ? globalThis.String(object.ip_address) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.ip_address !== undefined) {
            obj.ip_address = message.ip_address;
        }
        return obj;
    },
    create(base) {
        return IpBlockInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseIpBlockInfo();
        message.ip_address = (_a = object.ip_address) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseContentLabelInfo() {
    return { type: 0 };
}
export const ContentLabelInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.type !== undefined && message.type !== 0) {
            writer.uint32(8).int32(message.type);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseContentLabelInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 8) {
                        break;
                    }
                    message.type = reader.int32();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { type: isSet(object.type) ? contentLabelTypeEnum_ContentLabelTypeFromJSON(object.type) : 0 };
    },
    toJSON(message) {
        const obj = {};
        if (message.type !== undefined && message.type !== 0) {
            obj.type = contentLabelTypeEnum_ContentLabelTypeToJSON(message.type);
        }
        return obj;
    },
    create(base) {
        return ContentLabelInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseContentLabelInfo();
        message.type = (_a = object.type) !== null && _a !== void 0 ? _a : 0;
        return message;
    },
};
function createBaseCarrierInfo() {
    return { carrier_constant: undefined };
}
export const CarrierInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.carrier_constant !== undefined) {
            writer.uint32(18).string(message.carrier_constant);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseCarrierInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.carrier_constant = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            carrier_constant: isSet(object.carrier_constant) ? globalThis.String(object.carrier_constant) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.carrier_constant !== undefined) {
            obj.carrier_constant = message.carrier_constant;
        }
        return obj;
    },
    create(base) {
        return CarrierInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseCarrierInfo();
        message.carrier_constant = (_a = object.carrier_constant) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseUserInterestInfo() {
    return { user_interest_category: undefined };
}
export const UserInterestInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.user_interest_category !== undefined) {
            writer.uint32(18).string(message.user_interest_category);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseUserInterestInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.user_interest_category = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            user_interest_category: isSet(object.user_interest_category)
                ? globalThis.String(object.user_interest_category)
                : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.user_interest_category !== undefined) {
            obj.user_interest_category = message.user_interest_category;
        }
        return obj;
    },
    create(base) {
        return UserInterestInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseUserInterestInfo();
        message.user_interest_category = (_a = object.user_interest_category) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseWebpageInfo() {
    return { criterion_name: undefined, conditions: [], coverage_percentage: 0, sample: undefined };
}
export const WebpageInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.criterion_name !== undefined) {
            writer.uint32(26).string(message.criterion_name);
        }
        if (message.conditions !== undefined && message.conditions.length !== 0) {
            for (const v of message.conditions) {
                WebpageConditionInfo.encode(v, writer.uint32(18).fork()).ldelim();
            }
        }
        if (message.coverage_percentage !== undefined && message.coverage_percentage !== 0) {
            writer.uint32(33).double(message.coverage_percentage);
        }
        if (message.sample !== undefined) {
            WebpageSampleInfo.encode(message.sample, writer.uint32(42).fork()).ldelim();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebpageInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 3:
                    if (tag !== 26) {
                        break;
                    }
                    message.criterion_name = reader.string();
                    continue;
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.conditions.push(WebpageConditionInfo.decode(reader, reader.uint32()));
                    continue;
                case 4:
                    if (tag !== 33) {
                        break;
                    }
                    message.coverage_percentage = reader.double();
                    continue;
                case 5:
                    if (tag !== 42) {
                        break;
                    }
                    message.sample = WebpageSampleInfo.decode(reader, reader.uint32());
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            criterion_name: isSet(object.criterion_name) ? globalThis.String(object.criterion_name) : undefined,
            conditions: globalThis.Array.isArray(object === null || object === void 0 ? void 0 : object.conditions)
                ? object.conditions.map((e) => WebpageConditionInfo.fromJSON(e))
                : [],
            coverage_percentage: isSet(object.coverage_percentage) ? globalThis.Number(object.coverage_percentage) : 0,
            sample: isSet(object.sample) ? WebpageSampleInfo.fromJSON(object.sample) : undefined,
        };
    },
    toJSON(message) {
        var _a;
        const obj = {};
        if (message.criterion_name !== undefined) {
            obj.criterion_name = message.criterion_name;
        }
        if ((_a = message.conditions) === null || _a === void 0 ? void 0 : _a.length) {
            obj.conditions = message.conditions.map((e) => WebpageConditionInfo.toJSON(e));
        }
        if (message.coverage_percentage !== undefined && message.coverage_percentage !== 0) {
            obj.coverage_percentage = message.coverage_percentage;
        }
        if (message.sample !== undefined) {
            obj.sample = WebpageSampleInfo.toJSON(message.sample);
        }
        return obj;
    },
    create(base) {
        return WebpageInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a, _b, _c;
        const message = createBaseWebpageInfo();
        message.criterion_name = (_a = object.criterion_name) !== null && _a !== void 0 ? _a : undefined;
        message.conditions = ((_b = object.conditions) === null || _b === void 0 ? void 0 : _b.map((e) => WebpageConditionInfo.fromPartial(e))) || [];
        message.coverage_percentage = (_c = object.coverage_percentage) !== null && _c !== void 0 ? _c : 0;
        message.sample = (object.sample !== undefined && object.sample !== null)
            ? WebpageSampleInfo.fromPartial(object.sample)
            : undefined;
        return message;
    },
};
function createBaseWebpageConditionInfo() {
    return { operand: 0, operator: 0, argument: undefined };
}
export const WebpageConditionInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.operand !== undefined && message.operand !== 0) {
            writer.uint32(8).int32(message.operand);
        }
        if (message.operator !== undefined && message.operator !== 0) {
            writer.uint32(16).int32(message.operator);
        }
        if (message.argument !== undefined) {
            writer.uint32(34).string(message.argument);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebpageConditionInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 8) {
                        break;
                    }
                    message.operand = reader.int32();
                    continue;
                case 2:
                    if (tag !== 16) {
                        break;
                    }
                    message.operator = reader.int32();
                    continue;
                case 4:
                    if (tag !== 34) {
                        break;
                    }
                    message.argument = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            operand: isSet(object.operand) ? webpageConditionOperandEnum_WebpageConditionOperandFromJSON(object.operand) : 0,
            operator: isSet(object.operator)
                ? webpageConditionOperatorEnum_WebpageConditionOperatorFromJSON(object.operator)
                : 0,
            argument: isSet(object.argument) ? globalThis.String(object.argument) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.operand !== undefined && message.operand !== 0) {
            obj.operand = webpageConditionOperandEnum_WebpageConditionOperandToJSON(message.operand);
        }
        if (message.operator !== undefined && message.operator !== 0) {
            obj.operator = webpageConditionOperatorEnum_WebpageConditionOperatorToJSON(message.operator);
        }
        if (message.argument !== undefined) {
            obj.argument = message.argument;
        }
        return obj;
    },
    create(base) {
        return WebpageConditionInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a, _b, _c;
        const message = createBaseWebpageConditionInfo();
        message.operand = (_a = object.operand) !== null && _a !== void 0 ? _a : 0;
        message.operator = (_b = object.operator) !== null && _b !== void 0 ? _b : 0;
        message.argument = (_c = object.argument) !== null && _c !== void 0 ? _c : undefined;
        return message;
    },
};
function createBaseWebpageListInfo() {
    return { shared_set: undefined };
}
export const WebpageListInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.shared_set !== undefined) {
            writer.uint32(10).string(message.shared_set);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebpageListInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.shared_set = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { shared_set: isSet(object.shared_set) ? globalThis.String(object.shared_set) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.shared_set !== undefined) {
            obj.shared_set = message.shared_set;
        }
        return obj;
    },
    create(base) {
        return WebpageListInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseWebpageListInfo();
        message.shared_set = (_a = object.shared_set) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseWebpageSampleInfo() {
    return { sample_urls: [] };
}
export const WebpageSampleInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.sample_urls !== undefined && message.sample_urls.length !== 0) {
            for (const v of message.sample_urls) {
                writer.uint32(10).string(v);
            }
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseWebpageSampleInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.sample_urls.push(reader.string());
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            sample_urls: globalThis.Array.isArray(object === null || object === void 0 ? void 0 : object.sample_urls)
                ? object.sample_urls.map((e) => globalThis.String(e))
                : [],
        };
    },
    toJSON(message) {
        var _a;
        const obj = {};
        if ((_a = message.sample_urls) === null || _a === void 0 ? void 0 : _a.length) {
            obj.sample_urls = message.sample_urls;
        }
        return obj;
    },
    create(base) {
        return WebpageSampleInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseWebpageSampleInfo();
        message.sample_urls = ((_a = object.sample_urls) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];
        return message;
    },
};
function createBaseOperatingSystemVersionInfo() {
    return { operating_system_version_constant: undefined };
}
export const OperatingSystemVersionInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.operating_system_version_constant !== undefined) {
            writer.uint32(18).string(message.operating_system_version_constant);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseOperatingSystemVersionInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.operating_system_version_constant = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            operating_system_version_constant: isSet(object.operating_system_version_constant)
                ? globalThis.String(object.operating_system_version_constant)
                : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.operating_system_version_constant !== undefined) {
            obj.operating_system_version_constant = message.operating_system_version_constant;
        }
        return obj;
    },
    create(base) {
        return OperatingSystemVersionInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseOperatingSystemVersionInfo();
        message.operating_system_version_constant = (_a = object.operating_system_version_constant) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseAppPaymentModelInfo() {
    return { type: 0 };
}
export const AppPaymentModelInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.type !== undefined && message.type !== 0) {
            writer.uint32(8).int32(message.type);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseAppPaymentModelInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 8) {
                        break;
                    }
                    message.type = reader.int32();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { type: isSet(object.type) ? appPaymentModelTypeEnum_AppPaymentModelTypeFromJSON(object.type) : 0 };
    },
    toJSON(message) {
        const obj = {};
        if (message.type !== undefined && message.type !== 0) {
            obj.type = appPaymentModelTypeEnum_AppPaymentModelTypeToJSON(message.type);
        }
        return obj;
    },
    create(base) {
        return AppPaymentModelInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseAppPaymentModelInfo();
        message.type = (_a = object.type) !== null && _a !== void 0 ? _a : 0;
        return message;
    },
};
function createBaseMobileDeviceInfo() {
    return { mobile_device_constant: undefined };
}
export const MobileDeviceInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.mobile_device_constant !== undefined) {
            writer.uint32(18).string(message.mobile_device_constant);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseMobileDeviceInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.mobile_device_constant = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            mobile_device_constant: isSet(object.mobile_device_constant)
                ? globalThis.String(object.mobile_device_constant)
                : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.mobile_device_constant !== undefined) {
            obj.mobile_device_constant = message.mobile_device_constant;
        }
        return obj;
    },
    create(base) {
        return MobileDeviceInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseMobileDeviceInfo();
        message.mobile_device_constant = (_a = object.mobile_device_constant) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseCustomAffinityInfo() {
    return { custom_affinity: undefined };
}
export const CustomAffinityInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.custom_affinity !== undefined) {
            writer.uint32(18).string(message.custom_affinity);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseCustomAffinityInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.custom_affinity = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { custom_affinity: isSet(object.custom_affinity) ? globalThis.String(object.custom_affinity) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.custom_affinity !== undefined) {
            obj.custom_affinity = message.custom_affinity;
        }
        return obj;
    },
    create(base) {
        return CustomAffinityInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseCustomAffinityInfo();
        message.custom_affinity = (_a = object.custom_affinity) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseCustomIntentInfo() {
    return { custom_intent: undefined };
}
export const CustomIntentInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.custom_intent !== undefined) {
            writer.uint32(18).string(message.custom_intent);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseCustomIntentInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.custom_intent = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { custom_intent: isSet(object.custom_intent) ? globalThis.String(object.custom_intent) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.custom_intent !== undefined) {
            obj.custom_intent = message.custom_intent;
        }
        return obj;
    },
    create(base) {
        return CustomIntentInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseCustomIntentInfo();
        message.custom_intent = (_a = object.custom_intent) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseLocationGroupInfo() {
    return {
        geo_target_constants: [],
        radius: undefined,
        radius_units: 0,
        feed_item_sets: [],
        enable_customer_level_location_asset_set: undefined,
        location_group_asset_sets: [],
    };
}
export const LocationGroupInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.geo_target_constants !== undefined && message.geo_target_constants.length !== 0) {
            for (const v of message.geo_target_constants) {
                writer.uint32(50).string(v);
            }
        }
        if (message.radius !== undefined) {
            writer.uint32(56).int64(message.radius);
        }
        if (message.radius_units !== undefined && message.radius_units !== 0) {
            writer.uint32(32).int32(message.radius_units);
        }
        if (message.feed_item_sets !== undefined && message.feed_item_sets.length !== 0) {
            for (const v of message.feed_item_sets) {
                writer.uint32(66).string(v);
            }
        }
        if (message.enable_customer_level_location_asset_set !== undefined) {
            writer.uint32(72).bool(message.enable_customer_level_location_asset_set);
        }
        if (message.location_group_asset_sets !== undefined && message.location_group_asset_sets.length !== 0) {
            for (const v of message.location_group_asset_sets) {
                writer.uint32(82).string(v);
            }
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseLocationGroupInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 6:
                    if (tag !== 50) {
                        break;
                    }
                    message.geo_target_constants.push(reader.string());
                    continue;
                case 7:
                    if (tag !== 56) {
                        break;
                    }
                    message.radius = longToString(reader.int64());
                    continue;
                case 4:
                    if (tag !== 32) {
                        break;
                    }
                    message.radius_units = reader.int32();
                    continue;
                case 8:
                    if (tag !== 66) {
                        break;
                    }
                    message.feed_item_sets.push(reader.string());
                    continue;
                case 9:
                    if (tag !== 72) {
                        break;
                    }
                    message.enable_customer_level_location_asset_set = reader.bool();
                    continue;
                case 10:
                    if (tag !== 82) {
                        break;
                    }
                    message.location_group_asset_sets.push(reader.string());
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            geo_target_constants: globalThis.Array.isArray(object === null || object === void 0 ? void 0 : object.geo_target_constants)
                ? object.geo_target_constants.map((e) => globalThis.String(e))
                : [],
            radius: isSet(object.radius) ? globalThis.String(object.radius) : undefined,
            radius_units: isSet(object.radius_units)
                ? locationGroupRadiusUnitsEnum_LocationGroupRadiusUnitsFromJSON(object.radius_units)
                : 0,
            feed_item_sets: globalThis.Array.isArray(object === null || object === void 0 ? void 0 : object.feed_item_sets)
                ? object.feed_item_sets.map((e) => globalThis.String(e))
                : [],
            enable_customer_level_location_asset_set: isSet(object.enable_customer_level_location_asset_set)
                ? globalThis.Boolean(object.enable_customer_level_location_asset_set)
                : undefined,
            location_group_asset_sets: globalThis.Array.isArray(object === null || object === void 0 ? void 0 : object.location_group_asset_sets)
                ? object.location_group_asset_sets.map((e) => globalThis.String(e))
                : [],
        };
    },
    toJSON(message) {
        var _a, _b, _c;
        const obj = {};
        if ((_a = message.geo_target_constants) === null || _a === void 0 ? void 0 : _a.length) {
            obj.geo_target_constants = message.geo_target_constants;
        }
        if (message.radius !== undefined) {
            obj.radius = message.radius;
        }
        if (message.radius_units !== undefined && message.radius_units !== 0) {
            obj.radius_units = locationGroupRadiusUnitsEnum_LocationGroupRadiusUnitsToJSON(message.radius_units);
        }
        if ((_b = message.feed_item_sets) === null || _b === void 0 ? void 0 : _b.length) {
            obj.feed_item_sets = message.feed_item_sets;
        }
        if (message.enable_customer_level_location_asset_set !== undefined) {
            obj.enable_customer_level_location_asset_set = message.enable_customer_level_location_asset_set;
        }
        if ((_c = message.location_group_asset_sets) === null || _c === void 0 ? void 0 : _c.length) {
            obj.location_group_asset_sets = message.location_group_asset_sets;
        }
        return obj;
    },
    create(base) {
        return LocationGroupInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a, _b, _c, _d, _e, _f;
        const message = createBaseLocationGroupInfo();
        message.geo_target_constants = ((_a = object.geo_target_constants) === null || _a === void 0 ? void 0 : _a.map((e) => e)) || [];
        message.radius = (_b = object.radius) !== null && _b !== void 0 ? _b : undefined;
        message.radius_units = (_c = object.radius_units) !== null && _c !== void 0 ? _c : 0;
        message.feed_item_sets = ((_d = object.feed_item_sets) === null || _d === void 0 ? void 0 : _d.map((e) => e)) || [];
        message.enable_customer_level_location_asset_set = (_e = object.enable_customer_level_location_asset_set) !== null && _e !== void 0 ? _e : undefined;
        message.location_group_asset_sets = ((_f = object.location_group_asset_sets) === null || _f === void 0 ? void 0 : _f.map((e) => e)) || [];
        return message;
    },
};
function createBaseCustomAudienceInfo() {
    return { custom_audience: "" };
}
export const CustomAudienceInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.custom_audience !== undefined && message.custom_audience !== "") {
            writer.uint32(10).string(message.custom_audience);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseCustomAudienceInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.custom_audience = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { custom_audience: isSet(object.custom_audience) ? globalThis.String(object.custom_audience) : "" };
    },
    toJSON(message) {
        const obj = {};
        if (message.custom_audience !== undefined && message.custom_audience !== "") {
            obj.custom_audience = message.custom_audience;
        }
        return obj;
    },
    create(base) {
        return CustomAudienceInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseCustomAudienceInfo();
        message.custom_audience = (_a = object.custom_audience) !== null && _a !== void 0 ? _a : "";
        return message;
    },
};
function createBaseCombinedAudienceInfo() {
    return { combined_audience: "" };
}
export const CombinedAudienceInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.combined_audience !== undefined && message.combined_audience !== "") {
            writer.uint32(10).string(message.combined_audience);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseCombinedAudienceInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.combined_audience = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { combined_audience: isSet(object.combined_audience) ? globalThis.String(object.combined_audience) : "" };
    },
    toJSON(message) {
        const obj = {};
        if (message.combined_audience !== undefined && message.combined_audience !== "") {
            obj.combined_audience = message.combined_audience;
        }
        return obj;
    },
    create(base) {
        return CombinedAudienceInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseCombinedAudienceInfo();
        message.combined_audience = (_a = object.combined_audience) !== null && _a !== void 0 ? _a : "";
        return message;
    },
};
function createBaseAudienceInfo() {
    return { audience: "" };
}
export const AudienceInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.audience !== undefined && message.audience !== "") {
            writer.uint32(10).string(message.audience);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseAudienceInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.audience = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { audience: isSet(object.audience) ? globalThis.String(object.audience) : "" };
    },
    toJSON(message) {
        const obj = {};
        if (message.audience !== undefined && message.audience !== "") {
            obj.audience = message.audience;
        }
        return obj;
    },
    create(base) {
        return AudienceInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseAudienceInfo();
        message.audience = (_a = object.audience) !== null && _a !== void 0 ? _a : "";
        return message;
    },
};
function createBaseKeywordThemeInfo() {
    return { keyword_theme_constant: undefined, free_form_keyword_theme: undefined };
}
export const KeywordThemeInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.keyword_theme_constant !== undefined) {
            writer.uint32(10).string(message.keyword_theme_constant);
        }
        if (message.free_form_keyword_theme !== undefined) {
            writer.uint32(18).string(message.free_form_keyword_theme);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseKeywordThemeInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.keyword_theme_constant = reader.string();
                    continue;
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.free_form_keyword_theme = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            keyword_theme_constant: isSet(object.keyword_theme_constant)
                ? globalThis.String(object.keyword_theme_constant)
                : undefined,
            free_form_keyword_theme: isSet(object.free_form_keyword_theme)
                ? globalThis.String(object.free_form_keyword_theme)
                : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.keyword_theme_constant !== undefined) {
            obj.keyword_theme_constant = message.keyword_theme_constant;
        }
        if (message.free_form_keyword_theme !== undefined) {
            obj.free_form_keyword_theme = message.free_form_keyword_theme;
        }
        return obj;
    },
    create(base) {
        return KeywordThemeInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a, _b;
        const message = createBaseKeywordThemeInfo();
        message.keyword_theme_constant = (_a = object.keyword_theme_constant) !== null && _a !== void 0 ? _a : undefined;
        message.free_form_keyword_theme = (_b = object.free_form_keyword_theme) !== null && _b !== void 0 ? _b : undefined;
        return message;
    },
};
function createBaseLocalServiceIdInfo() {
    return { service_id: "" };
}
export const LocalServiceIdInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.service_id !== undefined && message.service_id !== "") {
            writer.uint32(10).string(message.service_id);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseLocalServiceIdInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.service_id = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { service_id: isSet(object.service_id) ? globalThis.String(object.service_id) : "" };
    },
    toJSON(message) {
        const obj = {};
        if (message.service_id !== undefined && message.service_id !== "") {
            obj.service_id = message.service_id;
        }
        return obj;
    },
    create(base) {
        return LocalServiceIdInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseLocalServiceIdInfo();
        message.service_id = (_a = object.service_id) !== null && _a !== void 0 ? _a : "";
        return message;
    },
};
function createBaseSearchThemeInfo() {
    return { text: "" };
}
export const SearchThemeInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.text !== undefined && message.text !== "") {
            writer.uint32(10).string(message.text);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseSearchThemeInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.text = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { text: isSet(object.text) ? globalThis.String(object.text) : "" };
    },
    toJSON(message) {
        const obj = {};
        if (message.text !== undefined && message.text !== "") {
            obj.text = message.text;
        }
        return obj;
    },
    create(base) {
        return SearchThemeInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseSearchThemeInfo();
        message.text = (_a = object.text) !== null && _a !== void 0 ? _a : "";
        return message;
    },
};
function createBaseBrandInfo() {
    return {
        display_name: undefined,
        entity_id: undefined,
        primary_url: undefined,
        rejection_reason: undefined,
        status: undefined,
    };
}
export const BrandInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.display_name !== undefined) {
            writer.uint32(18).string(message.display_name);
        }
        if (message.entity_id !== undefined) {
            writer.uint32(10).string(message.entity_id);
        }
        if (message.primary_url !== undefined) {
            writer.uint32(26).string(message.primary_url);
        }
        if (message.rejection_reason !== undefined) {
            writer.uint32(32).int32(message.rejection_reason);
        }
        if (message.status !== undefined) {
            writer.uint32(40).int32(message.status);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseBrandInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.display_name = reader.string();
                    continue;
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.entity_id = reader.string();
                    continue;
                case 3:
                    if (tag !== 26) {
                        break;
                    }
                    message.primary_url = reader.string();
                    continue;
                case 4:
                    if (tag !== 32) {
                        break;
                    }
                    message.rejection_reason = reader.int32();
                    continue;
                case 5:
                    if (tag !== 40) {
                        break;
                    }
                    message.status = reader.int32();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            display_name: isSet(object.display_name) ? globalThis.String(object.display_name) : undefined,
            entity_id: isSet(object.entity_id) ? globalThis.String(object.entity_id) : undefined,
            primary_url: isSet(object.primary_url) ? globalThis.String(object.primary_url) : undefined,
            rejection_reason: isSet(object.rejection_reason)
                ? brandRequestRejectionReasonEnum_BrandRequestRejectionReasonFromJSON(object.rejection_reason)
                : undefined,
            status: isSet(object.status) ? brandStateEnum_BrandStateFromJSON(object.status) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.display_name !== undefined) {
            obj.display_name = message.display_name;
        }
        if (message.entity_id !== undefined) {
            obj.entity_id = message.entity_id;
        }
        if (message.primary_url !== undefined) {
            obj.primary_url = message.primary_url;
        }
        if (message.rejection_reason !== undefined) {
            obj.rejection_reason = brandRequestRejectionReasonEnum_BrandRequestRejectionReasonToJSON(message.rejection_reason);
        }
        if (message.status !== undefined) {
            obj.status = brandStateEnum_BrandStateToJSON(message.status);
        }
        return obj;
    },
    create(base) {
        return BrandInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a, _b, _c, _d, _e;
        const message = createBaseBrandInfo();
        message.display_name = (_a = object.display_name) !== null && _a !== void 0 ? _a : undefined;
        message.entity_id = (_b = object.entity_id) !== null && _b !== void 0 ? _b : undefined;
        message.primary_url = (_c = object.primary_url) !== null && _c !== void 0 ? _c : undefined;
        message.rejection_reason = (_d = object.rejection_reason) !== null && _d !== void 0 ? _d : undefined;
        message.status = (_e = object.status) !== null && _e !== void 0 ? _e : undefined;
        return message;
    },
};
function createBaseBrandListInfo() {
    return { shared_set: undefined };
}
export const BrandListInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.shared_set !== undefined) {
            writer.uint32(10).string(message.shared_set);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseBrandListInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.shared_set = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { shared_set: isSet(object.shared_set) ? globalThis.String(object.shared_set) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.shared_set !== undefined) {
            obj.shared_set = message.shared_set;
        }
        return obj;
    },
    create(base) {
        return BrandListInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseBrandListInfo();
        message.shared_set = (_a = object.shared_set) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseLifeEventInfo() {
    return { life_event_id: undefined };
}
export const LifeEventInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.life_event_id !== undefined) {
            writer.uint32(8).int64(message.life_event_id);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseLifeEventInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 8) {
                        break;
                    }
                    message.life_event_id = longToString(reader.int64());
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { life_event_id: isSet(object.life_event_id) ? globalThis.String(object.life_event_id) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.life_event_id !== undefined) {
            obj.life_event_id = message.life_event_id;
        }
        return obj;
    },
    create(base) {
        return LifeEventInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseLifeEventInfo();
        message.life_event_id = (_a = object.life_event_id) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseExtendedDemographicInfo() {
    return { extended_demographic_id: undefined };
}
export const ExtendedDemographicInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.extended_demographic_id !== undefined) {
            writer.uint32(8).int64(message.extended_demographic_id);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseExtendedDemographicInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 8) {
                        break;
                    }
                    message.extended_demographic_id = longToString(reader.int64());
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            extended_demographic_id: isSet(object.extended_demographic_id)
                ? globalThis.String(object.extended_demographic_id)
                : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.extended_demographic_id !== undefined) {
            obj.extended_demographic_id = message.extended_demographic_id;
        }
        return obj;
    },
    create(base) {
        return ExtendedDemographicInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseExtendedDemographicInfo();
        message.extended_demographic_id = (_a = object.extended_demographic_id) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseVideoLineupInfo() {
    return { video_lineup_id: undefined };
}
export const VideoLineupInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.video_lineup_id !== undefined) {
            writer.uint32(8).int64(message.video_lineup_id);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseVideoLineupInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 8) {
                        break;
                    }
                    message.video_lineup_id = longToString(reader.int64());
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { video_lineup_id: isSet(object.video_lineup_id) ? globalThis.String(object.video_lineup_id) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.video_lineup_id !== undefined) {
            obj.video_lineup_id = message.video_lineup_id;
        }
        return obj;
    },
    create(base) {
        return VideoLineupInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseVideoLineupInfo();
        message.video_lineup_id = (_a = object.video_lineup_id) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBasePlacementListInfo() {
    return { shared_set: undefined };
}
export const PlacementListInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.shared_set !== undefined) {
            writer.uint32(10).string(message.shared_set);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBasePlacementListInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.shared_set = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { shared_set: isSet(object.shared_set) ? globalThis.String(object.shared_set) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.shared_set !== undefined) {
            obj.shared_set = message.shared_set;
        }
        return obj;
    },
    create(base) {
        return PlacementListInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBasePlacementListInfo();
        message.shared_set = (_a = object.shared_set) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseVerticalAdsItemGroupRuleListInfo() {
    return { shared_set: undefined };
}
export const VerticalAdsItemGroupRuleListInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.shared_set !== undefined) {
            writer.uint32(10).string(message.shared_set);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseVerticalAdsItemGroupRuleListInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.shared_set = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { shared_set: isSet(object.shared_set) ? globalThis.String(object.shared_set) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.shared_set !== undefined) {
            obj.shared_set = message.shared_set;
        }
        return obj;
    },
    create(base) {
        return VerticalAdsItemGroupRuleListInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseVerticalAdsItemGroupRuleListInfo();
        message.shared_set = (_a = object.shared_set) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseVerticalAdsItemGroupRuleInfo() {
    return {
        item_code: undefined,
        country_criterion_id: undefined,
        region_criterion_id: undefined,
        city_criterion_id: undefined,
        hotel_class: undefined,
        user_rating: undefined,
        venue: undefined,
        event_participant_display_name: undefined,
    };
}
export const VerticalAdsItemGroupRuleInfo = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.item_code !== undefined) {
            writer.uint32(10).string(message.item_code);
        }
        if (message.country_criterion_id !== undefined) {
            writer.uint32(18).string(message.country_criterion_id);
        }
        if (message.region_criterion_id !== undefined) {
            writer.uint32(26).string(message.region_criterion_id);
        }
        if (message.city_criterion_id !== undefined) {
            writer.uint32(34).string(message.city_criterion_id);
        }
        if (message.hotel_class !== undefined) {
            writer.uint32(48).int64(message.hotel_class);
        }
        if (message.user_rating !== undefined) {
            writer.uint32(56).int64(message.user_rating);
        }
        if (message.venue !== undefined) {
            writer.uint32(66).string(message.venue);
        }
        if (message.event_participant_display_name !== undefined) {
            writer.uint32(74).string(message.event_participant_display_name);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseVerticalAdsItemGroupRuleInfo();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.item_code = reader.string();
                    continue;
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.country_criterion_id = reader.string();
                    continue;
                case 3:
                    if (tag !== 26) {
                        break;
                    }
                    message.region_criterion_id = reader.string();
                    continue;
                case 4:
                    if (tag !== 34) {
                        break;
                    }
                    message.city_criterion_id = reader.string();
                    continue;
                case 6:
                    if (tag !== 48) {
                        break;
                    }
                    message.hotel_class = longToString(reader.int64());
                    continue;
                case 7:
                    if (tag !== 56) {
                        break;
                    }
                    message.user_rating = longToString(reader.int64());
                    continue;
                case 8:
                    if (tag !== 66) {
                        break;
                    }
                    message.venue = reader.string();
                    continue;
                case 9:
                    if (tag !== 74) {
                        break;
                    }
                    message.event_participant_display_name = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            item_code: isSet(object.item_code) ? globalThis.String(object.item_code) : undefined,
            country_criterion_id: isSet(object.country_criterion_id)
                ? globalThis.String(object.country_criterion_id)
                : undefined,
            region_criterion_id: isSet(object.region_criterion_id)
                ? globalThis.String(object.region_criterion_id)
                : undefined,
            city_criterion_id: isSet(object.city_criterion_id) ? globalThis.String(object.city_criterion_id) : undefined,
            hotel_class: isSet(object.hotel_class) ? globalThis.String(object.hotel_class) : undefined,
            user_rating: isSet(object.user_rating) ? globalThis.String(object.user_rating) : undefined,
            venue: isSet(object.venue) ? globalThis.String(object.venue) : undefined,
            event_participant_display_name: isSet(object.event_participant_display_name)
                ? globalThis.String(object.event_participant_display_name)
                : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.item_code !== undefined) {
            obj.item_code = message.item_code;
        }
        if (message.country_criterion_id !== undefined) {
            obj.country_criterion_id = message.country_criterion_id;
        }
        if (message.region_criterion_id !== undefined) {
            obj.region_criterion_id = message.region_criterion_id;
        }
        if (message.city_criterion_id !== undefined) {
            obj.city_criterion_id = message.city_criterion_id;
        }
        if (message.hotel_class !== undefined) {
            obj.hotel_class = message.hotel_class;
        }
        if (message.user_rating !== undefined) {
            obj.user_rating = message.user_rating;
        }
        if (message.venue !== undefined) {
            obj.venue = message.venue;
        }
        if (message.event_participant_display_name !== undefined) {
            obj.event_participant_display_name = message.event_participant_display_name;
        }
        return obj;
    },
    create(base) {
        return VerticalAdsItemGroupRuleInfo.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a, _b, _c, _d, _e, _f, _g, _h;
        const message = createBaseVerticalAdsItemGroupRuleInfo();
        message.item_code = (_a = object.item_code) !== null && _a !== void 0 ? _a : undefined;
        message.country_criterion_id = (_b = object.country_criterion_id) !== null && _b !== void 0 ? _b : undefined;
        message.region_criterion_id = (_c = object.region_criterion_id) !== null && _c !== void 0 ? _c : undefined;
        message.city_criterion_id = (_d = object.city_criterion_id) !== null && _d !== void 0 ? _d : undefined;
        message.hotel_class = (_e = object.hotel_class) !== null && _e !== void 0 ? _e : undefined;
        message.user_rating = (_f = object.user_rating) !== null && _f !== void 0 ? _f : undefined;
        message.venue = (_g = object.venue) !== null && _g !== void 0 ? _g : undefined;
        message.event_participant_display_name = (_h = object.event_participant_display_name) !== null && _h !== void 0 ? _h : undefined;
        return message;
    },
};
function createBaseRetailFilterBundle() {
    return { shared_set: undefined };
}
export const RetailFilterBundle = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.shared_set !== undefined) {
            writer.uint32(10).string(message.shared_set);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseRetailFilterBundle();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.shared_set = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { shared_set: isSet(object.shared_set) ? globalThis.String(object.shared_set) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.shared_set !== undefined) {
            obj.shared_set = message.shared_set;
        }
        return obj;
    },
    create(base) {
        return RetailFilterBundle.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseRetailFilterBundle();
        message.shared_set = (_a = object.shared_set) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseRetailFilter() {
    return { expression: undefined, tag: undefined };
}
export const RetailFilter = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.expression !== undefined) {
            RetailFilterExpression.encode(message.expression, writer.uint32(10).fork()).ldelim();
        }
        if (message.tag !== undefined) {
            RetailTag.encode(message.tag, writer.uint32(18).fork()).ldelim();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseRetailFilter();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.expression = RetailFilterExpression.decode(reader, reader.uint32());
                    continue;
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.tag = RetailTag.decode(reader, reader.uint32());
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            expression: isSet(object.expression) ? RetailFilterExpression.fromJSON(object.expression) : undefined,
            tag: isSet(object.tag) ? RetailTag.fromJSON(object.tag) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.expression !== undefined) {
            obj.expression = RetailFilterExpression.toJSON(message.expression);
        }
        if (message.tag !== undefined) {
            obj.tag = RetailTag.toJSON(message.tag);
        }
        return obj;
    },
    create(base) {
        return RetailFilter.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        const message = createBaseRetailFilter();
        message.expression = (object.expression !== undefined && object.expression !== null)
            ? RetailFilterExpression.fromPartial(object.expression)
            : undefined;
        message.tag = (object.tag !== undefined && object.tag !== null) ? RetailTag.fromPartial(object.tag) : undefined;
        return message;
    },
};
function createBaseRetailFilterExpression() {
    return { name: undefined };
}
export const RetailFilterExpression = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.name !== undefined) {
            writer.uint32(10).string(message.name);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseRetailFilterExpression();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.name = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return { name: isSet(object.name) ? globalThis.String(object.name) : undefined };
    },
    toJSON(message) {
        const obj = {};
        if (message.name !== undefined) {
            obj.name = message.name;
        }
        return obj;
    },
    create(base) {
        return RetailFilterExpression.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a;
        const message = createBaseRetailFilterExpression();
        message.name = (_a = object.name) !== null && _a !== void 0 ? _a : undefined;
        return message;
    },
};
function createBaseRetailTag() {
    return { value: undefined, expression_name: undefined };
}
export const RetailTag = {
    encode(message, writer = _m0.Writer.create()) {
        if (message.value !== undefined) {
            writer.uint32(10).string(message.value);
        }
        if (message.expression_name !== undefined) {
            writer.uint32(18).string(message.expression_name);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
        let end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseRetailTag();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1:
                    if (tag !== 10) {
                        break;
                    }
                    message.value = reader.string();
                    continue;
                case 2:
                    if (tag !== 18) {
                        break;
                    }
                    message.expression_name = reader.string();
                    continue;
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skipType(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            value: isSet(object.value) ? globalThis.String(object.value) : undefined,
            expression_name: isSet(object.expression_name) ? globalThis.String(object.expression_name) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.value !== undefined) {
            obj.value = message.value;
        }
        if (message.expression_name !== undefined) {
            obj.expression_name = message.expression_name;
        }
        return obj;
    },
    create(base) {
        return RetailTag.fromPartial(base !== null && base !== void 0 ? base : {});
    },
    fromPartial(object) {
        var _a, _b;
        const message = createBaseRetailTag();
        message.value = (_a = object.value) !== null && _a !== void 0 ? _a : undefined;
        message.expression_name = (_b = object.expression_name) !== null && _b !== void 0 ? _b : undefined;
        return message;
    },
};
function longToString(long) {
    return long.toString();
}
if (_m0.util.Long !== Long) {
    _m0.util.Long = Long;
    _m0.configure();
}
function isSet(value) {
    return value !== null && value !== undefined;
}