diff --git a/lib/manage-audience/.openapi-generator/FILES b/lib/manage-audience/.openapi-generator/FILES
index fe49e0e67..a2cf4e26b 100644
--- a/lib/manage-audience/.openapi-generator/FILES
+++ b/lib/manage-audience/.openapi-generator/FILES
@@ -7,7 +7,6 @@ model/adaccount.ts
model/addAudienceToAudienceGroupRequest.ts
model/audience.ts
model/audienceGroup.ts
-model/audienceGroupAuthorityLevel.ts
model/audienceGroupCreateRoute.ts
model/audienceGroupFailedType.ts
model/audienceGroupJob.ts
@@ -27,12 +26,10 @@ model/detailedOwner.ts
model/errorDetail.ts
model/errorResponse.ts
model/getAudienceDataResponse.ts
-model/getAudienceGroupAuthorityLevelResponse.ts
model/getAudienceGroupsResponse.ts
model/getSharedAudienceDataResponse.ts
model/getSharedAudienceGroupsResponse.ts
model/models.ts
-model/updateAudienceGroupAuthorityLevelRequest.ts
model/updateAudienceGroupDescriptionRequest.ts
tests/api/ManageAudienceBlobClientTest.spec.ts
tests/api/ManageAudienceClientTest.spec.ts
diff --git a/lib/manage-audience/api/manageAudienceClient.ts b/lib/manage-audience/api/manageAudienceClient.ts
index 82aca9097..20998d821 100644
--- a/lib/manage-audience/api/manageAudienceClient.ts
+++ b/lib/manage-audience/api/manageAudienceClient.ts
@@ -22,11 +22,9 @@ import { CreateImpBasedAudienceGroupRequest } from "../model/createImpBasedAudie
import { CreateImpBasedAudienceGroupResponse } from "../model/createImpBasedAudienceGroupResponse.js";
import { ErrorResponse } from "../model/errorResponse.js";
import { GetAudienceDataResponse } from "../model/getAudienceDataResponse.js";
-import { GetAudienceGroupAuthorityLevelResponse } from "../model/getAudienceGroupAuthorityLevelResponse.js";
import { GetAudienceGroupsResponse } from "../model/getAudienceGroupsResponse.js";
import { GetSharedAudienceDataResponse } from "../model/getSharedAudienceDataResponse.js";
import { GetSharedAudienceGroupsResponse } from "../model/getSharedAudienceGroupsResponse.js";
-import { UpdateAudienceGroupAuthorityLevelRequest } from "../model/updateAudienceGroupAuthorityLevelRequest.js";
import { UpdateAudienceGroupDescriptionRequest } from "../model/updateAudienceGroupDescriptionRequest.js";
import * as Types from "../../types.js";
@@ -62,38 +60,6 @@ export class ManageAudienceClient {
});
}
- /**
- * Activate audience
- * @param audienceGroupId The audience ID.
- *
- * @see Documentation
- */
- public async activateAudienceGroup(
- audienceGroupId: number,
- ): Promise {
- return (await this.activateAudienceGroupWithHttpInfo(audienceGroupId)).body;
- }
-
- /**
- * Activate audience.
- * This method includes HttpInfo object to return additional information.
- * @param audienceGroupId The audience ID.
- *
- * @see Documentation
- */
- public async activateAudienceGroupWithHttpInfo(
- audienceGroupId: number,
- ): Promise> {
- const res = await this.httpClient.put(
- "/v2/bot/audienceGroup/{audienceGroupId}/activate".replace(
- "{audienceGroupId}",
- String(audienceGroupId),
- ),
- );
- const text = await res.text();
- const parsedBody = text ? JSON.parse(text) : null;
- return { httpResponse: res, body: parsedBody };
- }
/**
* Add user IDs or Identifiers for Advertisers (IFAs) to an audience for uploading user IDs (by JSON)
* @param addAudienceToAudienceGroupRequest
@@ -297,31 +263,6 @@ export class ManageAudienceClient {
const parsedBody = text ? JSON.parse(text) : null;
return { httpResponse: res, body: parsedBody };
}
- /**
- * Get the authority level of the audience
- *
- * @see Documentation
- */
- public async getAudienceGroupAuthorityLevel(): Promise {
- return (await this.getAudienceGroupAuthorityLevelWithHttpInfo()).body;
- }
-
- /**
- * Get the authority level of the audience.
- * This method includes HttpInfo object to return additional information.
- *
- * @see Documentation
- */
- public async getAudienceGroupAuthorityLevelWithHttpInfo(): Promise<
- Types.ApiResponseType
- > {
- const res = await this.httpClient.get(
- "/v2/bot/audienceGroup/authorityLevel",
- );
- const text = await res.text();
- const parsedBody = text ? JSON.parse(text) : null;
- return { httpResponse: res, body: parsedBody };
- }
/**
* Gets data for more than one audience.
* @param page The page to return when getting (paginated) results. Must be 1 or higher.
@@ -434,6 +375,7 @@ export class ManageAudienceClient {
* @param status The status of the audience(s) to return. If omitted, the status of the audience(s) will not be used as a search criterion.
* @param size The number of audiences per page. Default: 20 Max: 40
* @param createRoute How the audience was created. If omitted, all audiences are included. `OA_MANAGER`: Return only audiences created with LINE Official Account Manager (opens new window). `MESSAGING_API`: Return only audiences created with Messaging API.
+ * @param includesOwnedAudienceGroups true: Include audienceGroups owned by LINE Official Account Manager false: Respond only audienceGroups shared by Business Manager
*
* @see Documentation
*/
@@ -443,6 +385,7 @@ export class ManageAudienceClient {
status?: AudienceGroupStatus,
size?: number,
createRoute?: AudienceGroupCreateRoute,
+ includesOwnedAudienceGroups?: boolean,
): Promise {
return (
await this.getSharedAudienceGroupsWithHttpInfo(
@@ -451,6 +394,7 @@ export class ManageAudienceClient {
status,
size,
createRoute,
+ includesOwnedAudienceGroups,
)
).body;
}
@@ -463,6 +407,7 @@ export class ManageAudienceClient {
* @param status The status of the audience(s) to return. If omitted, the status of the audience(s) will not be used as a search criterion.
* @param size The number of audiences per page. Default: 20 Max: 40
* @param createRoute How the audience was created. If omitted, all audiences are included. `OA_MANAGER`: Return only audiences created with LINE Official Account Manager (opens new window). `MESSAGING_API`: Return only audiences created with Messaging API.
+ * @param includesOwnedAudienceGroups true: Include audienceGroups owned by LINE Official Account Manager false: Respond only audienceGroups shared by Business Manager
*
* @see Documentation
*/
@@ -472,6 +417,7 @@ export class ManageAudienceClient {
status?: AudienceGroupStatus,
size?: number,
createRoute?: AudienceGroupCreateRoute,
+ includesOwnedAudienceGroups?: boolean,
): Promise> {
const queryParams = {
page: page,
@@ -479,6 +425,7 @@ export class ManageAudienceClient {
status: status,
size: size,
createRoute: createRoute,
+ includesOwnedAudienceGroups: includesOwnedAudienceGroups,
};
Object.keys(queryParams).forEach((key: keyof typeof queryParams) => {
if (queryParams[key] === undefined) {
@@ -494,42 +441,6 @@ export class ManageAudienceClient {
const parsedBody = text ? JSON.parse(text) : null;
return { httpResponse: res, body: parsedBody };
}
- /**
- * Change the authority level of the audience
- * @param updateAudienceGroupAuthorityLevelRequest
- *
- * @see Documentation
- */
- public async updateAudienceGroupAuthorityLevel(
- updateAudienceGroupAuthorityLevelRequest: UpdateAudienceGroupAuthorityLevelRequest,
- ): Promise {
- return (
- await this.updateAudienceGroupAuthorityLevelWithHttpInfo(
- updateAudienceGroupAuthorityLevelRequest,
- )
- ).body;
- }
-
- /**
- * Change the authority level of the audience.
- * This method includes HttpInfo object to return additional information.
- * @param updateAudienceGroupAuthorityLevelRequest
- *
- * @see Documentation
- */
- public async updateAudienceGroupAuthorityLevelWithHttpInfo(
- updateAudienceGroupAuthorityLevelRequest: UpdateAudienceGroupAuthorityLevelRequest,
- ): Promise> {
- const params = updateAudienceGroupAuthorityLevelRequest;
-
- const res = await this.httpClient.put(
- "/v2/bot/audienceGroup/authorityLevel",
- params,
- );
- const text = await res.text();
- const parsedBody = text ? JSON.parse(text) : null;
- return { httpResponse: res, body: parsedBody };
- }
/**
* Renames an existing audience.
* @param audienceGroupId The audience ID.
diff --git a/lib/manage-audience/model/audienceGroupAuthorityLevel.ts b/lib/manage-audience/model/audienceGroupAuthorityLevel.ts
deleted file mode 100644
index 3aa079ab1..000000000
--- a/lib/manage-audience/model/audienceGroupAuthorityLevel.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- * LINE Messaging API
- * This document describes LINE Messaging API.
- *
- * The version of the OpenAPI document: 0.0.1
- *
- *
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
- * https://openapi-generator.tech
- * Do not edit the class manually.
- */
-
-/**
- * authority level
- */
-
-export type AudienceGroupAuthorityLevel = "PUBLIC" | "PRIVATE";
diff --git a/lib/manage-audience/model/getAudienceGroupAuthorityLevelResponse.ts b/lib/manage-audience/model/getAudienceGroupAuthorityLevelResponse.ts
deleted file mode 100644
index d340d1fa6..000000000
--- a/lib/manage-audience/model/getAudienceGroupAuthorityLevelResponse.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * LINE Messaging API
- * This document describes LINE Messaging API.
- *
- * The version of the OpenAPI document: 0.0.1
- *
- *
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
- * https://openapi-generator.tech
- * Do not edit the class manually.
- */
-
-import { AudienceGroupAuthorityLevel } from "./audienceGroupAuthorityLevel.js";
-
-/**
- * Get the authority level of the audience
- */
-export type GetAudienceGroupAuthorityLevelResponse = {
- /**
- *
- * @see authorityLevel Documentation
- */
- authorityLevel?: AudienceGroupAuthorityLevel /**/;
-};
-
-export namespace GetAudienceGroupAuthorityLevelResponse {}
diff --git a/lib/manage-audience/model/models.ts b/lib/manage-audience/model/models.ts
index fd69e7dbc..90ffe60f1 100644
--- a/lib/manage-audience/model/models.ts
+++ b/lib/manage-audience/model/models.ts
@@ -2,7 +2,6 @@ export * from "./adaccount.js";
export * from "./addAudienceToAudienceGroupRequest.js";
export * from "./audience.js";
export * from "./audienceGroup.js";
-export * from "./audienceGroupAuthorityLevel.js";
export * from "./audienceGroupCreateRoute.js";
export * from "./audienceGroupFailedType.js";
export * from "./audienceGroupJob.js";
@@ -22,9 +21,7 @@ export * from "./detailedOwner.js";
export * from "./errorDetail.js";
export * from "./errorResponse.js";
export * from "./getAudienceDataResponse.js";
-export * from "./getAudienceGroupAuthorityLevelResponse.js";
export * from "./getAudienceGroupsResponse.js";
export * from "./getSharedAudienceDataResponse.js";
export * from "./getSharedAudienceGroupsResponse.js";
-export * from "./updateAudienceGroupAuthorityLevelRequest.js";
export * from "./updateAudienceGroupDescriptionRequest.js";
diff --git a/lib/manage-audience/model/updateAudienceGroupAuthorityLevelRequest.ts b/lib/manage-audience/model/updateAudienceGroupAuthorityLevelRequest.ts
deleted file mode 100644
index bdab03953..000000000
--- a/lib/manage-audience/model/updateAudienceGroupAuthorityLevelRequest.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * LINE Messaging API
- * This document describes LINE Messaging API.
- *
- * The version of the OpenAPI document: 0.0.1
- *
- *
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
- * https://openapi-generator.tech
- * Do not edit the class manually.
- */
-
-import { AudienceGroupAuthorityLevel } from "./audienceGroupAuthorityLevel.js";
-
-/**
- * Change the authority level of the audience
- */
-export type UpdateAudienceGroupAuthorityLevelRequest = {
- /**
- *
- * @see authorityLevel Documentation
- */
- authorityLevel?: AudienceGroupAuthorityLevel /**/;
-};
-
-export namespace UpdateAudienceGroupAuthorityLevelRequest {}
diff --git a/lib/manage-audience/tests/api/ManageAudienceClientTest.spec.ts b/lib/manage-audience/tests/api/ManageAudienceClientTest.spec.ts
index 9e2584fde..775e917e3 100644
--- a/lib/manage-audience/tests/api/ManageAudienceClientTest.spec.ts
+++ b/lib/manage-audience/tests/api/ManageAudienceClientTest.spec.ts
@@ -11,11 +11,9 @@ import { CreateImpBasedAudienceGroupRequest } from "../../model/createImpBasedAu
import { CreateImpBasedAudienceGroupResponse } from "../../model/createImpBasedAudienceGroupResponse.js";
import { ErrorResponse } from "../../model/errorResponse.js";
import { GetAudienceDataResponse } from "../../model/getAudienceDataResponse.js";
-import { GetAudienceGroupAuthorityLevelResponse } from "../../model/getAudienceGroupAuthorityLevelResponse.js";
import { GetAudienceGroupsResponse } from "../../model/getAudienceGroupsResponse.js";
import { GetSharedAudienceDataResponse } from "../../model/getSharedAudienceDataResponse.js";
import { GetSharedAudienceGroupsResponse } from "../../model/getSharedAudienceGroupsResponse.js";
-import { UpdateAudienceGroupAuthorityLevelRequest } from "../../model/updateAudienceGroupAuthorityLevelRequest.js";
import { UpdateAudienceGroupDescriptionRequest } from "../../model/updateAudienceGroupDescriptionRequest.js";
import { createServer } from "node:http";
@@ -73,98 +71,6 @@ function parseForm(arrayBuffer: ArrayBuffer): Record {
}
describe("ManageAudienceClient", () => {
- it("activateAudienceGroupWithHttpInfo", async () => {
- let requestCount = 0;
-
- const server = createServer((req, res) => {
- requestCount++;
-
- equal(req.method, "PUT");
- const reqUrl = new URL(req.url, "http://localhost/");
- equal(
- reqUrl.pathname,
- "/v2/bot/audienceGroup/{audienceGroupId}/activate".replace(
- "{audienceGroupId}",
- "0",
- ), // number
- );
-
- equal(req.headers["authorization"], `Bearer ${channel_access_token}`);
- equal(req.headers["user-agent"], "@line/bot-sdk/1.0.0-test");
-
- res.writeHead(200, { "Content-Type": "application/json" });
- res.end(JSON.stringify({}));
- });
- await new Promise(resolve => {
- server.listen(0);
- server.on("listening", resolve);
- });
-
- const serverAddress = server.address();
- if (typeof serverAddress === "string" || serverAddress === null) {
- throw new Error("Unexpected server address: " + serverAddress);
- }
-
- const client = new ManageAudienceClient({
- channelAccessToken: channel_access_token,
- baseURL: `http://localhost:${String(serverAddress.port)}/`,
- });
-
- const res = await client.activateAudienceGroupWithHttpInfo(
- // audienceGroupId: number
- 0, // paramName=audienceGroupId(number or int or long)
- );
-
- equal(requestCount, 1);
- server.close();
- });
-
- it("activateAudienceGroup", async () => {
- let requestCount = 0;
-
- const server = createServer((req, res) => {
- requestCount++;
-
- equal(req.method, "PUT");
- const reqUrl = new URL(req.url, "http://localhost/");
- equal(
- reqUrl.pathname,
- "/v2/bot/audienceGroup/{audienceGroupId}/activate".replace(
- "{audienceGroupId}",
- "0",
- ), // number
- );
-
- equal(req.headers["authorization"], `Bearer ${channel_access_token}`);
- equal(req.headers["user-agent"], "@line/bot-sdk/1.0.0-test");
-
- res.writeHead(200, { "Content-Type": "application/json" });
- res.end(JSON.stringify({}));
- });
- await new Promise(resolve => {
- server.listen(0);
- server.on("listening", resolve);
- });
-
- const serverAddress = server.address();
- if (typeof serverAddress === "string" || serverAddress === null) {
- throw new Error("Unexpected server address: " + serverAddress);
- }
-
- const client = new ManageAudienceClient({
- channelAccessToken: channel_access_token,
- baseURL: `http://localhost:${String(serverAddress.port)}/`,
- });
-
- const res = await client.activateAudienceGroup(
- // audienceGroupId: number
- 0, // paramName=audienceGroupId(number or int or long)
- );
-
- equal(requestCount, 1);
- server.close();
- });
-
it("addAudienceToAudienceGroupWithHttpInfo", async () => {
let requestCount = 0;
@@ -669,80 +575,6 @@ describe("ManageAudienceClient", () => {
server.close();
});
- it("getAudienceGroupAuthorityLevelWithHttpInfo", async () => {
- let requestCount = 0;
-
- const server = createServer((req, res) => {
- requestCount++;
-
- equal(req.method, "GET");
- const reqUrl = new URL(req.url, "http://localhost/");
- equal(reqUrl.pathname, "/v2/bot/audienceGroup/authorityLevel");
-
- equal(req.headers["authorization"], `Bearer ${channel_access_token}`);
- equal(req.headers["user-agent"], "@line/bot-sdk/1.0.0-test");
-
- res.writeHead(200, { "Content-Type": "application/json" });
- res.end(JSON.stringify({}));
- });
- await new Promise(resolve => {
- server.listen(0);
- server.on("listening", resolve);
- });
-
- const serverAddress = server.address();
- if (typeof serverAddress === "string" || serverAddress === null) {
- throw new Error("Unexpected server address: " + serverAddress);
- }
-
- const client = new ManageAudienceClient({
- channelAccessToken: channel_access_token,
- baseURL: `http://localhost:${String(serverAddress.port)}/`,
- });
-
- const res = await client.getAudienceGroupAuthorityLevelWithHttpInfo();
-
- equal(requestCount, 1);
- server.close();
- });
-
- it("getAudienceGroupAuthorityLevel", async () => {
- let requestCount = 0;
-
- const server = createServer((req, res) => {
- requestCount++;
-
- equal(req.method, "GET");
- const reqUrl = new URL(req.url, "http://localhost/");
- equal(reqUrl.pathname, "/v2/bot/audienceGroup/authorityLevel");
-
- equal(req.headers["authorization"], `Bearer ${channel_access_token}`);
- equal(req.headers["user-agent"], "@line/bot-sdk/1.0.0-test");
-
- res.writeHead(200, { "Content-Type": "application/json" });
- res.end(JSON.stringify({}));
- });
- await new Promise(resolve => {
- server.listen(0);
- server.on("listening", resolve);
- });
-
- const serverAddress = server.address();
- if (typeof serverAddress === "string" || serverAddress === null) {
- throw new Error("Unexpected server address: " + serverAddress);
- }
-
- const client = new ManageAudienceClient({
- channelAccessToken: channel_access_token,
- baseURL: `http://localhost:${String(serverAddress.port)}/`,
- });
-
- const res = await client.getAudienceGroupAuthorityLevel();
-
- equal(requestCount, 1);
- server.close();
- });
-
it("getAudienceGroupsWithHttpInfo", async () => {
let requestCount = 0;
@@ -1100,6 +932,13 @@ describe("ManageAudienceClient", () => {
"DUMMY" as unknown as AudienceGroupCreateRoute, // paramName=createRoute(enum)
),
);
+ equal(
+ queryParams.get("includesOwnedAudienceGroups"),
+ String(
+ // includesOwnedAudienceGroups: boolean
+ "DUMMY" as unknown as boolean, // paramName=includesOwnedAudienceGroups(enum)
+ ),
+ );
equal(req.headers["authorization"], `Bearer ${channel_access_token}`);
equal(req.headers["user-agent"], "@line/bot-sdk/1.0.0-test");
@@ -1137,6 +976,9 @@ describe("ManageAudienceClient", () => {
// createRoute: AudienceGroupCreateRoute
"DUMMY" as unknown as AudienceGroupCreateRoute, // paramName=createRoute(enum)
+
+ // includesOwnedAudienceGroups: boolean
+ "DUMMY" as unknown as boolean, // paramName=includesOwnedAudienceGroups(enum)
);
equal(requestCount, 1);
@@ -1196,6 +1038,13 @@ describe("ManageAudienceClient", () => {
"DUMMY" as unknown as AudienceGroupCreateRoute, // paramName=createRoute(enum)
),
);
+ equal(
+ queryParams.get("includesOwnedAudienceGroups"),
+ String(
+ // includesOwnedAudienceGroups: boolean
+ "DUMMY" as unknown as boolean, // paramName=includesOwnedAudienceGroups(enum)
+ ),
+ );
equal(req.headers["authorization"], `Bearer ${channel_access_token}`);
equal(req.headers["user-agent"], "@line/bot-sdk/1.0.0-test");
@@ -1233,86 +1082,9 @@ describe("ManageAudienceClient", () => {
// createRoute: AudienceGroupCreateRoute
"DUMMY" as unknown as AudienceGroupCreateRoute, // paramName=createRoute(enum)
- );
-
- equal(requestCount, 1);
- server.close();
- });
-
- it("updateAudienceGroupAuthorityLevelWithHttpInfo", async () => {
- let requestCount = 0;
-
- const server = createServer((req, res) => {
- requestCount++;
-
- equal(req.method, "PUT");
- const reqUrl = new URL(req.url, "http://localhost/");
- equal(reqUrl.pathname, "/v2/bot/audienceGroup/authorityLevel");
-
- equal(req.headers["authorization"], `Bearer ${channel_access_token}`);
- equal(req.headers["user-agent"], "@line/bot-sdk/1.0.0-test");
-
- res.writeHead(200, { "Content-Type": "application/json" });
- res.end(JSON.stringify({}));
- });
- await new Promise(resolve => {
- server.listen(0);
- server.on("listening", resolve);
- });
-
- const serverAddress = server.address();
- if (typeof serverAddress === "string" || serverAddress === null) {
- throw new Error("Unexpected server address: " + serverAddress);
- }
-
- const client = new ManageAudienceClient({
- channelAccessToken: channel_access_token,
- baseURL: `http://localhost:${String(serverAddress.port)}/`,
- });
-
- const res = await client.updateAudienceGroupAuthorityLevelWithHttpInfo(
- // updateAudienceGroupAuthorityLevelRequest: UpdateAudienceGroupAuthorityLevelRequest
- {} as unknown as UpdateAudienceGroupAuthorityLevelRequest, // paramName=updateAudienceGroupAuthorityLevelRequest
- );
-
- equal(requestCount, 1);
- server.close();
- });
-
- it("updateAudienceGroupAuthorityLevel", async () => {
- let requestCount = 0;
-
- const server = createServer((req, res) => {
- requestCount++;
-
- equal(req.method, "PUT");
- const reqUrl = new URL(req.url, "http://localhost/");
- equal(reqUrl.pathname, "/v2/bot/audienceGroup/authorityLevel");
-
- equal(req.headers["authorization"], `Bearer ${channel_access_token}`);
- equal(req.headers["user-agent"], "@line/bot-sdk/1.0.0-test");
-
- res.writeHead(200, { "Content-Type": "application/json" });
- res.end(JSON.stringify({}));
- });
- await new Promise(resolve => {
- server.listen(0);
- server.on("listening", resolve);
- });
-
- const serverAddress = server.address();
- if (typeof serverAddress === "string" || serverAddress === null) {
- throw new Error("Unexpected server address: " + serverAddress);
- }
-
- const client = new ManageAudienceClient({
- channelAccessToken: channel_access_token,
- baseURL: `http://localhost:${String(serverAddress.port)}/`,
- });
- const res = await client.updateAudienceGroupAuthorityLevel(
- // updateAudienceGroupAuthorityLevelRequest: UpdateAudienceGroupAuthorityLevelRequest
- {} as unknown as UpdateAudienceGroupAuthorityLevelRequest, // paramName=updateAudienceGroupAuthorityLevelRequest
+ // includesOwnedAudienceGroups: boolean
+ "DUMMY" as unknown as boolean, // paramName=includesOwnedAudienceGroups(enum)
);
equal(requestCount, 1);
diff --git a/line-openapi b/line-openapi
index 2f3805813..bc181f4c5 160000
--- a/line-openapi
+++ b/line-openapi
@@ -1 +1 @@
-Subproject commit 2f38058136b8f9237feafe34ea86a4be98455fb3
+Subproject commit bc181f4c552508ff67e33d74d996ebf624014938