| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | 
							- diff --git a/src/main.js b/src/main.js
 
- index 041d9d6..295dbcb 100644
 
- --- a/src/main.js
 
- +++ b/src/main.js
 
- @@ -15,2 +15,3 @@
 
-  const path = require('path');
 
- +const { fileURLToPath } = require('url');
 
-  const fs = require('original-fs');
 
- @@ -136,2 +137,14 @@ registerListeners();
 
-  
 
- +function resolveUserProduct() {
 
- +	const userDataPath = getUserDataPath({}, product.nameShort ?? 'code-oss-dev');
 
- +	const userProductPath = `file:///${userDataPath}/product.json`;
 
- +
 
- +	try {
 
- +		// Assign the product configuration to the global scope
 
- +		const productPath = require(fileURLToPath(userProductPath));
 
- +		global["_VSCODE_USER_PRODUCT_JSON"] = productPath;
 
- +	} catch (ex) {
 
- +	}
 
- +}
 
- +
 
-  /**
 
- @@ -212,2 +225,3 @@ function startup(codeCachePath, nlsConfig) {
 
-  	process.env['VSCODE_CODE_CACHE_PATH'] = codeCachePath || '';
 
- +	resolveUserProduct();
 
-  
 
- diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts
 
- index 58278d9..3bd78c9 100644
 
- --- a/src/vs/platform/product/common/product.ts
 
- +++ b/src/vs/platform/product/common/product.ts
 
- @@ -29,2 +29,36 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {
 
-  
 
- +	const { serviceUrl, searchUrl, itemUrl, controlUrl } = product.extensionsGallery || {};
 
- +
 
- +	Object.assign(product, {
 
- +		extensionsGallery: {
 
- +			serviceUrl: env['VSCODE_GALLERY_SERVICE_URL'] || serviceUrl,
 
- +			searchUrl: env['VSCODE_GALLERY_SEARCH_URL'] || searchUrl,
 
- +			itemUrl: env['VSCODE_GALLERY_ITEM_URL'] || itemUrl,
 
- +			controlUrl: env['VSCODE_GALLERY_CONTROL_URL'] || controlUrl,
 
- +		}
 
- +	});
 
- +
 
- +	// Merge user-customized product.json
 
- +	try {
 
- +		const merge = (...objects: any[]) =>
 
- +			objects.reduce((result, current) => {
 
- +				Object.keys(current).forEach((key) => {
 
- +					if (Array.isArray(result[key]) && Array.isArray(current[key])) {
 
- +						result[key] = current[key];
 
- +					} else if (typeof result[key] === 'object' && typeof current[key] === 'object') {
 
- +						result[key] = merge(result[key], current[key]);
 
- +					} else {
 
- +						result[key] = current[key];
 
- +					}
 
- +				});
 
- +
 
- +				return result;
 
- +			}, {}) as any;
 
- +
 
- +		const userProduct = (globalThis as Record<string, any>)._VSCODE_USER_PRODUCT_JSON || {};
 
- +
 
- +		product = merge(product, userProduct);
 
- +	} catch (ex) {
 
- +	}
 
- +
 
-  	// Running out of sources
 
 
  |