Snippets Collections
{
	"blocks": [
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":island-love: Boost Days - What's on this week! :island-love:"
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Happy Monday! \n\nLet's kick off another great week with our Boost Program :zap: See below for what's coming up! "
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-21: Tuesday, 21st January",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n:coffee: *Xero Café*: Café-style beverages and sweet treats\n:raspberry: *Barista Special*: Raspberry White Chocolate \n:fried_egg: *Breakfast*: Provided by *Simply Food* from *8:00am - 10:30am* on Level 3 \n:xero-boxing: *Boxing*: Xero led Boxing Sessions from 12pm in the XO Gym! "
			}
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-23: Thursday, 23rd January",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": ":coffee: *Xero Café*: Café-style beverages and sweet treats \n:raspberry: *Barista Special*: Raspberry White Chocolate \n :green_salad: *Light Lunch*: Served up by our friends from *NOSH* on Level 3 from *12:00PM* \n:xero-boxing: *Boxing*: Xero led Boxing Sessions at 5pm in the XO Gym!"
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "What else? \n\n :xero: *January Global All Hands*: Wednesday 22nd 10:00am-11:00am streamed in the Level 3 All Hands \n\n \nStay tuned to this channel for more details, check out the <https://calendar.google.com/calendar/u/0?cid=Y180Y2UwNGEwNjY2YjI5NDNlZmEwZGM4YWI5MTdjMTcyNDE2NzVhZmQ5MTllN2EwZjg5NTg5OTVkMTA2MDAzZmEwQGdyb3VwLmNhbGVuZGFyLmdvb2dsZS5jb20|*Wellington Social Calendar.*>\n\nLove,\nWX :wx:"
			}
		}
	]
}
{
	"blocks": [
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":fireworks: Boost Days - What's on this week! :fireworks:"
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Happy Monday Wellingtonians! \n\nLet's kick off another great week with our Boost Program :zap: See below for what's coming up! "
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-14: Tuesday, 14th January",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n:coffee: *Xero Café*: Café-style beverages and sweet treats\n:chocolatecake: *Barista Special*: Protein Mocha \n:fried_egg: *Breakfast*: Provided by *Simply Food* from *8:00am - 10:30am* on Level 3 \n:xero-boxing: *Boxing*: Xero led Boxing Sessions from 12pm in the XO Gym! "
			}
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-16: Thursday, 16th January",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": ":coffee: *Xero Café*: Café-style beverages and sweet treats \n:chocolatecake: *Barista Special*: Protein Mocha \n :green_salad: *Light Lunch*: Served up by our friends from *NOSH* on Level 3 from *12:00PM* \n:beers: *Social Happy Hour*: Celebrate the week with a few light nibbles and a drink! *Level 3* at *4:00pm-5:30pm*"
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Stay tuned to this channel for more details, check out the <https://calendar.google.com/calendar/u/0?cid=Y180Y2UwNGEwNjY2YjI5NDNlZmEwZGM4YWI5MTdjMTcyNDE2NzVhZmQ5MTllN2EwZjg5NTg5OTVkMTA2MDAzZmEwQGdyb3VwLmNhbGVuZGFyLmdvb2dsZS5jb20|*Wellington Social Calendar.*>\n\nLove,\nWX :wx:"
			}
		}
	]
{
	"blocks": [
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":mirror_ball: Boost Days - What's on this week! :mirror_ball:"
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Happy New Year Wellington - we've missed you! \n\nLet's kick off the new year with our Boost Program :zap: See below for what's coming up! "
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-7: Tuesday, 7th January",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n:coffee: *Xero Café*: Café-style beverages and sweet treats\n:matcha-latte: *Barista Special*: White Chocolate Matcha \n:fried_egg: *Breakfast*: Provided by *Simply Food* from *8:00am - 10:30am* on Level 3 \n:xero-boxing: *Boxing*: Xero led Boxing Sessions from 12pm in the XO Gym! "
			}
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-9: Thursday, 9th January",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": ":coffee: *Xero Café*: Café-style beverages and sweet treats \n:matcha-latte: *Barista Special*: White Chocolate Matcha \n :green_salad: *Light Lunch*: Served up by our friends from *NOSH* on Level 3 from *12:00PM* \n:xero-boxing: *Boxing*: Xero led Boxing Sessions at 5pm in the XO Gym!"
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Stay tuned to this channel for more details, check out the <https://calendar.google.com/calendar/u/0?cid=Y180Y2UwNGEwNjY2YjI5NDNlZmEwZGM4YWI5MTdjMTcyNDE2NzVhZmQ5MTllN2EwZjg5NTg5OTVkMTA2MDAzZmEwQGdyb3VwLmNhbGVuZGFyLmdvb2dsZS5jb20|*Wellington Social Calendar.*>  \n\nLove,\nWX :wx:"
			}
		}
	]
}
gcloud iam service-accounts create githubactions \                                                              
    --description="service acct for github actions" \                     
    --display-name="Github Actions"
SELECT 
SubscriberKey, Consent_Level_Summary__c, Cat_Campaign_Most_Recent__c , CreatedDate, PrivacyConsentStatus, HasOptedOutOfEmail, AMC_Status__c, AMC_Last_Activity_Record_ID__c


FROM (

SELECT 
DISTINCT c.Id AS SubscriberKey, c.Consent_Level_Summary__c, i.Cat_Campaign_Most_Recent__c, i.CreatedDate, cpc.PrivacyConsentStatus, c.HasOptedOutOfEmail, c.AMC_Status__c, c.AMC_Last_Activity_Record_ID__c,

ROW_NUMBER() OVER(PARTITION BY c.ID ORDER BY i.LastModifiedDate DESC) as RowNum


FROM ent.Interaction__c_Salesforce i 

JOIN ent.Contact_Salesforce_1 c ON c.Email = i.Email__c
JOIN ep_w200041_specsizernurture_new_registrants sent ON c.Email = sent.EmailAddress
INNER JOIN ent.ContactPointConsent_Salesforce AS cpc ON c.Id = cpc.Contact__c
INNER JOIN ent.DataUsePurpose_Salesforce AS dup ON cpc.DataUsePurposeId = dup.Id
LEFT JOIN ent.[Hard Bounces - Exclusion] hb ON c.ID=hb.subscriberkey

WHERE 
hb.SubscriberKey is null 
AND sent.EmailAddress is not null
AND
(i.Contact_Source_Details_Most_Recent__c = 'Electric Power/specsizer.cat.com/Form Repost' AND
i.Cat_Campaign_Most_Recent__c = 'SpecSizer New Registrant')
    AND Email__c IS NOT NULL
    AND (i.Mailing_State_Province__c != 'QC' OR (i.Mailing_Country__c != 'CA' AND i.Mailing_State_Province__c IS NULL))
    AND  (i.System_Language__c like 'en_%' OR (i.Mailing_Country__c != 'CA' AND i.System_Language__c is null))
    AND Email__c NOT LIKE '%cat.com'
    AND cpc.CaptureContactPointType = 'Email'
    AND cpc.MATM_Owner__c = 'Caterpillar'
    AND dup.Name = 'Caterpillar Marketing'
    AND cpc.PrivacyConsentStatus = 'OptIn' 
    AND (cpc.EffectiveTo IS NULL OR cpc.EffectiveTo < GetDate())
    AND (i.CreatedDate >= '01-01-2024' AND i.CreatedDate <= '08-31-2024')
        )t2

WHERE RowNum = 1
import React, { useEffect } from 'react';
import {
  useRecoilState, useRecoilValue, useResetRecoilState, useSetRecoilState,
} from 'recoil';
import _ from 'lodash';
import { KEY_RECOIL } from '../../../../ConstantsV2/aiConstants';
import { DEVICE_TAB_TYPES } from '../StripsManagementV2/constants';
import {
  activeTabState,
  controlModalState,
  isActiveTabState,
  pickDateActionState,
  pickedBookmarkDateState,
  pickedEndDateState,
  pickedStartDateState,
  selectedStripState,
} from '../Recoil';
import { TPickDateAction } from '../Recoil/model';
import { controlHrSummaryModalState } from './recoilBeat';
import { deviceEventDataState, emptySelectedKeyState, eventStripsDataState } from './recoilStrips';

// Custom hook to handle date pick actions
const usePickDateAction = (keyRecoil, pickedStartDate, pickedEndDate, pickedBookmarkDate) => {
  const setPickDateAction = useSetRecoilState(pickDateActionState(keyRecoil));

  useEffect(() => {
    if (pickedStartDate && !pickedEndDate) {
      setPickDateAction(TPickDateAction.END);
    } else if (pickedStartDate && pickedEndDate) {
      setPickDateAction(TPickDateAction.NONE);
    } else if (!pickedStartDate && pickedEndDate) {
      setPickDateAction(TPickDateAction.NONE);
    }
  }, [pickedStartDate, pickedEndDate]);

  useEffect(() => {
    if (pickedBookmarkDate) {
      setPickDateAction(TPickDateAction.NONE);
    }
  }, [pickedBookmarkDate]);

  return setPickDateAction;
};

// Custom hook to handle modal reset when changing tab or strip
const useModalReset = (selectedStrip, controlModal, resetControlModal, resetControlHrSummaryModal, isActiveTab) => {
  useEffect(() => {
    if (!controlModal.isShowNewEvents && !controlModal.isShowAddNewEvent) {
      resetControlModal();
    }
  }, [selectedStrip]);

  useEffect(() => {
    if (!isActiveTab) {
      resetControlModal();
      resetControlHrSummaryModal();
    }
  }, [isActiveTab]);
};

// Base component to render the correct tab
const TabUIEffect = ({ keyRecoil, tab }) => {
  switch (tab) {
    case '1':
      return <TabBeatUIEffect keyRecoil={keyRecoil} />;
    case '2':
      return <TabECGEventUIEffect keyRecoil={keyRecoil} />;
    case '3':
      return <TabStripManagermentUIEffect keyRecoil={keyRecoil} />;
    case '4':
      return <TabTeamplatesUIEffect keyRecoil={keyRecoil} />;
    case '5':
      return <TabHRSummaryUIEffect keyRecoil={keyRecoil} />;
    default:
      return null;
  }
};

// TabBeatUIEffect component
const TabBeatUIEffect = ({ keyRecoil }) => {
  const [pickedStartDate, setPickedStartDate] = useRecoilState(pickedStartDateState(keyRecoil));
  const [pickedEndDate, setPickedEndDate] = useRecoilState(pickedEndDateState(keyRecoil));
  const [pickedBookmarkDate, setPickedBookmarkDate] = useRecoilState(pickedBookmarkDateState(keyRecoil));
  const controlModal = useRecoilValue(controlModalState(keyRecoil));
  const resetControlModal = useResetRecoilState(controlModalState(keyRecoil));
  const resetControlHrSummaryModal = useResetRecoilState(controlHrSummaryModalState);
  const selectedStrip = useRecoilValue(selectedStripState(keyRecoil));
  const isActiveTab = useRecoilValue(isActiveTabState(keyRecoil));

  // Handle pick date action updates
  const setPickDateAction = usePickDateAction(keyRecoil, pickedStartDate, pickedEndDate, pickedBookmarkDate);

  // Reset modal when strip or tab changes
  useModalReset(selectedStrip, controlModal, resetControlModal, resetControlHrSummaryModal, isActiveTab);

  useEffect(() => {
    if (Object.keys(controlModal).length > 1) {
      if (!(controlModal.isShowChangeDurationButtonType && controlModal.isShowAddNewEvent && controlModal.isShowAddEcgBookmark)) {
        setPickedStartDate(null);
        setPickedEndDate(null);
        setPickedBookmarkDate(null);
        setPickDateAction(TPickDateAction.NONE);
      }
      if (controlModal.isShowChangeDurationButtonType || controlModal.isShowAddNewEvent) {
        setPickDateAction(TPickDateAction.START);
      }
      if (controlModal.isShowAddEcgBookmark) {
        setPickDateAction(TPickDateAction.BOOKMARK);
      }
    }
  }, [controlModal]);

  return null;
};

// Other Tab Components (ECG, Strip Management, Templates, HR Summary) follow the same structure

// TabStripManagermentUIEffect component
const TabStripManagermentUIEffect = ({ keyRecoil }) => {
  const activeButton = useRecoilValue(activeTabState(keyRecoil));
  const eventStripsData = useRecoilValue(eventStripsDataState(keyRecoil));
  const deviceEventData = useRecoilValue(deviceEventDataState(keyRecoil));
  const setEmptySelectedKey = useSetRecoilState(emptySelectedKeyState(keyRecoil));
  const setEmptySelectedKeyDevice = useSetRecoilState(emptySelectedKeyState(keyRecoil));

  useEffect(() => {
    const isDeviceEvent = DEVICE_TAB_TYPES.includes(activeButton);
    const config = { isEmptyTab: false };
    if (isDeviceEvent) {
      const filteredData = _.filter(deviceEventData?.[activeButton], x => x.filterType === activeButton);
      _.assign(config, { isEmptyTab: _.isEmpty(filteredData) });
      setEmptySelectedKeyDevice(config);
    }
    if (_.isEmpty(eventStripsData)) {
      _.assign(config, { isEmptyAutoEvents: true });
    }
    setEmptySelectedKey(config);
  }, [activeButton, eventStripsData, deviceEventData]);

  return null;
};

export default TabUIEffect;
import 'dart:async';
import 'package:flutter/material.dart';

class CustomSplashScreen extends StatefulWidget {
  final Widget child;
  final Duration duration;
  final String image;
  final Curve transitionCurve;
  final Function()? onEnd;
  const CustomSplashScreen({
    super.key,
    required this.child,
    required this.duration,
    required this.image,
    this.transitionCurve = Curves.easeInOut,
    this.onEnd,
  });

  @override
  State<CustomSplashScreen> createState() => _CustomSplashScreenState();
}

class _CustomSplashScreenState extends State<CustomSplashScreen>
    with SingleTickerProviderStateMixin {
  bool enableSplash = true;
  late Timer timer;

  @override
  void initState() {
    super.initState();
    _initializeSplash();
  }

  void _initializeSplash() {
    timer = Timer(
      widget.duration,
      () {
        setState(() {
          enableSplash = false;
        widget.onEnd?.call();
        });
      },
    );
  }

  @override
  void dispose() {
    timer.cancel();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return AnimatedSwitcher(
      duration: const Duration(milliseconds: 500),
      switchInCurve: widget.transitionCurve,
      switchOutCurve: widget.transitionCurve,
      child: enableSplash
          ? Container(
              color: Colors.white,
              child: Center(
                child: Image.asset(
                  widget.image,
                  fit: BoxFit.cover,
                  width: double.infinity,
                  height: double.infinity,
                ),
              ),
            )
          : widget.child,
    );
  }
}
6 8 9 11 10
13 16 19 22 24 25 25
43 46 47 48 50 52 56
55 57 60 61 64 65 68 74
81 84 86 83 84 87
45 47 50 49 46
15 16 18 16 16
79 80 81 79 80 83 85 89
70 73 74 72 77
78 80 81 81 83
77 79 82 85 88 88 89 87
74 75 75 78 80 82 82
83 84 84 87 88 90 94
9 11 14 16 16 21
40 42 44 48 51 53 56
71 74 78 81 80
7 9 11 14 18 20 21 21
74 77 81 82 83 87
76 77 79 80 84 86 93
62 63 69 72 75 77 78
21 23 29 32 35 37 35
85 87 88 94 94
45 47 49 56 60
45 46 51 54 56 61
63 60 62 65 67 69
39 37 40 43 44 45 46 45
84 81 84 87 87
93 91 93 95 99
45 44 46 47 49 56
72 69 68 69 72
83 81 84 81 80
4 3 5 7 6 8 10 10
92 90 87 89 93
46 45 47 44 47 48 49 54
43 42 43 43 45
18 15 15 17 20 21 19
72 71 72 73 75 75 78 78
49 46 47 49 51 51 52 56
73 72 73 74 75 78 78 84
52 49 53 55 57 60 62
21 19 23 25 27 29 28
80 77 78 81 85 86 88 88
21 20 24 27 31
37 35 39 42 48
64 61 63 69 70 72 74 75
84 83 85 88 94 91
24 23 30 32 34 37 37
70 69 70 75 79
4 3 8 10 13 20
13 13 15 17 18 19 21
9 9 10 12 15 13
50 50 53 55 57 60 62 62
5 5 7 9 13
43 43 45 47 48 50 55
79 79 81 84 82 85 88
92 92 95 93 96 95
22 22 23 22 23 25 26 26
84 84 85 83 87
72 72 70 71 72 78
17 17 19 19 20 21 24
41 41 44 47 47 44
31 31 31 32 34 35 35
7 7 9 12 12 14 18
21 21 21 22 29
83 83 85 86 88 92 94 97
26 26 27 30 33 37 35
28 28 32 35 35
82 82 85 88 92 96
6 6 10 12 18
83 83 88 89 90 92 95
19 19 24 26 28 27
41 41 48 49 49
25 25 32 33 34 36 40
28 28 29 30 33 36 43 50
83 87 89 90 93 96 99
46 50 53 54 55 58 59 56
65 69 70 73 76 78 78
67 71 72 75 77 78 82
82 86 87 89 96
81 85 86 88 91 93 92 94
59 63 66 67 65 67 64
16 20 19 20 20
89 93 96 93 97
70 74 72 74 77 83
7 11 13 14 14 15 16
26 30 31 33 36 39 39 38
55 59 62 64 64 66 66
30 34 35 35 38 40 43 47
5 9 9 12 15 22
43 47 49 52 53 54 58 61
38 42 46 48 51 53 50
1 5 6 10 10
9 13 17 20 21 23 27
28 32 36 39 40 43 48
23 27 33 36 38 40 41
51 55 57 63 61
64 68 70 77 78 81 83 83
22 26 29 32 37 41
80 84 90 92 93 99
57 63 66 68 70
75 82 84 85 86 85
52 58 61 62 62
49 56 59 61 63 66 70
33 39 40 42 45 46 53
71 77 75 76 77
73 79 76 79 82 84 82
53 58 60 62 64 63 63
47 54 51 53 55 58 60 64
70 77 74 76 83
41 46 46 48 49
26 31 33 33 32
82 89 91 91 92 92
54 60 60 61 65
20 25 26 26 31
49 56 57 61 62 65
60 65 68 70 72 76 77 75
8 13 16 20 22 24 27 27
17 24 25 29 31 35
74 79 83 86 93
5 11 14 21 22 25 28
48 53 55 61 64 67 69 68
68 73 74 80 82 82
9 14 19 20 21 25
10 15 22 24 29
68 65 63 61 59 60
25 24 21 20 20
71 69 66 65 62 58
77 76 73 71 64
83 80 81 79 78 75
20 17 20 19 18 20
70 67 65 64 66 66
93 92 94 92 88
75 72 69 70 68 61
12 10 7 7 5 4 2
63 62 59 59 62
18 17 14 13 12 12 10 10
82 80 78 78 75 71
26 24 23 23 18
49 47 43 42 39 36 34 33
50 49 46 42 39 41
38 35 31 29 27 25 25
15 14 10 7 5 1
69 66 64 60 59 56 55 49
77 75 73 67 64 62
95 93 90 87 81 82
14 13 12 10 9 4 4
62 59 56 49 46 42
47 44 37 34 32 30 29 24
79 81 78 75 72 70 67 65
62 64 63 60 58 59
66 67 66 64 63 61 61
38 39 38 36 34 30
39 42 41 39 38 37 34 27
58 61 58 55 53 52 53 52
82 85 87 85 88
25 26 27 25 23 21 21
87 89 91 88 87 86 84 80
34 35 33 34 32 27
85 88 85 84 84 83
14 16 16 14 15
16 18 15 12 12 10 10
55 57 54 52 52 48
71 74 73 73 72 67
25 28 24 21 19 16
59 62 60 56 55 53 52 54
55 57 53 50 47 45 44 44
34 37 34 33 32 28 24
84 87 83 80 78 76 73 66
23 25 23 17 15
75 78 76 74 73 70 65 68
24 25 19 17 17
95 98 92 91 87
91 92 90 83 77
45 45 44 43 42
88 88 85 82 79 78 75 77
55 55 54 53 50 50
73 73 70 67 64 60
97 97 94 92 91 84
7 7 6 3 4 3
71 71 70 67 65 66 67
69 69 70 67 64 61 60 60
20 20 18 16 14 16 15 11
39 39 36 38 35 33 30 25
42 42 42 40 38 36
49 49 46 46 44 43 45
19 19 17 15 15 13 13
81 81 81 78 76 75 71
20 20 17 17 14 12 11 5
74 74 73 69 68 66 63
68 68 65 61 58 61
44 44 40 37 34 34
60 60 59 55 53 49
38 38 36 32 30 23
70 70 68 62 61 58
51 51 49 48 41 39 41
28 28 25 19 18 18
19 19 12 9 8 4
83 83 76 73 67
66 62 59 56 55 53
19 15 14 13 15
78 74 72 69 67 66 66
93 89 88 87 84 82 78
92 88 87 86 85 83 80 73
84 80 82 80 78 76
71 67 69 66 67
84 80 78 81 81
25 21 18 17 16 18 14
57 53 55 54 47
18 14 14 11 10
66 62 59 58 55 55 58
79 75 74 74 74
67 63 60 60 59 56 52
49 45 42 40 38 37 37 31
94 90 87 85 81 79
30 26 23 22 21 17 19
75 71 68 65 63 60 56 56
97 93 91 90 86 83 79
23 19 18 14 12 6
93 89 88 82 79 77 74
57 53 52 50 47 42 45
41 37 34 32 27 27
96 92 91 86 84 81 80 76
57 53 47 44 41 39 33
49 43 41 39 38 37 35
44 38 37 35 38
24 18 16 13 11 11
67 61 58 57 55 51
60 55 53 52 46
49 44 46 44 41
16 9 10 8 5 7
27 21 20 21 19 16 16
20 15 13 16 13 9
91 84 87 86 81
60 55 52 49 49 46 45
16 9 7 5 4 4 3 5
94 88 88 86 83 83
84 77 76 76 73 70 68 64
65 59 57 55 52 49 49 42
47 41 38 36 32 30
24 19 18 14 12 14
43 38 36 32 32
78 71 68 64 62 58
38 31 27 26 20
30 24 23 18 16 13
61 55 52 45 42 39 37 40
30 24 23 22 17 15 15
75 69 64 62 60 57 55 51
94 89 86 80 78 71
13 15 18 21 19
20 22 23 26 29 29
41 43 46 49 53
27 30 31 32 39
18 21 23 22 23 26 28
64 66 69 66 68 69 71 68
15 18 21 19 21 24 24
76 78 80 77 81
60 61 62 64 63 64 70
13 16 17 17 20 21
66 69 72 72 75 74
14 16 16 17 17
5 6 6 8 12
1 3 6 6 12
64 67 71 74 75 78 81 83
20 22 24 26 30 33 35 34
29 31 35 37 37
31 32 36 37 40 42 46
59 62 65 69 72 74 77 82
77 78 83 84 85 88 91
72 74 76 82 83 85 83
12 13 15 21 21
63 65 68 70 76 80
42 44 47 48 53 54 55 60
43 41 43 45 46 49
38 36 39 40 41 40
16 15 16 17 17
29 27 29 32 35 39
28 25 27 30 33 38
44 41 43 40 42 44 46
72 70 71 70 72 70
83 80 78 81 83 85 88 88
43 41 43 45 46 49 47 51
69 66 65 66 67 68 74
31 28 31 31 34
66 64 67 70 70 71 68
86 83 83 86 87 89 89
76 74 74 76 79 82 86
6 3 3 4 10
43 42 43 44 47 49 53 55
64 62 64 68 65
61 59 62 64 65 69 72 72
87 85 88 92 96
48 46 50 53 60
12 10 15 17 19 20
26 25 27 29 30 37 34
25 22 25 27 32 33 35 35
55 53 55 62 65 67 70 74
79 78 80 87 89 96
58 58 61 62 64 66 68
66 66 68 71 73 75 72
30 30 32 33 34 37 37
30 30 33 36 38 40 44
78 78 80 81 83 90
56 56 59 62 65 63 64 66
38 38 39 40 37 39 41 40
79 79 77 79 82 84 87 87
21 21 19 21 22 24 28
23 23 22 25 31
68 68 70 72 72 75
21 21 22 22 23 25 23
22 22 25 26 26 28 28
84 84 84 87 90 92 96
76 76 79 79 85
26 26 28 32 34 36 38 40
15 15 17 21 19
59 59 62 65 69 71 71
30 30 32 35 38 42 43 47
53 53 54 55 59 64
28 28 30 37 38
57 57 64 67 66
65 65 66 69 74 74
49 49 55 56 60
39 39 41 42 49 56
77 81 83 84 86 89 91
12 16 18 19 22 24 22
24 28 30 33 35 38 41 41
85 89 91 93 95 99
1 5 6 9 11 18
66 70 72 74 75 77 75 76
67 71 72 74 76 73 70
2 6 8 11 12 9 9
52 56 53 55 56 60
15 19 22 21 28
71 75 77 77 80 83
16 20 22 22 25 23
18 22 25 26 26 26
8 12 12 14 15 18 19 23
53 57 60 63 63 64 66 72
37 41 44 48 50
32 36 38 42 44 47 46
3 7 9 11 13 17 17
72 76 80 83 87
61 65 68 70 72 76 77 82
35 39 41 48 51 53
80 84 85 92 94 95 94
17 21 24 31 31
61 65 70 73 76 80
34 38 41 44 50 51 58
22 27 30 31 33 36 39 42
51 58 59 60 63 61
35 41 42 44 45 46 49 49
77 83 85 87 89 93
14 20 23 24 25 27 32
28 34 36 37 39 36 38
62 69 71 70 68
79 84 81 82 85 86 86
63 69 71 68 70 74
18 24 21 22 23 28
76 81 82 83 83 84 86 87
62 69 72 72 69
79 84 84 87 90 90
4 10 11 11 15
46 52 55 56 56 58 63
58 65 68 72 73
44 50 53 55 59 56
67 72 76 79 81 83 84 84
64 70 72 76 77 79 80 84
14 21 25 27 29 35
11 16 18 19 25 27 30
26 32 34 41 39
18 25 26 29 35 35
15 22 28 29 32 33 37
74 81 82 88 95
56 53 52 51 50 48 51
11 9 6 3 3
42 39 36 35 31
67 64 62 60 54
9 6 9 8 5
38 35 33 36 35 36
59 57 56 53 55 55
97 96 94 92 93 89
88 87 86 87 86 81
40 37 37 34 31
29 28 28 27 26 29
91 89 87 84 84 84
85 84 84 81 77
16 14 11 11 5
95 94 91 90 86 83
40 39 38 37 33 35
32 31 27 26 26
22 20 16 13 9
32 29 27 25 24 20 19 14
60 57 55 50 48
28 25 22 20 13 10 8 9
45 43 42 36 33 30 30
89 88 86 79 77 76 73 69
27 26 19 16 13 10 3
21 24 23 21 20 19 18
32 35 32 30 28 27 29
68 71 68 65 63 60 59 59
58 59 58 57 53
43 46 44 43 40 38 35 28
9 11 12 10 7
85 86 83 80 77 80 77 78
8 10 8 7 5 6 6
53 56 53 52 53 49
24 27 25 23 20 22 20 15
12 15 14 14 13 10
53 54 53 50 50 47 44 45
36 38 35 35 34 33 31 31
36 39 39 37 33
71 72 72 71 69 64
11 13 11 10 6 4
52 53 49 48 50
59 61 59 55 54 54
82 84 81 77 76 73 71 67
56 57 54 53 49 46 44 37
64 66 65 60 57
65 67 64 58 57 56 59
90 92 85 84 81 78 78
43 45 44 42 36 32
27 29 26 24 23 20 14 9
53 53 51 49 47 44 42 39
85 85 82 81 79 76 75 78
51 51 50 48 46 46
78 78 75 73 71 69 67 63
36 36 33 31 29 22
73 73 71 74 71
16 16 13 11 13 14
64 64 61 62 62
53 53 55 52 48
48 48 49 48 41
28 28 26 26 25
48 48 46 43 43 42 45
77 77 74 72 71 71 68 68
36 36 33 31 31 30 28 24
26 26 23 23 17
89 89 86 82 79 76 75
14 14 13 12 8 6 8
88 88 84 81 80 80
55 55 54 50 47 43
99 99 95 92 89 86 84 78
56 56 54 47 44
18 18 16 14 8 7 8
87 87 80 79 78 76 74 74
86 86 81 78 76 72
87 87 84 77 75 73 66
82 78 76 73 70 69 68
38 34 32 30 27 25 24 25
64 60 59 56 55 55
50 46 45 44 42 38
21 17 14 11 9 3
39 35 34 32 34 31
73 69 67 64 61 58 59 62
23 19 16 14 17 17
22 18 19 17 13
27 23 21 19 21 18 17 12
60 56 55 53 50 50 49
21 17 14 14 17
61 57 57 55 53 52 52
89 85 83 82 82 81 79 75
90 86 84 84 78
52 48 46 42 39
85 81 79 78 74 72 69 72
40 36 34 31 28 24 24
89 85 81 79 76 74 70
43 39 35 32 29 27 22
45 41 35 34 33 32 30 28
74 70 68 62 64
92 88 86 81 79 76 73 73
71 67 64 63 57 56 52
93 89 88 81 80 75
27 21 18 16 14
18 11 10 9 8 6 7
80 75 73 71 71
27 21 19 17 15 12 10 6
43 38 36 34 33 28
71 64 63 64 62
97 91 89 88 87 88 89
68 63 60 63 61 61
17 11 13 10 9 7 5 1
64 57 55 57 55 53 47
73 66 63 60 59 59 56 53
27 22 21 20 19 16 16 19
31 25 25 24 24
34 28 28 25 24 20
73 68 65 65 64 59
67 62 59 55 54 51 48 46
76 70 68 64 61 58 60
83 76 75 71 71
76 71 69 68 64 60
42 35 32 31 27 24 21 14
52 46 44 43 36 33
69 62 56 53 52 49 51
23 18 12 10 9 7 7
74 67 64 62 56 52
28 21 15 12 9 2
48 49 50 51 49
48 51 52 53 54 56 56
61 64 67 70 74
14 17 20 23 29
11 13 10 13 16
26 28 31 30 33 30
17 20 22 19 19
59 61 63 65 62 66
64 66 67 70 67 70 71 76
20 22 22 25 28 31
82 84 85 85 87 90 87
32 33 36 37 37 39 41 41
30 33 36 38 40 42 42 46
83 85 86 89 92 92 93 99
13 14 15 19 22 23 25
20 21 25 28 26
17 19 22 26 26
35 36 40 42 45 49
19 22 23 24 28 34
37 39 40 46 49
74 76 78 84 81
23 25 28 35 35
82 83 89 90 92 96
39 41 47 48 53
26 24 26 29 30 31 33 34
8 7 10 11 9
38 37 39 40 41 41
39 38 40 42 46
68 66 69 70 72 78
60 57 59 60 58 61 62
62 60 61 59 58
11 10 12 14 13 13
63 62 61 64 67 71
89 86 85 88 90 91 97
34 32 32 33 35
16 14 14 17 18 19 18
20 17 20 22 25 28 28 28
6 5 6 6 10
20 17 18 18 20 25
20 19 22 26 29 32 35
59 56 59 62 65 69 66
72 70 71 75 76 79 82 82
30 29 32 36 40
80 79 83 86 93
25 24 31 32 34 35 36
12 9 14 16 13
26 23 29 32 35 36 36
23 22 27 28 32
71 68 74 77 80 83 89
81 81 84 87 90 93 95 97
66 66 67 69 72 73 75 73
75 75 76 78 80 82 82
15 15 16 18 21 25
51 51 53 56 61
74 74 71 72 75
34 34 36 35 32
41 41 44 43 43
72 72 69 71 75
51 51 52 53 51 57
53 53 55 58 59 59 61
1 1 4 4 7 4
76 76 79 79 82 83 83
2 2 4 4 7 8 12
85 85 86 88 88 93
57 57 59 63 66 67
65 65 68 69 71 72 76 75
71 71 75 78 80 80
29 29 33 36 40
63 63 65 69 70 73 74 81
11 11 17 18 21 24
79 79 82 84 90 91 93 91
15 15 20 23 25 25
76 76 78 80 86 88 91 95
38 38 39 46 51
47 51 53 54 55
33 37 38 41 40
6 10 13 15 15
50 54 56 59 60 62 66
1 5 6 9 14
44 48 46 48 50 52
34 38 40 41 42 43 40 37
77 81 82 83 82 83 83
17 21 22 23 21 22 26
74 78 80 78 80 83 88
47 51 51 52 54 56
65 69 72 74 75 75 77 76
56 60 63 63 64 66 68 68
53 57 58 59 59 61 65
30 34 35 37 39 39 42 47
72 76 78 82 85 88 89
56 60 64 65 68 66
83 87 90 94 94
12 16 20 22 25 29
45 49 53 56 63
67 71 78 79 80 81 82
75 79 82 84 89 92 91
49 53 55 58 61 62 69 69
58 62 64 69 70 73 76 80
48 52 57 60 61 62 63 69
45 52 54 56 58 60
13 19 21 24 23
25 31 32 33 34 37 37
76 82 83 85 86 88 92
48 55 56 58 64
16 22 23 21 24 25 28
25 32 34 36 35 32
11 18 19 16 17 19 19
25 31 32 34 37 40 38 42
15 20 22 20 26
67 72 75 75 76 79
26 31 32 34 35 35 32
71 77 80 81 83 85 85 85
44 49 52 52 56
66 71 71 72 73 76 78 83
54 60 64 66 68 71 73
36 42 45 46 50 52 49
79 84 87 90 92 96 96
30 37 40 42 44 45 49 53
36 41 45 47 53
45 52 59 61 63
11 18 20 27 28 26
16 21 28 31 31
13 19 20 26 28 29 30 34
56 61 62 65 72 75 82
20 18 16 15 16
37 34 33 32 31 30 30
50 49 46 45 42 38
61 58 55 53 51 48 43
72 69 68 71 70 67 65
13 10 11 9 8 7 10
64 63 61 62 62
48 46 47 46 42
44 42 43 41 40 33
11 8 8 5 2
94 91 91 88 89
47 46 43 43 40 40
93 90 87 87 83
25 23 20 18 18 12
83 82 79 75 72
38 35 32 29 25 23 24
77 76 74 70 68 66 66
85 83 81 78 77 75 71 67
49 48 47 43 42 36
79 78 75 73 72 70 63 61
32 29 27 24 18 19
48 47 40 38 38
56 53 50 49 42 39 35
25 22 21 20 15 8
59 61 58 57 55 54
64 67 64 61 60 58 61
21 23 22 20 19 16 16
68 69 67 65 64 60
21 23 21 20 17 15 12 5
11 12 10 7 8 6 4 3
94 96 93 95 98
77 79 77 78 75 72 72
23 24 21 19 20 19 15
32 34 33 34 27
15 17 17 16 15
34 37 35 32 31 31 33
24 25 22 20 19 19 19
15 18 15 15 13 11 7
88 90 90 89 86 85 83 76
81 84 81 77 74 72 69
50 53 50 46 49
51 53 49 48 48
52 53 49 46 44 41 38 34
57 60 58 55 51 48 41
87 89 88 82 79
64 65 64 61 54 55
95 96 93 90 83 81 78 78
17 20 18 11 9 6 5 1
42 45 38 36 29
48 48 47 44 41 40
21 21 18 16 13 12 10 13
64 64 63 60 57 57
19 19 17 14 11 8 6 2
18 18 15 13 8
97 97 99 98 95 94
42 42 40 42 40 38 39
5 5 8 6 4 4
66 66 64 63 61 64 62 58
18 18 16 18 16 15 13 6
23 23 23 20 17 16
41 41 41 38 40
36 36 34 31 28 28 28
70 70 70 68 65 64 62 58
21 21 19 19 14
66 66 62 61 59 56 54 53
78 78 74 71 68 67 66 68
81 81 80 78 74 73 71 71
69 69 68 64 60
68 68 66 62 60 57 55 48
55 55 48 45 43 42 40 38
23 23 21 14 15
61 61 60 57 56 51 51
66 66 64 62 60 54 50
96 96 90 87 81
39 35 33 31 30 28 25
35 31 28 26 23 26
83 79 78 77 75 72 72
42 38 37 35 31
50 46 44 43 40 38 37 31
74 70 69 71 69 68 65 63
97 93 90 93 96
43 39 38 35 38 35 35
60 56 59 57 53
87 83 82 85 83 77
28 24 22 22 19 17
52 48 48 45 48
16 12 9 9 8 6 6
94 90 88 86 86 84 81 77
87 83 83 80 78 77 71
66 62 61 57 56
36 32 28 25 24 21 24
64 60 59 56 52 52
73 69 68 65 63 62 58 54
76 72 68 67 65 62 56
33 29 24 21 18
94 90 88 81 83
30 26 21 20 20
42 38 36 30 26
47 43 38 35 28
40 35 32 31 28 25
87 82 80 77 76 75 76
16 10 8 5 2 2
29 24 23 20 18 15 12 8
57 50 48 45 40
58 52 54 53 50 49
86 80 77 78 76 73 75
75 70 67 69 69
66 60 57 58 55 54 51 47
38 32 30 29 31 24
54 47 45 43 43 41
74 69 67 67 70
52 47 44 44 41 39 37 37
36 31 29 26 26 24 20
32 26 25 23 22 22 21 16
34 28 25 21 19
86 80 76 73 75
65 58 54 51 50 49 49
50 43 41 38 37 35 31 27
35 28 24 21 18 11
34 27 20 18 16
14 9 8 3 6
63 57 56 49 49
94 88 85 79 77 73
70 65 60 57 56 55 52 45
69 69 66 65 64 67 66 66
62 64 66 66 63
82 80 78 76 72 74
90 92 92 93 94
69 67 64 62 60
42 45 47 48 51
36 39 42 43 46 49 52
13 10 9 7 5
25 26 28 29 31 33 35 38
14 13 12 9 7 4 2
65 68 70 72 75 77
23 26 28 29 31 34 35 37
17 14 12 9 7 6 4 2
33 34 37 38 41
37 36 33 30 27
5 8 9 10 12
63 61 58 57 54
23 25 28 31 33 35 38 39
13 10 7 6 4
86 88 90 91 92 94
55 54 53 51 50 48 46
33 30 27 24 21 18
65 67 70 73 74 75 78
53 51 48 45 43 40 37
94 92 91 89 87 86 83
69 71 74 75 76
72 74 77 79 81 82 84 85
21 18 17 14 11
18 17 14 12 9
88 91 92 94 96 99
12 9 6 5 2
68 65 62 61 60 57 55 53
30 27 25 22 19 18 17
34 37 39 42 44 47 49 51
71 74 77 80 81 84 87
29 28 25 23 20 17 14 12
53 54 57 58 59
23 21 19 17 16 15
31 34 36 37 39 41 42 44
58 61 64 66 68 70 72
3 4 6 9 10 13 15
64 63 60 58 56 54 53 52
75 77 78 80 81 83 86 88
61 63 65 66 68 71 73
20 23 24 26 28 30 33
18 15 12 10 7
50 48 45 43 40 39 37 36
48 47 45 42 41 39
7 10 11 13 14 17 18
25 22 19 18 16 14 12 11
53 50 47 45 42
57 58 59 60 62 64 65
38 41 42 43 44 46 47
50 53 56 57 60 62 64
86 83 81 78 76 74 72 69
60 61 64 66 68 69 71 73
13 16 18 19 22 25 26 27
77 79 81 84 85
81 79 78 76 73 71
32 34 37 40 42
89 88 87 85 84 83
59 62 65 67 68 70 73 74
54 57 58 60 63
34 32 31 29 27 24 21
43 45 46 49 51
76 78 79 80 82 84
36 34 32 30 27
23 24 25 28 29
19 22 25 28 30 33 35
61 59 57 54 52 50
23 24 25 27 30 32 33 34
63 64 66 69 70 71 72 74
85 86 88 89 92 95 96 97
8 9 10 13 15
74 73 71 68 65 62 60 59
51 48 45 44 41 38 36
41 39 38 36 34 31
58 59 60 62 64
29 31 33 36 38 39 41 43
1 2 4 5 7 10 11 14
24 27 29 32 33 35
54 52 50 49 47 45
30 29 27 24 21 19 16 14
44 46 49 50 51 52 54
24 25 28 31 34 36
53 52 51 50 47
63 62 60 58 57 56 54 51
38 39 41 44 47 49 52
97 96 93 90 87 84 83
81 79 77 75 72 70
36 35 32 31 29
76 77 80 83 86 89 91
21 22 24 27 28 30 32 33
80 81 82 84 85 86
94 93 91 88 85 84 81 79
77 79 81 82 85 86 89 91
42 39 36 35 32 29 27
19 18 16 15 14
63 62 60 57 55 54 53 51
31 30 27 25 23 22 20 18
35 37 38 40 42 45 46
41 44 45 47 48 51
19 21 23 26 29 31
32 30 28 26 23
31 33 35 37 38
46 43 40 37 35 32
81 80 77 74 71
16 17 18 19 22
67 65 64 62 61
66 63 61 58 55 54 51
46 49 52 54 56
51 50 47 46 43
30 32 33 35 36
66 63 60 58 57 56 55
67 64 61 59 56 55
37 36 33 32 31
87 88 91 92 93 95 96
62 59 58 55 54
12 10 9 8 5
64 62 61 60 58
16 18 21 24 27 28 29
79 78 76 73 71 70 69 66
87 85 84 82 81 79 77
74 76 79 81 82 83 86 89
91 89 87 85 84 81 78 77
75 72 71 68 65 64 62 59
52 55 58 60 62 64
44 46 49 51 53 54 55 56
65 63 62 59 56 55 52 51
21 23 25 28 31 32 34 37
81 79 78 76 73 72 69 67
14 11 10 9 8 6 3
59 56 55 53 51 49
62 59 58 56 54 53 52 49
45 48 49 51 53 55 56
11 13 16 18 20 21 24
27 26 23 22 19 18
70 67 64 62 60 57 55
96 94 91 90 88 86
63 66 67 70 73
5 8 11 14 16 19 21 22
83 85 86 88 91 92
40 39 36 35 34
73 75 77 78 81 83
50 49 47 46 44 41 38 35
73 76 79 81 83 86 88 90
15 16 18 20 21
85 87 88 89 91
71 73 75 76 77 79 80 83
28 25 22 21 20
15 17 19 20 21 24 25
40 39 37 34 31 30 27 25
90 87 86 83 81 78 76 75
32 31 28 25 24 21 18
9 11 14 16 18
9 10 11 14 16 19 21 22
14 13 12 10 9 7 6
53 50 48 46 43 42
51 54 56 59 61 63 66 68
39 41 43 44 47 50 53
77 75 74 73 72 70 68
40 43 46 48 50 52 54
44 46 49 50 53 55 58 59
13 14 15 18 20 21 24
13 16 18 20 23 25
16 19 20 23 26
34 35 36 38 41 43
62 59 58 56 55 53 52
14 13 10 8 5 4 2
14 13 12 9 6 4
25 23 21 19 16 15
64 63 60 57 55 53 50 48
51 53 54 55 56 58 60
74 72 69 66 64 63 61 58
6 9 11 14 15 18 19
69 72 73 76 78 79
47 45 43 41 39
30 28 26 23 20 19 17
11 9 7 6 5 2 1
53 51 50 49 48 45
56 58 59 60 63 65 67
88 85 84 81 79 78 77
90 87 85 84 81 80 77
49 46 45 42 40 37 36
26 24 23 22 20 18
45 43 42 41 38
66 68 69 72 75
25 24 21 20 17 14
50 52 55 56 57 59 60 63
15 14 13 10 9 6
47 46 44 42 41 39
75 77 79 80 83 85 86 88
13 10 7 4 3
95 92 89 87 84 81
88 89 91 94 95 97 99
79 76 74 71 68 66 65
83 85 86 87 89 90 92
44 45 46 48 51
20 17 16 14 12
59 60 63 65 67 70 72 75
11 12 13 14 16 18
63 60 59 57 55 53 51
39 36 34 33 31 30 27 24
61 59 58 56 53
34 31 29 27 24
66 67 68 70 73 74 77
88 90 91 93 96 97 98
58 59 61 64 65 68 71
19 16 15 14 11 10
34 31 28 25 23 21 18 16
9 12 15 16 19 22
11 13 16 19 20 23 24
97 96 95 94 93 92 89
33 30 29 28 26
2 3 4 5 7 8
57 60 61 64 67
23 25 27 29 31 34 37 38
70 67 65 64 61
80 79 78 77 75 72
43 40 38 37 34
56 58 59 61 62 64
54 57 58 60 62 64 67 69
36 33 30 27 26 25
48 50 53 56 59 62 63
61 59 58 57 55 53
81 82 83 85 86 89 92
37 40 43 45 47 49 51
99 97 95 92 89
30 32 35 37 38
52 53 54 57 59 60 61 62
58 56 53 51 50
30 29 26 25 24
16 15 13 11 8 6
26 23 21 20 19 18
72 71 68 67 66 63 60
18 15 13 12 9 6
70 69 68 67 66 65
64 66 68 71 72 74 76
47 45 43 40 38
9 12 13 14 15 17 19 20
50 52 54 55 57 59 62 65
17 15 14 12 10
26 25 23 22 20 18 16 15
82 80 78 77 75
96 95 93 92 89
22 23 25 28 29 32 33 35
35 37 40 42 44 47 50
74 73 70 69 67 64
19 17 14 12 11 8 5 3
62 64 67 68 70
69 71 73 74 76 78
7 8 9 10 13 14
84 82 80 78 76 75 72
18 21 24 25 26
54 56 57 60 62 64 65
62 63 66 68 70 73
You are a helpful Al programming assistant.
When asked for your name, you must respond with 'Code Copilot(CC)'.
Follow the user's requirements carefully & to the letter.
Your expertise is strictly limited to software development topics.
For questions not related to software development, simply give a
reminder that you are a helpful Al programming assistant.
Keep your answers short and impersonal.
You use the GPT-4 version of OpenAl's GPT models.
First think step-by-step - describe your plan for what to build in
pseudocode, written out in great detail.
Then output the code in a single code block.
Make sure to include the programming language name at the start of the
Markdown code blocks,
Only comment on crucial lines.
Minimize any other prose.
Keep your answers short and impersonal.
Use Markdown formatting in your answers.
Avoid wrapping the whole response in triple backticks.
The user works in ChatGPT web UI, where they may paste their code or
upload files from their local repo, or provide links like GitHub url to the
related code or documentation.
If the user providing links, you should use the browser tool to retrieve the
content from the links.
Carefully answer the user's question according to the page content.
If the user providing files, you can use the myfiles browser tool to read
the file.
If the user asks to execute or test the Python code, you can try to use the
python tool to execute it.
You must not visit the links or execute the code unless the user explicitly
asked.
You should always generate short suggestions for the next user turns that
are relevant to the conversation.
{
	"blocks": [
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": " :sunny: Boost Days - What's on this week! :sunny:"
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Let's make this week a great one with our Boost Day Program :yellow_heart: See below for what's in store! "
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-3: Tuesday, 3rd December",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n:coffee: *Xero Café*: Café-style beverages and sweet treats\n:heart: *Barista Special*: _Iced Hazelnut Latte w/ whipped cream_. \n:pancakes: *Breakfast*: Provided by *Catroux* from *8:30am - 11am* \n"
			}
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-5: Thursday, 5th December",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": ":coffee: *Xero Café*: Café-style beverages and sweet treats \n:heart: *Barista Special*: _Iced Hazelnut Latte w/ whipped cream_.\n :cookie: *Light Lunch*: Provided by *Sticky Fingers* from *12.30pm - 1.30pm*"
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Stay tuned to this channel for more details, check out the <https://calendar.google.com/calendar/u/0?cid=eGVyby5jb21fMXM4M3NiZzc1dnY0aThpY2FiZDZvZ2xncW9AZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ|*Auckland Social Calendar*>, and get ready to Boost your workdays!\n\nLove,\nWX :wx:"
			}
		}
	]
}
<textarea id="default">Hello, World!</textarea>
Updates: High Sierra and later
Latest versions for High Sierra, Mojave, Catalina, Big Sur, Monterey, Ventura and Sonoma:
32-bitCheck 1.8 – check 32-bit apps etc.
Alifix 1.3 – refresh and report broken Aliases
alisma 4 – Finder alias command tool
Apfelstrudel 1.5 – Unicode normalisation toolkit
Aquiline Check 1.0b2a – QuickLook cache control, includes Aquiliner 1.0
ArchiChect 2.5 – check app compatibility (macOS 11 and later)
Bailiff 1.5 – iCloud menubar control
Blowhole 11 – make log entry, command tool
cintch 3 – command tool to check file integrity
Cirrus 1.15 – full iCloud toolkit (11.5 and later)
cmpxat 4 – compare xattrs command tool
Consolation 3.13 – log browser
Cormorant 1.5 – compression-decompression (macOS 11 and later)
DeepTools 1.4 – preserve versions
DelightEd 2.3 – Rich Text editor
Dintch 1.6 – check file integrity
DispatchRider 0.3b1 – task scheduler
DispatchView 1.0 – inspect DAS and CTS in log
Dystextia 1.8 – obfuscate text with Unicode
Fintch 1.3 – drag and drop file integrity
HelpHelp 1.1 – Sierra only Help book toolkit (incompatible with High Sierra and later)
KeychainCheck 1.3 – check Keychains (not recommended for Mojave and later)
KeychainCheck 2.0 – advanced check Keychains
LockRattler 4.35 – check security systems – Sierra
LockRattler 4.37 – check security systems – High Sierra and later
Metamer 1.5 – simple metadata editor
Mints 1.20 – custom log browsers and tools to explore macOS (Big Sur and later)
Nalaprop 1.3 – parse text into parts of speech (Mojave and later only)
PermissionScanner 1.8 – check Home folder permissions
Podofyllin 1.3 – PDF reader
Precize 1.15 – file info including Aliases (High Sierra and later)
Revisionist 1.9 – document versions toolkit
Rosettavert 1.5 – text encoding conversion
RouteMap 1.0b4 – log Signpost harvest and analysis
Scrub 1.3 – clean sensitive files
SearchKey 1.5 – search metadata (full)
SearchKeyLite 1.5 – search metadata (basic)
Signet 1.3 – scans and checks bundle signatures (High Sierra and later)
The Signpost Kit 3 – RouteMap, Whither, Blowhole + tutorial bundle
SilentKnight 1.21 – checks security systems automatically
SilentKnight 2.11 – Catalina to Sequoia
silnite 10 – command tool to check security systems
Sparsity 1.3 – create and find APFS sparse files (Big Sur and later)
Spundle 1.8 – create, resize and compact sparse bundles
Stibium 1.1 – SSD performance benchmarking
SystHist 1.20 – list update history
T2M2 1.19 – Time Machine check
T2M2 2.02 – Time Machine check (Big Sur and later)
Taccy 1.15 – checks app’s signatures and privacy settings
Ulbow 1.10 – simpler log browser with power and charts
unorml 5 – Unicode normalisation command tool
UTIutility 1.3 – discover and convert UTIs
Woodpile 1.0b6 – top-down log browser (incompatible with Mojave and later)
xattred 1.5 – extended attribute (xattr) toolkit
XProCheck 1.6 – inspect reports of anti-malware checks (Catalina and later)
class Invoice_Events
{

    [PostHandlerFor(classStr(NW_InvoiceDP), methodStr(NW_InvoiceDP, processReport))]
    public static void NW_InvoiceDP_Post_processReport(XppPrePostArgs args)
    {
        SalesTable  SalesTable;
        SalesLine   SalesLine;
        DirPartyPostalAddressView           dirPartyPostalAddrlocal;
        DirPartyLocationRolesView           dirPartyLocationRoleslocal;
        LogisticsLocationRole               logisticsLocRole;
        NW_InvoiceType                      InvoiceType;
        CustInvoiceJour                     InvoiceJour;
        DimensionAttributeValueSetStorage   dimStorage;

        NW_InvoiceDP dpInstance = args.getThis() as NW_InvoiceDP;
        NW_InvoiceTmp InvoiceTmp = dpInstance.getASASSalesInvoiceTmp();
        SalesTable = SalesTable::find(InvoiceTmp.SalesId);
        select InvoiceType where InvoiceType.CodeType == SalesTable.InvoiceType;
        select InvoiceJour where InvoiceJour.InvoiceId == InvoiceTmp.InvoiceId;

        select firstOnly * from dirPartyPostalAddrlocal order by RecId desc
        exists join dirPartyLocationRoleslocal
            where dirPartyLocationRoleslocal.Location   == dirPartyPostalAddrlocal.Location
                && dirPartyLocationRoleslocal.Party     == CustTable::find(SalesTable.CustAccount).Party
                && dirPartyPostalAddrlocal.IsPrimary == NoYes::No
            exists join logisticsLocRole
            where logisticsLocRole.Name     == 'Arabic Add' //like Delivery,Invoice,Business
                && logisticsLocRole.RecId   == dirPartyLocationRoleslocal.LocationRole
                && logisticsLocRole.IsPostalAddress;
        ttsbegin;
        InvoiceTmp.ArAddress = dirPartyPostalAddrlocal.address;
        InvoiceTmp.InvoiceTypeAr = InvoiceType.Arabic;
        InvoiceTmp.InvoiceTypeEn = InvoiceType.English;
        InvoiceTmp.ServiceMonth = strFmt("%1/%2",InvoiceJour.Month,InvoiceJour.Year);
        select firstonly SalesLine where SalesLine.SalesId == SalesTable.SalesId;
        dimStorage = DimensionAttributeValueSetStorage::find(SalesLine.DefaultDimension);
        InvoiceTmp.Project = ProjTable::find(dimStorage.getDisplayValueByDimensionAttribute(DimensionAttribute::findByName('FD04_Profit_Center').RecId)).Name;
        // CustTable.VATNum
        InvoiceTmp.update();
        ttscommit;
        NW_InvoiceLineTmp InvoiceLineTmp = dpInstance.getASASSalesInvoiceLineTmp();
        ttsbegin;
        while select forUpdate InvoiceLineTmp
        {
            select SalesLine where SalesLine.SalesId == SalesTable.SalesId
                && SalesLine.LineAmount == InvoiceLineTmp.LineAmountMST
                && SalesLine.SalesQty == InvoiceLineTmp.qty;
            InvoiceLineTmp.SalesUnit = SalesLine.SalesUnit;
            InvoiceLineTmp.update();
        }
        ttscommit;
    }

}
DimensionAttributeValueSetStorage dimStorage;

dimStorage = DimensionAttributeValueSetStorage::find(SalesLine.DefaultDimension);
InvoiceTmp.Project = ProjTable::find(dimStorage.getDisplayValueByDimensionAttribute(DimensionAttribute::findByName('FD04_Profit_Center').RecId)).Name;
        
Online education has transformed the way students access learning opportunities, providing flexibility and accessibility to millions of learners worldwide. However, this shift to digital classrooms has introduced a unique set of challenges for both students and institutions. While online learning offers unmatched convenience, it also requires a high level of self-discipline, organization, and independent work&mdash;qualities that many students may struggle to maintain in the absence of traditional classroom structures. To cope with these pressures, more and more students are turning to [url=https://takemyclassonline.net/]pay someone to take my class[/url] services, which offer professional assistance to complete assignments, exams, and even entire courses. This burgeoning industry has raised questions about the ethical implications of outsourcing academic tasks, the potential consequences for student learning, and how it might shape the future of education.
One of the primary reasons for the increasing demand for "Take My Online Class" services is the overwhelming nature of online coursework. While traditional college courses are often accompanied by in-person instruction and scheduled class time, online courses require students to manage their time independently. For many students, particularly those juggling multiple commitments such as part-time jobs, internships, or family responsibilities, keeping up with the pace of coursework can become a daunting task. The flexibility that online education offers&mdash;such as being able to study and complete assignments at one&rsquo;s own pace&mdash;can quickly turn into a challenge when students find themselves overwhelmed with deadlines and coursework. In this context, hiring a professional to take over some or all of their coursework can help students stay on track academically, ensuring that they maintain their grades without sacrificing other aspects of their lives.
The types of courses that students take online also contribute to the demand for these services. While some online programs are relatively easy to navigate, others, especially those in fields such as engineering, business, or the sciences, require an advanced level of expertise and understanding. These subjects often involve complex problem-solving, research, and technical skills, which can be difficult for students who are not well-versed in the subject matter. For students in these programs, completing assignments and studying for exams can feel overwhelming. &ldquo;Take My Online Class&rdquo; services provide access to experts in various fields, who [url=https://takemyclassonline.net/nurs-fpx-4020-assessment-1-enhancing-quality-and-safety/]nurs fpx 4020 assessment 1[/url] are well-equipped to help students complete their coursework with the depth and accuracy required. By outsourcing these tasks, students can ensure their work meets academic standards without struggling to grasp challenging concepts on their own.
International students also face unique challenges in online education. Many online courses are taught in English, and for students whose first language is not English, this can present significant obstacles. Writing papers, participating in discussions, and understanding complex readings can be much harder for non-native English speakers. In addition, the differences in academic writing styles and cultural expectations between countries can further complicate the learning process. To overcome these challenges, international students often turn to "Take My Online Class" services to help with writing assignments, essays, and other tasks that require fluency in academic English. These services help level the playing field, ensuring that international students are not disadvantaged due to language barriers, and enabling them to submit high-quality work that meets the expectations of their professors.
Another reason for the rising popularity of these services is the sheer volume of coursework that online students are often required to complete. Many online programs require students to engage in frequent assignments, quizzes, and discussions, which can be overwhelming when combined with exams and projects. This constant flow of work can create significant stress for students, especially when they are balancing other life responsibilities. In these cases, outsourcing specific tasks, such as writing papers or taking exams, can give students the breathing room they need to focus on other academic requirements or personal commitments. While these services are not meant to replace the learning process, they can serve as a valuable tool for students who find themselves struggling to keep up with their course load.
Despite the clear advantages of using &ldquo;Take My Online Class&rdquo; services, the practice has sparked significant debate regarding academic integrity and the role of technology in education. Critics argue that outsourcing assignments and exams undermines the [url=https://takemyclassonline.net/nurs-fpx-4020-assessment-2-root-cause-analysis-and-safety-improvement-plan/]nurs fpx 4020 assessment 2[/url] educational process by allowing students to bypass the very work that is meant to foster learning and intellectual growth. According to this viewpoint, education is more than just a means of obtaining grades; it is about developing critical thinking, problem-solving, and research skills that will serve students well in their professional lives. By paying someone else to do their work, students may miss out on developing these crucial competencies. Furthermore, there is the potential for students to rely too heavily on these services, leading to a lack of engagement with their coursework and a shallow understanding of the material.
There are also concerns about cheating and plagiarism. While many &ldquo;Take My Online Class&rdquo; services promise to provide original work and ensure that assignments meet academic standards, there is always the risk that students could end up submitting work that is plagiarized or not entirely their own. This could lead to serious academic consequences, including failing the course or facing disciplinary action. Moreover, it is difficult to monitor the practices of all services, and some may not adhere to the ethical standards they claim to uphold. These risks have led some critics to argue that these services contribute to the erosion of academic honesty and fairness.
On the other hand, supporters of &ldquo;Take My Online Class&rdquo; services argue that these platforms offer valuable academic assistance, similar to tutoring services or study groups. Many students seek help from tutors, professors, or peers to better understand the material and complete their coursework. In this sense, outsourcing certain tasks does not necessarily detract from the learning process, but rather provides students with the additional support they need to succeed. In fact, some argue that these services help students focus on the most challenging aspects of their studies, allowing them to engage more deeply with the material rather [url=https://takemyclassonline.net/nurs-fpx-4020-assessment-3-improvement-plan-in-service-presentation/]nurs fpx 4020 assessment 3[/url] than becoming bogged down by routine assignments. When used responsibly, these services can provide a helpful supplement to the learning process, without undermining the student&rsquo;s overall education.
Another point to consider is the role of technology in reshaping the way education is delivered and consumed. The growth of &ldquo;Take My Online Class&rdquo; services highlights a larger trend toward greater reliance on technology in education. As more students take advantage of online learning opportunities, educational institutions are increasingly adopting digital tools, such as automated grading systems, online tutoring platforms, and interactive learning environments. These technologies are designed to make learning more efficient and accessible, but they also raise questions about the potential for students to use them to bypass the learning process. Some argue that the convenience of outsourcing academic work could eventually lead to a shift in how we value education, where the focus is placed more on grades and outcomes rather than on the actual learning process.
Despite the controversy surrounding &ldquo;Take My Online Class&rdquo; services, it is clear that they have filled a gap in the online education system. For students who are overwhelmed by the demands of their coursework, these services provide a valuable resource that can help them maintain their academic standing. They offer a way for students to balance their academic obligations with other aspects of their lives, such as work, family, or personal health. Moreover, these services help bridge the gap for students who may be struggling with difficult material or language barriers, ensuring that they are not left behind due to circumstances beyond their control.
In conclusion, &ldquo;Take My Online Class&rdquo; services represent a growing trend in modern education, one that reflects both the opportunities and challenges presented by online learning. While these services provide a valuable solution for students who are struggling to keep up with their coursework, they also raise important ethical and educational questions. As the demand for these services continues to rise, educational institutions may need to explore new ways to support students and help them stay engaged with their studies. Ultimately, the future of online education will likely involve finding a [url=https://takemyclassonline.net/nurs-fpx-4020-assessment-4-improvement-plan-tool-kit/]nurs fpx 4020 assessment 4[/url] balance between flexibility, academic integrity, and the support systems necessary to help students succeed.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ArrowScript : MonoBehaviour
{
    private Rigidbody2D rb;
    private bool hasHit = false;
    private float horizontalInput;

    void Start()
    {
        // گرفتن ریگیدبادی
        rb = GetComponent<Rigidbody2D>();
    }

    void Update()
    {
        // اگر تیر هنوز به چیزی برخورد نکرده، ردیابی زاویه حرکت را انجام بده
        if (!hasHit)
        {
            AlignWithMovement();
        }
    }

    void AlignWithMovement()
    {
        // بررسی جهت حرکت و چرخاندن تیر
        if (rb.velocity.magnitude > 0.1f)
        {
            float angle = Mathf.Atan2(rb.velocity.y, rb.velocity.x) * Mathf.Rad2Deg;
            transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
        }
      
    }

    private void OnCollisionEnter2D(Collision2D col)
    {
        // توقف تیر پس از برخورد
        hasHit = true;
        rb.velocity = Vector2.zero; // توقف حرکت
        rb.isKinematic = true; // غیر فعال کردن فیزیک
    }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Shot : MonoBehaviour
{
    public float LaunchForce = 5f; // قدرت شلیک اولیه
    public float MinLaunchForce = 2f; // حداقل قدرت شلیک
    public float MaxLaunchForce = 20f; // حداکثر قدرت شلیک
    public float ScrollSensitivity = 1f; // حساسیت اسکرول موس
    public GameObject Arrow; // تیر
    public Transform ArrowSpawnPoint; // نقطه شروع تیر (ترانسفرم)


    public GameObject SimpleArrow;
    private GameObject currentArrow;
    void Update()
    {
        // تغییر قدرت شلیک با اسکرول موس
        AdjustLaunchForceWithMouseScroll();



        if (Input.GetKeyDown(KeyCode.Q))
        {
            currentArrow = SimpleArrow;

            Debug.Log("Switched to Simple Arrow");
        }
        // شلیک با دکمه Space
        if (Input.GetKeyDown(KeyCode.Space))
        {
            Shoot();
        }
    }

    void AdjustLaunchForceWithMouseScroll()
    {
        // خواندن مقدار اسکرول موس
        float scroll = Input.GetAxis("Mouse ScrollWheel");

        // تغییر قدرت شلیک بر اساس اسکرول
        LaunchForce += scroll * ScrollSensitivity;

        // محدود کردن قدرت شلیک بین حداقل و حداکثر
        LaunchForce = Mathf.Clamp(LaunchForce, MinLaunchForce, MaxLaunchForce);

        // نمایش مقدار قدرت شلیک در کنسول (اختیاری)
       // Debug.Log("Current Launch Force: " + LaunchForce);
    }

    void Shoot()
    {
        // ایجاد یک نمونه از تیر
        GameObject ArrowIns = Instantiate(Arrow, ArrowSpawnPoint.position, ArrowSpawnPoint.rotation);

        Rigidbody2D rb = ArrowIns.GetComponent<Rigidbody2D>();
        if (rb != null)
        {
            rb.isKinematic = false;
            rb.AddForce(ArrowSpawnPoint.right * LaunchForce, ForceMode2D.Impulse);
        }
    }
}
using UnityEngine;

public class Bow : MonoBehaviour
{
    private Vector2 direction; // جهت چرخش
    private Animator anim; // مرجع انیماتور
    private bool isAttacking = false; // وضعیت حمله
    private Rigidbody2D rb; // مرجع Rigidbody2D
    public float horizontalInput;
    public float moveSpeed = 5f; // سرعت حرکت

    void Start()
    {
        // گرفتن انیماتور و Rigidbody2D از آبجکت
        anim = GetComponent<Animator>();
        rb = GetComponent<Rigidbody2D>();
    }

    void Update()
    {
        // حرکت به چپ و راست
        float horizontalInput = Input.GetAxis("Horizontal");

        // اعمال سرعت به Rigidbody2D
        rb.velocity = new Vector2(horizontalInput * moveSpeed, rb.velocity.y);

        // چرخاندن شخصیت بر اساس جهت حرکت
        if (horizontalInput > 0.01f)
        {
            transform.localScale = new Vector2(Mathf.Abs(transform.localScale.x), transform.localScale.y);
        }
        else if (horizontalInput < -0.01f)
        {
            transform.localScale = new Vector2(-Mathf.Abs(transform.localScale.x), transform.localScale.y);
        }

        // فعال کردن انیمیشن دویدن
        anim.SetBool("run", horizontalInput != 0);

        //// وقتی دکمه ماوس فشرده می‌شود
        //if (Input.GetMouseButton(0)) // کلیک چپ نگه داشته شود
        //{
        //    StartAttack();
        //}
        //else // وقتی کلیک رها شود
        //{
        //    StopAttack();
        //}

        //// در صورتی که حمله فعال نباشد، چرخش به سمت ماوس انجام شود
        if (!isAttacking)
        {
            Aim();
        }
    }

    void Aim()
    {
        // محاسبه موقعیت ماوس و کمان
        Vector2 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        Vector2 bowPos = transform.position;

        // محاسبه جهت
        direction = mousePos - bowPos;

        // چرخش کمان به سمت ماوس
        transform.right = direction;
    }

    //void StartAttack()
    //{
    //    if (!isAttacking)
    //    {
    //        isAttacking = true;
    //        anim.SetBool("click", true); // انیمیشن Attack
    //    }
    //}

    //void StopAttack()
    //{
    //    if (isAttacking)
    //    {
    //        isAttacking = false;
    //        anim.SetBool("click", false); // بازگشت به انیمیشن Idle
    //    }
    //}
}
import pygame
pygame.init()

win = pygame.display.set_mode((500,480))

pygame.display.set_caption("First Game")

walkRight = [pygame.image.load('R1.png'), pygame.image.load('R2.png'), pygame.image.load('R3.png'), pygame.image.load('R4.png'), pygame.image.load('R5.png'), pygame.image.load('R6.png'), pygame.image.load('R7.png'), pygame.image.load('R8.png'), pygame.image.load('R9.png')]
walkLeft = [pygame.image.load('L1.png'), pygame.image.load('L2.png'), pygame.image.load('L3.png'), pygame.image.load('L4.png'), pygame.image.load('L5.png'), pygame.image.load('L6.png'), pygame.image.load('L7.png'), pygame.image.load('L8.png'), pygame.image.load('L9.png')]
bg = pygame.image.load('bg.jpg')
char = pygame.image.load('standing.png')

clock = pygame.time.Clock()


class player(object):
    def __init__(self,x,y,width,height):
        self.x = x
        self.y = y
        self.width = width
        self.height = height
        self.vel = 5
        self.isJump = False
        self.left = False
        self.right = False
        self.walkCount = 0
        self.jumpCount = 10
        self.standing = True

    def draw(self, win):
        if self.walkCount + 1 >= 27:
            self.walkCount = 0

        if not(self.standing):
            if self.left:
                win.blit(walkLeft[self.walkCount//3], (self.x,self.y))
                self.walkCount += 1
            elif self.right:
                win.blit(walkRight[self.walkCount//3], (self.x,self.y))
                self.walkCount +=1
        else:
            if self.right:
                win.blit(walkRight[0], (self.x, self.y))
            else:
                win.blit(walkLeft[0], (self.x, self.y))
                


class projectile(object):
    def __init__(self,x,y,radius,color,facing):
        self.x = x
        self.y = y
        self.radius = radius
        self.color = color
        self.facing = facing
        self.vel = 8 * facing

    def draw(self,win):
        pygame.draw.circle(win, self.color, (self.x,self.y), self.radius)



def redrawGameWindow():
    win.blit(bg, (0,0))
    man.draw(win)
    for bullet in bullets:
        bullet.draw(win)
    
    pygame.display.update()


#mainloop
man = player(200, 410, 64,64)
bullets = []
run = True
while run:
    clock.tick(27)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
        
    for bullet in bullets:
        if bullet.x < 500 and bullet.x > 0:
            bullet.x += bullet.vel
        else:
            bullets.pop(bullets.index(bullet))

    keys = pygame.key.get_pressed()

    if keys[pygame.K_SPACE]:
        if man.left:
            facing = -1
        else:
            facing = 1
            
        if len(bullets) < 5:
            bullets.append(projectile(round(man.x + man.width //2), round(man.y + man.height//2), 6, (0,0,0), facing))

    if keys[pygame.K_LEFT] and man.x > man.vel:
        man.x -= man.vel
        man.left = True
        man.right = False
        man.standing = False
    elif keys[pygame.K_RIGHT] and man.x < 500 - man.width - man.vel:
        man.x += man.vel
        man.right = True
        man.left = False
        man.standing = False
    else:
        man.standing = True
        man.walkCount = 0
        
    if not(man.isJump):
        if keys[pygame.K_UP]:
            man.isJump = True
            man.right = False
            man.left = False
            man.walkCount = 0
    else:
        if man.jumpCount >= -10:
            neg = 1
            if man.jumpCount < 0:
                neg = -1
            man.y -= (man.jumpCount ** 2) * 0.5 * neg
            man.jumpCount -= 1
        else:
            man.isJump = False
            man.jumpCount = 10
            
    redrawGameWindow()

pygame.quit()
// banner 

function banners_post() {
	$labels = array(
		'name'                  => _x( 'Banners', 'Post type general name'),
		'singular_name'         => _x( 'Banner', 'Post type singular name'),
		'menu_name'             => _x( 'Banners', 'Admin Menu text'),
		'name_admin_bar'        => _x( 'Banner', 'Add New on Toolbar'),
		'add_new'               => __( 'Add New'),
		'add_new_item'          => __( 'Add New Banner'),
		'new_item'              => __( 'New Banner'),
		'edit_item'             => __( 'Edit Banner'),
		'view_item'             => __( 'View Banner'),
		'all_items'             => __( 'All Banners'),
		'search_items'          => __( 'Search Banners'),
		'parent_item_colon'     => __( 'Parent Banners:'),
		'not_found'             => __( 'No Banners found.'),
		'not_found_in_trash'    => __( 'No Banners found in Trash.'),
	);

	$args = array(
		'labels'             => $labels,
		'public'             => true,
		'publicly_queryable' => true,
		'show_ui'            => true,
		'show_in_menu'       => true,
		'query_var'          => true,
		'rewrite'            => array( 'slug' => 'banner' ),
		'capability_type'    => 'post',
		'has_archive'        => true,
		'hierarchical'       => false,
		'menu_position'      => null,
		'supports'           => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' ),
	);

	register_post_type( 'banner', $args );
}

add_action( 'init', 'banners_post' );


function banner_loop() {
    $args = array(
        'post_type' => 'banner',
        'posts_per_page' => -1
    );

    $query = new WP_Query( $args );
?>
    <section class="bannerSlider slider">
        <?php
    if ( $query->have_posts() ) {
        
        while ( $query->have_posts() ) {
            $query->the_post();
            ?>
                    
            <div>
                <div class="bannerMain">
                    <div class="bannerContent">
                        <?php the_content(); ?>
<!--                         <h5><//?php the_field('banner_designation'); ?></h5> -->
                    </div>
                    <div class="identity">
						<h2><?php the_title(); ?></h2>
                        <?php the_post_thumbnail('full'); ?>
                    </div>
                </div>
            </div>
                
                
            <?php
        }

        // Reset post data
        wp_reset_postdata();
    }
    ?>
    </section>
    <?php
}
add_shortcode('our-banners','banner_loop');

// banners end



jquery
// Initialize Slick Slider for Banner Slider
jQuery(".bannerSlider").slick({
    slidesToShow: 1,
    slidesToScroll: 1,
    dots: true,
    arrows: false,
    prevArrow: '<button class="slide-arrow prev-arrow"></button>',
    nextArrow: '<button class="slide-arrow next-arrow"></button>',
    autoplay: true,
    autoplaySpeed: 5000,
    pauseOnDotsHover: true,
    adaptiveHeight: true,
});

// Initialize Slick Slider for Lazy Loading
jQuery(".lazy").slick({
    lazyLoad: 'ondemand', // ondemand progressive anticipated
    infinite: true
});

// Add Mouse Wheel Navigation
jQuery('.bannerSlider, .lazy').on('wheel', function (e) {
    e.preventDefault(); // Prevent default scrolling behavior
    if (e.originalEvent.deltaY < 0) {
        // Scroll up
        jQuery(this).slick('slickPrev');
    } else {
        // Scroll down
        jQuery(this).slick('slickNext');
    }
});



csss
.top-head h4.info-box-title {
    font-size: 24px !important;
		    line-height: 44px !important;
}

.top-icon .box-icon-wrapper.box-with-icon {
    margin-top: 34px;
}

.wd-header-nav {
    background: #191919;
		height: 60px;

}

span.nav-link-text {
    color: #fff;
    font-size: 18px;
		padding-top: 20px;
}

.info-img span.wd-btn-text {
    color: #d50404;
}

.info-img-1 .info-box-icon {
    width: 100% !important;
}

/* .info-img-1 img {
    width: 100% !important;
}
 */

.info-img span.wd-btn-text:hover {
    color: #000;
}


.bannerContent a {
    background: #ca0404;
    width: 50%;
    padding: 12px 23px;
    color: #fff;
    font-family: 'Poppins';
    font-weight: 500;
}

.bannerContent a:hover {
    background: #2d2d2d;
}


.info-img .btn.btn-style-link {
    border-bottom: none;
}

.info-img-1 .info-box-content {
    background-color: #fbfbfb;
    top: -15px;
    padding: 20px;
    border: 1px solid #999999;
		height: 176px;
}

.info-img .info-box-content {
    background-color: #fbfbfb;
    top: -15px;
    padding: 20px;
    border: 1px solid #999999;
		height: 176px;
}



.info-img-1 a.btn {
    background-color: #ca0404;
    color: #fff;
}

.btn.btn-color-default:hover {
    color: #fff !important;
}

span.fpara {
    color: #7f7f7f;
}

.copyrights-wrapper.copyrights-two-columns {
    display: none;
}


/* newsletter */
.elementor-field-group.elementor-column.elementor-field-type-submit.elementor-col-20.e-form__buttons {
    display: none;
}
/* newsletter */

/* .bannerContent h2 {
    position: absolute;
    top: 2%;
		left: 50%;
    font-size: 34px;
    color: #fff;
}

.bannerContent p {
    position: absolute;
    top: 12%;
    left: 50%;
    right: 5%;
    color: #fff;
} */

.bannerMain img {
    width: 100%;
}


.bannerContent {
    background: #000000ad !important;
    position: absolute;
    z-index: 999;
    top: 0px;
    bottom: 0px;
    right: 0px;
    margin: auto;
    width: 30%;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 50px;
}

.bannerMain {
    position: relative;
}

.bannerImg {
    position: relative;
    z-index: 0;
}

.bannerContent h2 {
    color: #fff;
    font-size: 30px;
}

.bannerContent p {
    color: #fff;
    font-size: 14px;
}

.bannerSlider {
    position: relative;
}

.bannerSlider ul {
    position: absolute;
    bottom: 0;
    display: flex;
    left: 70%;
    padding: 0;
    margin: 0;
    list-style: none;
    width: 30%;
}

.bannerSlider ul li {
    margin: 0;
    width: 16.6%;
    background: linear-gradient(180deg, #383838, #1b1b1b);
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #1b1b1b;
    border-top: 1px solid #2e2e2e;
    border-bottom: 0;
}

.bannerSlider ul li button {
    background: transparent;
    color: #fff;
    font-size: 18px;
}

.menu li a {
    height: 59px;
    display: flex;
    padding: 0 10px;
    align-items: flex-start;
    position: relative;
    z-index: 1;
}

.menu li {
    height: 59px;
    display: flex;
}

.menu li a:after {
    content: '';
    position: absolute;
    width: 100%;
    height: 0px;
    background: linear-gradient(180deg, #d60404, #940101);
    z-index: -1;
    left: 0;
}

.menu li a:hover:after {
    animation: slide-top 0.2s linear both;
}

.slide-top {
	animation: slide-top 0.5s linear both;
}

@keyframes slide-top {
  0% {
    height: 0;
  }
  100% {
    height: 60px;
  }
}

.wd-prefooter {
    padding: 0px;
}


span.auto-style1 {
    color: #E9322D;
    font-size: 28px;
}

.HVR-CLR a {
    color: #d50404;
		font-weight: 600;
}

.HVR-CLR a:hover {
    color: #000;
    text-decoration: underline;
}


input {
    border-color: #E9322D !important;
    color: #000 !important;
    border-radius: 7px !important;
    padding: 20px 10px !important;
}

textarea#wpforms-364-field_6 {
    border-color: #E9322D !important;
    color: #000 !important;
    border-radius: 7px !important;
}

button#wpforms-submit-364 {
    background-color: #000;
    color: #E9322D;
    border: none;
    border-radius: 6px;
    padding: 13px 40px;
    font-size: 16px;
}

input.s.wd-search-inited {
    border: 1px solid #D7D7D7 !important;
}

button.searchsubmit {
    color: #DE352C !important;
}

input.s {
    border-radius: 0px !important;
    border: none;
}


.chaatRow table th {
    border: 2px dashed #000;
}
.chaatRow table tbody td {
    border: 2px dashed #000;
}

::marker {
    color: #BF2130;
}


h2.head1 {
    text-transform: capitalize;
    margin-left: 22px;
    font-size: 30px;
}

h2.bgClr {
    background-color: #C02130;
    color: #fff;
    padding: 10px 30px;
    margin-left: 27px;
}

.chartRow1 table th {
    border: 2px dashed #000;
}
.chartRow1 table tbody td {
    border: 2px dashed #000;
}

.chartRow1 li {
	border-bottom: 2px dashed   #000;
	padding: 8px;
}

p.flexCon {
    font-size: 12px;
}

p.flexCon1 {
    font-size: 12px;
}

p.flexPrice {
    margin-bottom: 0px;
    margin-top: 36px;
}

.chartRow1 ul {
    margin: 0;
}
.chartRow1 ul li:last-child {
    border: none;
}
p.flexCon {
    padding-left: 50px;
}

.chartData p.flexCon {
    padding-left: 50px;
}
.chartRow1 table tbody .chartData ul li {
    padding-bottom: 0;
}

h3.bgClr {
    background-color: #C02130;
    color: #fff;
    padding: 20px;
    text-align: center;
    font-size: 26px;
}


.chartRow3 li div {
    display: flex;
    justify-content: space-between;
}
.chartRow3 li {
    list-style: none;
    border: none;
    position: relative;
}
.chartRow3 li:after {
    content: '';
    position: absolute;
    height: 1px;
    width: 100%;
    border-top: 2px dashed #000;
    right: 100px;
    top: 0;
    bottom: 0;
    margin: auto;
}
.chartRow3 li div h2 {
    margin: 0;
}

.chartRow3 li:nth-child(1):after {
    width: 69%;
}
.chartRow3 li:nth-child(2):after {
    width: 57%;
}
.chartRow3 li:nth-child(3):after {
    width: 45%;
}
.chartRow3 li:nth-child(4):after {
    width: 24%;
}
.chartRow3 li:nth-child(5):after {
    width: 33%;
}
.chartRow3 li:nth-child(6):after {
    width: 29%;
}
.chartRow3 li:nth-child(7):after {
    width: 30%;
}
.chartRow3 li:nth-child(8):after {
    width: 22%;
}

ul.chartRow3.flexChart li div h2 {
    display: flex;
    flex-direction: column;
}

ul.chartRow3.flexChart li div h2 p {
    font-size: 17px;
}

ul.chartRow3.flexChart li:nth-child(1):after {
    width: 43%;
    top: -20px;
}

ul.chartRow3.flexChart li:nth-child(2):after {
    width: 64%;
    top: -30px;
}

ul.chartRow3.flexChart li:nth-child(3):after {
    top: -10px;
    width: 41%;
}

ul.chartRow3.flexChart li:nth-child(4):after {
    width: 67%;
}

ul.chartRow3.flexChart li:nth-child(5):after {
    width: 47%;
}

ul.chartRow3.flexChart.flexChart1 li:nth-child(1):after {
    width: 67%;
    top: -40px;
}

ul.chartRow3.flexChart.flexChart1 li:nth-child(2):after {
    width: 66%;
    top: -40px;
}

ul.chartRow3.flexChart.flexChart1 li:nth-child(3):after {
    width: 60%;
    top: -42px;
}

ul.chartRow3.flexChart.flexChart2 li:nth-child(1):after {
    width: 60%;
    top: 0;
    bottom: 0;
    margin: auto;
}

ul.chartRow3.flexChart.flexChart2 li:nth-child(2):after {
    width: 60%;
    top: 0;
    bottom: 0;
    margin: auto;
}

ul.chartRow3.flexChart.flexChart2 li:nth-child(3):after {
    width: 62%;
    top: 0;
    bottom: 0;
    margin: auto;
}

ul.chartRow3.flexChart.flexChart2 li:nth-child(4):after {
    width: 41%;
    top: 0;
    bottom: 0;
    margin: auto;
}

ul.chartRow3.flexChart.flexChart2 li:nth-child(5):after {
    width: 43%;
    top: 0;
    bottom: 0;
    margin: auto;
}

ul.chartRow5.chartRow3.flexChart li:nth-child(1):after {
    width: 60%;
    top: 0;
    bottom: 0;
    margin: auto;
}

ul.chartRow5.chartRow3.flexChart li:nth-child(2):after {
    width: 58%;
    top: 0;
    bottom: 0;
    margin: auto;
}

ul.chartRow5.chartRow3.flexChart li:nth-child(3):after {
    width: 50%;
    top: 0;
    bottom: 0;
    margin: auto;
}

ul.chartRow5.chartRow3.flexChart.flexChart1 li:nth-child(1):after {
    width: 50%;
}

ul.chartRow5.chartRow3.flexChart.flexChart1 li:nth-child(2):after {
    width: 55%;
}

ul.chartRow5.chartRow3.flexChart.flexChart1 li:nth-child(3):after {
    width: 57%;
    top: 25px;
}




@isTest
    static void testProcessCasesSuccess() {
        List<RecordType> recordTypes2 = [SELECT Id FROM RecordType WHERE SObjectType = 'Case' AND DeveloperName IN ('Reclamacao', 'ProcessoLogistico')];
        List<Case> cases = [SELECT Id, Status, CreatedDate, RecordTypeId FROM Case WHERE RecordTypeId IN :recordTypes2];
        for(Case c : cases) {
            Test.setCreatedDate(c.Id, DateTime.newInstance(2023,12,12));
            c = [SELECT Id, CreatedDate, RecordType.Name, status, StatusDayCount__c FROM Case WHERE Id = :c.Id];
        }
        
        Test.startTest();
        AutoCloseCases.processCases();
        Test.stopTest();
    }
<?php
//Database credentials
$host = 'localhost';
$port = 3306;
$dbName = 'blog';
$username = 'root';
$password = '';

$dsn = "mysql:host={$host};dbname={$dbName};port={$port};charset=utf8";

try {
    // create PDO instance
    $pdo = new PDO($dsn, $username, $password);

//    set PDO to throw exceptions on error
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//    Fetch as associative array
    $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

} catch (PDOException $e) {
// if error catch
    echo "Connection Failed {$e->getMessage()}";
}
import java.util.*;

public class Main {

    static class Line {
        int x1, y1, x2, y2;

        public Line(int x1, int y1, int x2, int y2) {
            this.x1 = x1;
            this.y1 = y1;
            this.x2 = x2;
            this.y2 = y2;
        }
    }

    private static int countCells(Line line, Pair<Integer, Integer> star, boolean split) {
        if (line.x1 == line.x2) {
            if (split) {
                return Math.min(Math.abs(star.second - line.y1), Math.abs(star.second - line.y2)) + 1;
            } else {
                return Math.abs(line.y1 - line.y2) + 1;
            }
        } else {
            if (split) {
                return Math.min(Math.abs(star.first - line.x1), Math.abs(star.first - line.x2)) + 1;
            } else {
                return Math.abs(line.x1 - line.x2) + 1;
            }
        }
    }

    private static boolean intersects(Line a, Line b, Pair<Integer, Integer> intersection) {
        if (a.x1 == a.x2 && b.y1 == b.y2) {
            if (b.x1 <= a.x1 && a.x1 <= b.x2 && a.y1 <= b.y1 && b.y1 <= a.y2) {
                intersection.set(a.x1, b.y1);
                return true;
            }
        }
        if (a.y1 == a.y2 && b.x1 == b.x2) {
            if (a.x1 <= b.x1 && b.x1 <= a.x2 && b.y1 <= a.y1 && a.y1 <= b.y2) {
                intersection.set(b.x1, a.y1);
                return true;
            }
        }
        return false;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        List<Line> lines = new ArrayList<>();
        for (int i = 0; i < N; ++i) {
            int x1 = sc.nextInt();
            int y1 = sc.nextInt();
            int x2 = sc.nextInt();
            int y2 = sc.nextInt();
            if (x1 > x2 || (x1 == x2 && y1 > y2)) {
                int temp = x1;
                x1 = x2;
                x2 = temp;
                temp = y1;
                y1 = y2;
                y2 = temp;
            }
            lines.add(new Line(x1, y1, x2, y2));
        }

        int K = sc.nextInt();
        Map<Pair<Integer, Integer>, List<Line>> stars = new HashMap<>();

        for (int i = 0; i < N; ++i) {
            for (int j = i + 1; j < N; ++j) {
                Pair<Integer, Integer> intersection = new Pair<>(0, 0);
                if (intersects(lines.get(i), lines.get(j), intersection)) {
                    stars.computeIfAbsent(intersection, k -> new ArrayList<>()).add(lines.get(i));
                    stars.computeIfAbsent(intersection, k -> new ArrayList<>()).add(lines.get(j));
                }
            }
        }

        int totalIntensity = 0;
        for (Map.Entry<Pair<Integer, Integer>, List<Line>> entry : stars.entrySet()) {
            if (entry.getValue().size() / 2 == K) {
                List<Integer> intensities = new ArrayList<>();
                for (Line line : entry.getValue()) {
                    intensities.add(countCells(line, entry.getKey(), true));
                }
                totalIntensity += Collections.min(intensities);
            }
        }

        System.out.println(totalIntensity);
    }

    // Pair class to store x and y coordinates of intersections
    static class Pair<T, U> {
        T first;
        U second;

        public Pair(T first, U second) {
            this.first = first;
            this.second = second;
        }

        public void set(T first, U second) {
            this.first = first;
            this.second = second;
        }
    }
}
import java.util.*;

public class Main {
    
    private static int maxRemovals(String currentString, List<String> substrings, Map<String, Integer> memo) {
        if (memo.containsKey(currentString)) {
            return memo.get(currentString);
        }

        int maxCount = 0;

        for (String substring : substrings) {
            int position = currentString.indexOf(substring);
            if (position != -1) {
                String newString = currentString.substring(0, position) + currentString.substring(position + substring.length());
                maxCount = Math.max(maxCount, 1 + maxRemovals(newString, substrings, memo));
            }
        }

        memo.put(currentString, maxCount);
        return maxCount;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int numSubstrings = sc.nextInt();
        List<String> substrings = new ArrayList<>();

        for (int i = 0; i < numSubstrings; i++) {
            substrings.add(sc.next());
        }

        String mainString = sc.next();
        Map<String, Integer> memo = new HashMap<>();

        System.out.println(maxRemovals(mainString, substrings, memo));
    }
}
import java.util.*;

public class Main {
    private static final int[][] directions = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};

    private static boolean isValidMove(int x, int y, int gridSize, char[][] grid) {
        return x >= 0 && x < gridSize && y >= 0 && y < gridSize && grid[x][y] != 'M';
    }

    private static int findMinCost(int gridSize, char[][] grid, int[] startPos, int[] endPos) {
        int[][] minCost = new int[gridSize][gridSize];
        for (int i = 0; i < gridSize; i++) {
            Arrays.fill(minCost[i], Integer.MAX_VALUE);
        }

        Queue<int[]> bfsQueue = new LinkedList<>();
        bfsQueue.add(startPos);
        minCost[startPos[0]][startPos[1]] = 0;

        while (!bfsQueue.isEmpty()) {
            int[] currentPos = bfsQueue.poll();
            int x = currentPos[0];
            int y = currentPos[1];

            for (int[] direction : directions) {
                int nextX = x + direction[0];
                int nextY = y + direction[1];

                if (isValidMove(nextX, nextY, gridSize, grid)) {
                    int moveCost = (grid[x][y] == 'T' && grid[nextX][nextY] == 'T') ? 0 : 1;
                    if (minCost[x][y] + moveCost < minCost[nextX][nextY]) {
                        minCost[nextX][nextY] = minCost[x][y] + moveCost;
                        bfsQueue.add(new int[]{nextX, nextY});
                    }
                }
            }
        }

        return minCost[endPos[0]][endPos[1]];
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int gridSize = sc.nextInt();
        char[][] grid = new char[gridSize][gridSize];
        int[] startPos = new int[2];
        int[] endPos = new int[2];

        for (int i = 0; i < gridSize; i++) {
            for (int j = 0; j < gridSize; j++) {
                grid[i][j] = sc.next().charAt(0);
                if (grid[i][j] == 'S') startPos = new int[]{i, j};
                if (grid[i][j] == 'E') endPos = new int[]{i, j};
            }
        }

        int result = findMinCost(gridSize, grid, startPos, endPos);
        System.out.println(result);
    }
}
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int productCount = sc.nextInt();
        int[] productIds = new int[productCount];
        int[] productCosts = new int[productCount];

        for (int i = 0; i < productCount; i++) {
            productIds[i] = sc.nextInt();
        }
        for (int i = 0; i < productCount; i++) {
            productCosts[i] = sc.nextInt();
        }

        int totalBudget = sc.nextInt();

        int maxFreeItems = 0, maxFreeWorth = 0;

        for (int i = 0; i < productCount; i++) {
            int currentCost = productCosts[i];
            int maxPurchaseQty = totalBudget / currentCost;

            if (maxPurchaseQty > 0) {
                int freeItems = 0;
                int freeWorth = 0;

                for (int j = 0; j < productCount; j++) {
                    if (i != j && productIds[i] % productIds[j] == 0) {
                        freeItems += maxPurchaseQty;
                        freeWorth += productCosts[j] * maxPurchaseQty;
                    }
                }

                if (freeItems > maxFreeItems || 
                   (freeItems == maxFreeItems && freeWorth > maxFreeWorth)) {
                    maxFreeItems = freeItems;
                    maxFreeWorth = freeWorth;
                }
            }
        }

        System.out.println(maxFreeItems + " " + maxFreeWorth);
    }
}
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int nodes = sc.nextInt();
        int edges = sc.nextInt();
        List<Set<Integer>> adjacencyList = new ArrayList<>();

        for (int i = 0; i < nodes; i++) {
            adjacencyList.add(new HashSet<>());
        }

        for (int i = 0; i < edges; i++) {
            int node1 = sc.nextInt();
            int node2 = sc.nextInt();
            adjacencyList.get(node1).add(node2);
            adjacencyList.get(node2).add(node1);
        }

        int targetActiveNodes = sc.nextInt();
        boolean[] currentActiveNodes = new boolean[nodes];
        Arrays.fill(currentActiveNodes, true);
        int activeNodeCount = nodes;
        int days = 1;

        while (activeNodeCount < targetActiveNodes) {
            boolean[] nextActiveNodes = new boolean[nodes];
            for (int i = 0; i < nodes; i++) {
                int activeNeighbors = 0;
                for (int neighbor : adjacencyList.get(i)) {
                    if (currentActiveNodes[neighbor]) activeNeighbors++;
                }

                if (currentActiveNodes[i] && activeNeighbors == 3) {
                    nextActiveNodes[i] = true;
                } else if (!currentActiveNodes[i] && activeNeighbors < 3) {
                    nextActiveNodes[i] = true;
                }
            }

            currentActiveNodes = nextActiveNodes;
            activeNodeCount = 0;
            for (boolean isActive : currentActiveNodes) {
                if (isActive) activeNodeCount++;
            }
            days++;
        }

        System.out.println(days);
    }
}
git remote add origin https://github.com/Asadullah109/sigma-togather.git
git branch -M main
git push -u origin main
echo "# sigma-togather" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/Asadullah109/sigma-togather.git
git push -u origin main
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String string = br.readLine();
        int length = string.length();
        String[] input = br.readLine().split(" ");
        int[] values = new int[length];

        for (int i = 0; i < length; i++) {
            values[i] = Integer.parseInt(input[i]);
        }

        int res = 0;
        int lastDigit = string.charAt(0) - '0';
        int previousValue = values[0];

        for (int i = 1; i < length; i++) {
            int currentDigit = string.charAt(i) - '0';
            if (currentDigit == lastDigit) {
                res += Math.min(previousValue, values[i]);
                previousValue = Math.max(previousValue, values[i]);
            } else {
                lastDigit = currentDigit;
                previousValue = values[i];
            }
        }

        System.out.println(res);
    }
}
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        String string = sc.next();
        int length = string.length();
        int res = 0;

        int[] values = new int[length];
        for (int i = 0; i < length; i++) {
            values[i] = sc.nextInt();
        }

        int lastDigit = string.charAt(0) - '0';
        int previousValue = values[0];

        for (int i = 1; i < length; i++) {
            int currentDigit = string.charAt(i) - '0';
            if (currentDigit == lastDigit) {
                res += Math.min(previousValue, values[i]);
                previousValue = Math.max(previousValue, values[i]);
            } else {
                lastDigit = currentDigit;
                previousValue = values[i];
            }
        }

        System.out.println(res);
    }
}
int partition(vector<int>& arr, int low, int high) {
  
    // Choose the pivot
    int pivot = arr[high];
    int i = low - 1;

    // Traverse arr[;ow..high] and move all smaller
    
    for (int j = low; j <= high - 1; j++) {
        if (arr[j] < pivot) {
            i++;
            swap(arr[i], arr[j]);
        }
    }
    
    // Move pivot after smaller elements and return its posn
    swap(arr[i + 1], arr[high]);  
    return i + 1;
}

void quickSort(vector<int>& arr, int low, int high) {
  
    if (low < high) {
      
        // pi is the partition return index of pivot
        int pi = partition(arr, low, high);
        quickSort(arr, low, pi - 1);
        quickSort(arr, pi + 1, high);
    }
}
		if(head==NULL || k==1){
            return head;
        }
        ListNode* dummy=new ListNode(0);
         dummy->next=head;
        ListNode *cur=dummy,*pre=dummy, *nex=dummy;
       
        int cnt=0;
        while(cur->next!=NULL){
            cur=cur->next;
            cnt++;
        }
        while(cnt>=k){
            cur=pre->next;
            nex= cur->next;
            for(int i=1;i<k;i++){
                cout<<dummy->next->val;
                cur->next=nex->next;
                nex->next=pre->next;
                pre->next=nex;
                nex=cur->next;
                
            }
            pre=cur;
            cnt-=k;
        }
        return dummy->next;
void heapSort(vector<int>& arr){
    int n = arr.size();

    // Build heap (rearrange vector)
    for (int i = n / 2 - 1; i >= 0; i--)
        heapify(arr, n, i);

    // One by one extract an element from heap
    for (int i = n - 1; i > 0; i--) {

        // Move current root to end
        swap(arr[0], arr[i]);

        // Call max heapify on the reduced heap
        heapify(arr, i, 0);
    }
}
void heapify(vector<int>& arr, int n, int i){

    // Initialize largest as root
    int largest = i;

    // left index = 2*i + 1
    int l = 2 * i + 1;

    // right index = 2*i + 2
    int r = 2 * i + 2;

    // If left child is larger than root
    if (l < n && arr[l] > arr[largest])
        largest = l;

    // If right child is larger than largest so far
    if (r < n && arr[r] > arr[largest])
        largest = r;

    // If largest is not root
    if (largest != i) {
        swap(arr[i], arr[largest]);

        // Recursively heapify the affected sub-tree
        heapify(arr, n, largest);
    }
}
#envelope{
margin: 150px;
position: relative;
width: 280px;
height: 180px;
borer-bottom-lefgt-radius:6px;
borer-bottom-lefgt-radius:6px;
margin-left: auto;
margin-left: auto;
top: 150px;
backgorund-color: #f9c5c8
box-shadow: 0 4px 20px rgba(0,0,0,,0.2)
}
for each  account in Account_Certificate[Status == "Draft"]
	{
		if(counter <= 8000)
		{
			accountId = account.ID;
			reciepents = account.Recipient_Emails.toList();
			for each  rec in reciepents
			{
				sendmail
				[
					from :zoho.adminuserid
					to :rec
					subject :"Account Certificate"
					message :"Account Name: " + account.Account_Name
					Attachments :template:Account_Certificate:Account_Certificate accountId as PDF
				]
				counter = counter + 1;
			}
			account.Status="Sent";
		}
	}
	///////// Accounts Emails ///////
	for each  account in Account_Certificate[Status == "Draft"]
	{
		if(counter <= 8000)
		{
			accountId = account.ID;
			reciepents = account.Recipient_Emails.toList();
			for each  rec in reciepents
			{
				sendmail
				[
					from :zoho.adminuserid
					to :rec
					subject :"Account Certificate"
					message :"Account Name: " + account.Account_Name
					Attachments :template:Account_Certificate:Account_Certificate accountId as PDF   ///// template: <record_template2>: <form_link_name2><record_id_variable2> as <attachment_format> //
				]
				counter = counter + 1;
			}
			account.Status="Sent";
		}
	}
import React, { useRef, useState, useEffect } from 'react'
import { HotTable } from '@handsontable/react'
import 'handsontable/dist/handsontable.full.min.css'
import Handsontable from 'handsontable'
import {
  registerControl,
  RegisterControlProps,
  RegisteredControlProperties,
} from '../hoc/registerControl'
import { CustomContentRenderer } from './utils/customButtonRenderer'
import { hyperformulaInstance, sheetId } from './utils/hyperformulaConfig'
import { reformatDate, reformatCurrency } from './utils/formatters'
import { SpreadsheetProperties } from '@components/features/FormBuilder/FormBuilderFieldProperties/Spreadsheet/types'
import { registerAllCellTypes } from 'handsontable/cellTypes'
import { registerAllPlugins } from 'handsontable/plugins'
import { useFormBuilderWorksheetGrid } from '../../hooks/useFormBuilderWorksheetGrid'
import { createSpreadsheetDefaultValue } from '../../FormBuilderFieldProperties/Spreadsheet/constants'
import { useFormBuilder } from '../../hooks/useFormBuilder'
import { useFormService } from '../../hooks/useFormService'

registerAllCellTypes()
registerAllPlugins()

type Properties = RegisteredControlProperties &
  SpreadsheetProperties & {
    externalVariables?: {
      [key: string]: {
        propertyName?: string
        defaultValue?: number
      }
    }
  }

const SpreadsheetControl: React.FC<RegisterControlProps<Properties>> = (
  props
) => {
  const hotTableRef = useRef<any>(null)
  const containerRef = useRef<HTMLDivElement>(null)

  const { rows = 1, columns = 1 } = props.properties || {}

  const DEFAULT_COLUMN_WIDTH = 100
  const DEFAULT_ROW_HEIGHT = 25

  const defaultMeta = {
    data: createSpreadsheetDefaultValue(rows, columns),
    cellFormats: {} as { [key: string]: 'date' | 'currency' | undefined },
    mergeCellsConfig: [],
    formulas: [],
  }

  const meta = props.properties?.meta || defaultMeta
  const { actions: formBuilderWorksheetActions } = useFormBuilderWorksheetGrid()
  const { actions, data: formBuilderData } = useFormBuilder()
  const { watch } = useFormService()
  const formData = watch()

  if (!actions || !actions.getAllFields) {
  }

  const [data, setData] = useState(
    () => props?.value ?? JSON.parse(JSON.stringify(meta.data))
  )
  const [cellFormats, setCellFormats] = useState(meta.cellFormats)
  const [mergeCellsConfig, setMergeCellsConfig] = useState(
    meta.mergeCellsConfig
  )

  const [count, setCount] = useState(0)

  const [formulas, setFormulas] = useState<
    { row: number; col: number; formula: string }[]
  >(meta.formulas || [])

  useEffect(() => {
    if (props.runtime && props.properties?.meta) {
      const {
        data: metaData,
        formulas: metaFormulas = [],

        mergeCellsConfig: metaMergeCells,
      } = props.properties.meta

      setData(props.value ?? metaData)
      setFormulas(metaFormulas)
      setMergeCellsConfig(metaMergeCells)

      metaFormulas.forEach(({ row, col, formula }) => {
        try {
          hyperformulaInstance.setCellContents({ sheet: sheetId, row, col }, [
            [formula],
          ])
        } catch (error) {}
      })

      hyperformulaInstance.rebuildAndRecalculate()
    }
  }, [props.runtime, props.properties?.meta])

  console.log('Meta:', props)

  // useEffect(() => {
  //   if (
  //     !props.externalVariables ||
  //     Object.keys(props.externalVariables).length === 0
  //   ) {
  //     return
  //   }

  //   const existingExpressions = new Set(
  //     hyperformulaInstance.listNamedExpressions()
  //   )

  //   Object.entries(props.externalVariables).forEach(([key, property]) => {
  //     const typedProperty = property as {
  //       propertyName?: string
  //       defaultValue?: number
  //     }
  //     const variableName = typedProperty.propertyName || key
  //     const value = Number(typedProperty.defaultValue || 0)

  //     if (!existingExpressions.has(variableName)) {
  //       try {
  //         hyperformulaInstance.addNamedExpression(variableName, value, sheetId)
  //         existingExpressions.add(variableName)
  //       } catch (error) {
  //         console.error(
  //           `Failed to add named expression: ${variableName}`,
  //           error
  //         )
  //       }
  //     } else {
  //       try {
  //         hyperformulaInstance.changeNamedExpression(
  //           variableName,
  //           value,
  //           sheetId
  //         )
  //       } catch (error) {
  //         console.error(
  //           `Failed to update named expression: ${variableName}`,
  //           error
  //         )
  //       }
  //     }
  //   })

  //   try {
  //     hyperformulaInstance.rebuildAndRecalculate()
  //     syncSpreadsheetWithEngine()
  //   } catch (error) {
  //     console.error('Error recalculating HyperFormula instance:', error)
  //   }
  // }, [props.externalVariables])
  // console.log('External Variable:', props.externalVariables)

  const syncSpreadsheetWithEngine = () => {
    if (hotTableRef.current?.hotInstance && typeof sheetId === 'number') {
      const updatedData = hyperformulaInstance.getSheetValues(sheetId)
      console.log('UpdatedData:', updatedData)
      try {
        hotTableRef.current.hotInstance.loadData(updatedData)
        updateFieldProperties({ data: updatedData })
      } catch (error) {}
    }
  }

  // useEffect(() => {
  //   if (formBuilderData) {
  //     const existingExpressions = hyperformulaInstance.listNamedExpressions()

  //     Object.entries(formBuilderData).forEach(([key, value]) => {
  //       const numericValue = Number(value) || 0

  //       if (!existingExpressions.includes(key)) {
  //         hyperformulaInstance.addNamedExpression(key, numericValue)
  //       } else {
  //         hyperformulaInstance.changeNamedExpression(key, numericValue)
  //       }
  //     })

  //     try {
  //       hyperformulaInstance.rebuildAndRecalculate()

  //       if (sheetId !== undefined) {
  //         const recalculatedData = hyperformulaInstance.getSheetValues(sheetId)
  //         setData(recalculatedData)
  //         updateFieldProperties({ data: recalculatedData })
  //       } else {
  //       }
  //     } catch (error) {}
  //   }
  // }, [formBuilderData])

  // useEffect(() => {
  //   if (formBuilderData?.fields) {
  //     const existingExpressions = new Set(
  //       hyperformulaInstance.listNamedExpressions()
  //     )

  //     formBuilderData.fields.forEach((field) => {
  //       const propertyName = field.properties?.propertyName
  //       const defaultValue = Number(field.properties?.defaultValue || 0)

  //       if (propertyName && !existingExpressions.has(propertyName)) {
  //         try {
  //           hyperformulaInstance.addNamedExpression(propertyName, defaultValue)
  //           existingExpressions.add(propertyName)
  //         } catch (error) {}
  //       } else if (propertyName) {
  //         try {
  //           hyperformulaInstance.changeNamedExpression(
  //             propertyName,
  //             defaultValue
  //           )
  //         } catch (error) {}
  //       }
  //     })

  //     try {
  //       hyperformulaInstance.rebuildAndRecalculate()
  //     } catch (error) {}
  //   }
  // }, [formBuilderData?.fields])

  // useEffect(() => {
  //   const handler = (changes: any) => {
  //     console.log('changes', changes)
  //     hyperformulaInstance.rebuildAndRecalculate()
  //   }

  //   hyperformulaInstance.on('valuesUpdated', handler)

  //   return () => {
  //     hyperformulaInstance.off('valuesUpdated', handler)
  //   }
  // }, [])

  useEffect(() => {
    if (formData && Object.keys(formData).length > 0) {
      console.log('Form Data:', formData)
      const existingExpressions = hyperformulaInstance.listNamedExpressions()

      Object.entries(formData).forEach(([key, value]) => {
        if (!existingExpressions.includes(`${key}`)) {
          hyperformulaInstance.addNamedExpression(`${key}`, Number(value) || 0)
        } else {
          hyperformulaInstance.changeNamedExpression(
            `${key}`,
            Number(value) || 0
          )
        }
        hyperformulaInstance.getNamedExpressionValue(key)
        console.log(
          `get named ${key}`,
          hyperformulaInstance.getNamedExpressionValue(key)
        )

        // hyperformulaInstance.setCellContents(
        //   { sheet: sheetId, row: 0, col: 0 },
        //   [[Number(value) || 0]]
        // )
      })

      hyperformulaInstance.rebuildAndRecalculate()
      // setCount((prev) => prev + 1)
      try {
        // setTimeout(() => {
        //   hyperformulaInstance.rebuildAndRecalculate()
        // }, 100)
      } catch (error) {}
    }
  }, [formData])

  useEffect(() => {
    const adjustedData = adjustDataDimensions(data, rows, columns)
    if (JSON.stringify(data) !== JSON.stringify(adjustedData)) {
      setData(adjustedData)
    }
  }, [rows, columns])

  const adjustDataDimensions = (
    currentData: any[][],
    rows: number,
    columns: number
  ) => {
    const newData = currentData.map((row) => [...row])
    if (newData.length < rows) {
      for (let i = newData.length; i < rows; i++) {
        newData.push(Array(columns).fill(null))
      }
    } else if (newData.length > rows) {
      newData.length = rows
    }
    newData.forEach((row) => {
      if (row.length < columns) {
        row.push(...Array(columns - row.length).fill(null))
      } else if (row.length > columns) {
        row.length = columns
      }
    })
    return newData
  }

  const handleAfterChange = (changes: any, source: string) => {
    if (!changes || source === 'loadData') return

    const validSheetId = sheetId ?? 0
    const updatedFormulas = [...formulas]

    changes.forEach(([row, col, oldValue, newValue]: any) => {
      if (
        newValue &&
        typeof newValue === 'string' &&
        newValue.startsWith('=')
      ) {
        try {
          updatedFormulas.push({ row, col, formula: newValue })
          setFormulas(updatedFormulas)

          hyperformulaInstance.setCellContents(
            { sheet: validSheetId, row, col },
            [[newValue]]
          )
        } catch (error) {}
      }
    })
    const updatedData = hotTableRef.current?.hotInstance?.getData?.()

    setData(updatedData)

    if (props.onChange) {
      props.onChange(updatedData)
    }
    try {
      hyperformulaInstance.rebuildAndRecalculate()
      // setData(hyperformulaInstance.getSheetValues)
      // console.log(
      //   'Get Sheet Value:',
      //   hyperformulaInstance.getSheetValues(sheetId!)
      // )
    } catch (error) {}
  }

  console.log('hotable', hotTableRef.current?.hotInstance?.getData?.())
  // const handleAfterChange = (changes: any, source: string) => {
  //   if (!changes || source === 'loadData') return

  //   const validSheetId = sheetId ?? 0
  //   const updatedFormulas = [...formulas]

  //   changes.forEach(([row, col, oldValue, newValue]: any) => {
  //     if (
  //       newValue &&
  //       typeof newValue === 'string' &&
  //       newValue.startsWith('=')
  //     ) {
  //       try {
  //         updatedFormulas.push({ row, col, formula: newValue })
  //         setFormulas(updatedFormulas)

  //         // hyperformulaInstance.setCellContents(
  //         //   { sheet: validSheetId, row, col },
  //         //   [[newValue]]
  //         // )
  //       } catch (error) {
  //         console.error('Error setting cell contents:', error)
  //       }
  //     }
  //   })

  //   try {
  //     hyperformulaInstance.rebuildAndRecalculate()

  //     const updatedData = hotTableRef.current?.hotInstance?.getData?.()

  //     setData(updatedData)

  //     if (props.onChange) {
  //       props.onChange(updatedData)
  //     }
  //   } catch (error) {
  //     console.error('Error rebuilding and recalculating formulas:', error)
  //   }
  // }

  console.log('hotable', hotTableRef.current?.hotInstance?.getData?.())

  const handleMergeCells = () => {
    const hotInstance = hotTableRef.current?.hotInstance
    const selected = hotInstance?.getSelected()
    if (selected) {
      const [startRow, startCol, endRow, endCol] = selected[0]
      const newMerge = {
        row: startRow,
        col: startCol,
        rowspan: endRow - startRow + 1,
        colspan: endCol - startCol + 1,
      }

      const updatedMergeCellsConfig = [...mergeCellsConfig, newMerge]
      hotInstance.updateSettings({ mergeCells: updatedMergeCellsConfig })
      setMergeCellsConfig(updatedMergeCellsConfig)

      updateFieldProperties({
        data,
        cellFormats,
        mergeCellsConfig: updatedMergeCellsConfig,
      })
    }
  }

  const handleUnmergeCells = () => {
    const hotInstance = hotTableRef.current?.hotInstance
    const selected = hotInstance?.getSelected()
    if (selected) {
      const [startRow, startCol] = selected[0]
      const mergeCellsPlugin = hotInstance.getPlugin('mergeCells')
      mergeCellsPlugin.unmerge(startRow, startCol)

      const updatedMergeCellsConfig = mergeCellsConfig.filter(
        (cell) => cell.row !== startRow || cell.col !== startCol
      )
      hotInstance.updateSettings({ mergeCells: updatedMergeCellsConfig })
      setMergeCellsConfig(updatedMergeCellsConfig)

      updateFieldProperties({
        data,
        cellFormats,
        mergeCellsConfig: updatedMergeCellsConfig,
      })
    }
  }

  const handleSetAsDate = () => {
    const selected = hotTableRef.current?.hotInstance.getSelected()
    if (selected) {
      const [row, col] = selected[0]
      const newFormats = { ...cellFormats, [`${row}-${col}`]: 'date' as const }
      setCellFormats(newFormats)
      updateFieldProperties({ data, cellFormats: newFormats, mergeCellsConfig })
    }
  }

  const handleSetAsCurrency = () => {
    const selected = hotTableRef.current?.hotInstance.getSelected()
    if (selected) {
      const [row, col] = selected[0]
      const newFormats = {
        ...cellFormats,
        [`${row}-${col}`]: 'currency' as const,
      }
      setCellFormats(newFormats)
      updateFieldProperties({ data, cellFormats: newFormats, mergeCellsConfig })
    }
  }

  const updateFieldProperties = (updatedMeta: any) => {
    formBuilderWorksheetActions?.setFieldConfigProperty(props.config?.id!, {
      meta: {
        data,
        formulas,
        mergeCellsConfig,
        ...updatedMeta,
      },
    })
  }

  const cellsHandler = (row: number, col: number) => {
    const cellProperties = {} as Handsontable.CellProperties
    cellProperties.width = DEFAULT_COLUMN_WIDTH
    cellProperties.height = DEFAULT_ROW_HEIGHT

    const format = cellFormats?.[`${row}-${col}`]

    if (format === 'date') {
      cellProperties.renderer = (
        instance,
        td,
        row,
        col,
        prop,
        value,
        cellProperties
      ) =>
        CustomContentRenderer(instance, td, row, col, () => {
          const span = document.createElement('span')
          span.innerText = reformatDate(
            instance.getDataAtCell(row, col) as string
          )
          return span
        })
    } else if (format === 'currency') {
      cellProperties.renderer = (
        instance,
        td,
        row,
        col,
        prop,
        value,
        cellProperties
      ) =>
        CustomContentRenderer(instance, td, row, col, () => {
          const span = document.createElement('span')
          span.innerText = reformatCurrency(
            instance.getDataAtCell(row, col) as string
          )
          return span
        })
    }

    return cellProperties
  }

  return (
    <div
      ref={containerRef}
      className="h-[400px] w-1/2 resize-x overflow-auto border md:w-full"
      style={{ minWidth: '50%', maxWidth: '100%', resize: 'horizontal' }}
      onMouseDown={(e) => e.stopPropagation()}
    >
      <HotTable
        id="mySpreadsheet"
        data={data}
        colHeaders={true}
        rowHeaders={true}
        width="100%"
        height="100%"
        selectionMode="multiple"
        copyPaste={true}
        contextMenu={{
          items: {
            row_above: {},
            row_below: {},
            col_left: {},
            col_right: {},
            remove_row: {},
            remove_col: {},
            clear_column: {},
            mergeCells: { name: 'Merge Cells', callback: handleMergeCells },
            unmergeCells: {
              name: 'Unmerge Cells',
              callback: handleUnmergeCells,
            },
            set_as_date: { name: 'Set as Date', callback: handleSetAsDate },
            set_as_currency: {
              name: 'Set as Currency',
              callback: handleSetAsCurrency,
            },
          },
        }}
        ref={hotTableRef}
        afterChange={handleAfterChange}
        persistentState={true}
        licenseKey="non-commercial-and-evaluation"
        manualColumnResize={false}
        manualRowResize={false}
        autoColumnSize={false}
        autoRowSize={false}
        stretchH="all"
        mergeCells={mergeCellsConfig}
        formulas={{ engine: hyperformulaInstance }}
        cells={cellsHandler}
        colWidths={DEFAULT_COLUMN_WIDTH}
        rowHeights={DEFAULT_ROW_HEIGHT}
      />
    </div>
  )
}

export default registerControl<Properties>(SpreadsheetControl, {
  noDisplayLabel: true,
})
{
	"blocks": [
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":star: Xero Boost Days- What's on! :star:"
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Hey Manchester! \n\n We're excited to kickstart another great week in the office with our new Boost Day Program! :zap: \n\nPlease see below for what's on this week! "
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-1: Tuesday, 3rd December",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n:coffee: *Café Partnership*: Café-style beverages with *Ditto Coffee*, located at 61, Oxford Street, M1 6EQ and now also at Union, Albert Square, M2 6LW. (Please show your Xero ID to claim your free coffee)\n:breakfast: *Breakfast*: Provided by *Balance Kitchen* from *8:30AM* in the kitchen area."
			}
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-2: Wednesday, 4th December",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n:coffee: *Café Partnership*: Café-style beverages with *Ditto Coffee*, located at 61 Oxford Street, M1 6EQ and now also at Union, Albert Square, M2 6LW. (Please bring your Xero ID to claim your free coffee)\n:Lunch-2: *Lunch*: Provided by *Balance Kitchen* from *12:30PM* in the kitchen area.\n:party: *Social Happy Hour Alert!* Join us this Wednesday from 4:00 PM to 6:00 PM for the all new Socials— happy hour vibes, great company, and good times. "
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Comms will be via this slack channel, get ready to Boost your workdays!\n\nLove,\nWX Team :party-wx:"
			}
		}
	]
star

Tue Dec 03 2024 03:52:57 GMT+0000 (Coordinated Universal Time)

@FOHWellington

star

Tue Dec 03 2024 03:44:53 GMT+0000 (Coordinated Universal Time)

@FOHWellington

star

Tue Dec 03 2024 03:29:10 GMT+0000 (Coordinated Universal Time)

@FOHWellington

star

Tue Dec 03 2024 02:32:47 GMT+0000 (Coordinated Universal Time) https://medium.com/@sbkapelner/building-and-pushing-to-artifact-registry-with-github-actions-7027b3e443c1

@rdxtreme

star

Mon Dec 02 2024 20:27:00 GMT+0000 (Coordinated Universal Time)

@shirnunn

star

Mon Dec 02 2024 15:21:19 GMT+0000 (Coordinated Universal Time)

@khainguyenhm

star

Mon Dec 02 2024 11:21:38 GMT+0000 (Coordinated Universal Time)

@Samuel1347

star

Mon Dec 02 2024 10:18:37 GMT+0000 (Coordinated Universal Time) https://adventofcode.com/2024/day/2/input

@Alexlotl

star

Mon Dec 02 2024 02:56:36 GMT+0000 (Coordinated Universal Time) https://github.com/LouisShark/chatgpt_system_prompt/blob/main/prompts/gpts/2DQzU5UZl_CodeCopilot.md

@bbexperience

star

Sun Dec 01 2024 21:11:11 GMT+0000 (Coordinated Universal Time) https://app.slack.com/block-kit-builder/T49PT3R50#%7B%22blocks%22:%5B%7B%22type%22:%22header%22,%22text%22:%7B%22type%22:%22plain_text%22,%22text%22:%22%20:sunny:%20Boost%20Days%20-%20What's%20on%20this%20week!%20:sunny:%22%7D%7D,%7B%22type%22:%22section%22,%22text%22:%7B%22type%22:%22mrkdwn%22,%22text%22:%22Let's%20make%20this%20week%20a%20great%20one%20with%20our%20Boost%20Day%20Program%20:yellow_heart:%20See%20below%20for%20what's%20in%20store!%20%22%7D%7D,%7B%22type%22:%22divider%22%7D,%7B%22type%22:%22header%22,%22text%22:%7B%22type%22:%22plain_text%22,%22text%22:%22:calendar-date-3:%20Tuesday,%203rd%20December%22,%22emoji%22:true%7D%7D,%7B%22type%22:%22section%22,%22text%22:%7B%22type%22:%22mrkdwn%22,%22text%22:%22%5Cn:coffee:%20*Xero%20Caf%C3%A9*:%20Caf%C3%A9-style%20beverages%20and%20sweet%20treats%5Cn:heart:%20*Barista%20Special*:%20_Iced%20Hazelnut%20Latte%20w/%20whipped%20cream_.%20%5Cn:pancakes:%20*Breakfast*:%20Provided%20by%20*Catroux*%20from%20*8:30am%20-%2011am*%20%5Cn%22%7D%7D,%7B%22type%22:%22header%22,%22text%22:%7B%22type%22:%22plain_text%22,%22text%22:%22:calendar-date-5:%20Thursday,%205th%20December%22,%22emoji%22:true%7D%7D,%7B%22type%22:%22section%22,%22text%22:%7B%22type%22:%22mrkdwn%22,%22text%22:%22:coffee:%20*Xero%20Caf%C3%A9*:%20Caf%C3%A9-style%20beverages%20and%20sweet%20treats%20%5Cn:heart:%20*Barista%20Special*:%20_Iced%20Hazelnut%20Latte%20w/%20whipped%20cream_.%5Cn%20:cookie:%20*Light%20Lunch*:%20Provided%20by%20*Sticky%20Fingers*%20from%20*12.30pm%20-%201.30pm*%22%7D%7D,%7B%22type%22:%22divider%22%7D,%7B%22type%22:%22section%22,%22text%22:%7B%22type%22:%22mrkdwn%22,%22text%22:%22Stay%20tuned%20to%20this%20channel%20for%20more%20details,%20check%20out%20the%20%3Chttps://calendar.google.com/calendar/u/0?cid=eGVyby5jb21fMXM4M3NiZzc1dnY0aThpY2FiZDZvZ2xncW9AZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ%7C*Auckland%20Social%20Calendar*%3E,%20and%20get%20ready%20to%20Boost%20your%20workdays!%5Cn%5CnLove,%5CnWX%20:wx:%22%7D%7D%5D%7D

@FOHWellington

star

Sun Dec 01 2024 20:25:39 GMT+0000 (Coordinated Universal Time) https://www.linkedin.com/pulse/calling-rest-api-from-d365-using-x-navdeep-sheokand-jelme/

@pavankkm

star

Sun Dec 01 2024 20:22:02 GMT+0000 (Coordinated Universal Time) https://samidax.wordpress.com/2022/02/17/calling-an-external-web-service-api-from-d365-fo/

@pavankkm

star

Sun Dec 01 2024 18:24:41 GMT+0000 (Coordinated Universal Time) https://www.cibthai-online.com/

@kiritokato

star

Sun Dec 01 2024 16:00:48 GMT+0000 (Coordinated Universal Time) https://codepen.io/pen

@kiritokato #undefined

star

Sun Dec 01 2024 03:55:18 GMT+0000 (Coordinated Universal Time) https://eclecticlight.co/updates-sierra-and-high-sierra/

@Liselot3

star

Sat Nov 30 2024 23:00:58 GMT+0000 (Coordinated Universal Time)

@MinaTimo

star

Sat Nov 30 2024 22:34:51 GMT+0000 (Coordinated Universal Time)

@MinaTimo

star

Sat Nov 30 2024 18:27:19 GMT+0000 (Coordinated Universal Time)

@emily00

star

Sat Nov 30 2024 14:52:14 GMT+0000 (Coordinated Universal Time) https://catalog.viva-scim.ro/

@676rhfrff #c# #c++ #nodejs

star

Sat Nov 30 2024 14:24:13 GMT+0000 (Coordinated Universal Time)

@mehran

star

Sat Nov 30 2024 14:23:05 GMT+0000 (Coordinated Universal Time)

@mehran

star

Sat Nov 30 2024 14:22:39 GMT+0000 (Coordinated Universal Time)

@mehran

star

Sat Nov 30 2024 10:06:55 GMT+0000 (Coordinated Universal Time) https://www.techwithtim.net/tutorials/game-development-with-python/pygame-tutorial/projectiles

@Alishure

star

Fri Nov 29 2024 23:11:47 GMT+0000 (Coordinated Universal Time) https://www.notion.so/lostmytop/Sister-Sister-10d02d4a0567807599d1cb072da03824

@CallTheCops ##stories ##en ##nsfw ##docs

star

Fri Nov 29 2024 21:56:33 GMT+0000 (Coordinated Universal Time)

@nofil

star

Fri Nov 29 2024 21:25:48 GMT+0000 (Coordinated Universal Time)

@gbritgs

star

Fri Nov 29 2024 18:53:42 GMT+0000 (Coordinated Universal Time)

@Joe_Devs #php

star

Fri Nov 29 2024 16:38:45 GMT+0000 (Coordinated Universal Time)

@Asad_ullah

star

Fri Nov 29 2024 16:37:18 GMT+0000 (Coordinated Universal Time)

@Asad_ullah

star

Fri Nov 29 2024 16:35:52 GMT+0000 (Coordinated Universal Time)

@Asad_ullah

star

Fri Nov 29 2024 16:33:19 GMT+0000 (Coordinated Universal Time)

@Asad_ullah

star

Fri Nov 29 2024 16:31:06 GMT+0000 (Coordinated Universal Time)

@Asad_ullah

star

Fri Nov 29 2024 16:29:26 GMT+0000 (Coordinated Universal Time) https://github.com/Asadullah109/sigma-togather

@asadiftekhar10

star

Fri Nov 29 2024 16:29:17 GMT+0000 (Coordinated Universal Time) https://github.com/Asadullah109/sigma-togather

@asadiftekhar10

star

Fri Nov 29 2024 16:26:49 GMT+0000 (Coordinated Universal Time)

@Asad_ullah

star

Fri Nov 29 2024 16:24:36 GMT+0000 (Coordinated Universal Time)

@Asad_ullah

star

Fri Nov 29 2024 07:26:55 GMT+0000 (Coordinated Universal Time)

@pcube312

star

Fri Nov 29 2024 07:07:40 GMT+0000 (Coordinated Universal Time)

@pcube312

star

Fri Nov 29 2024 07:05:10 GMT+0000 (Coordinated Universal Time)

@pcube312

star

Fri Nov 29 2024 06:51:49 GMT+0000 (Coordinated Universal Time)

@pcube312

star

Fri Nov 29 2024 06:37:13 GMT+0000 (Coordinated Universal Time) https://www.google.com/search?q

@zipik

star

Fri Nov 29 2024 06:36:25 GMT+0000 (Coordinated Universal Time) https://www.google.com/search?q

@zipik

star

Fri Nov 29 2024 06:28:52 GMT+0000 (Coordinated Universal Time) https://miracle-garden.live/

@zipik

star

Thu Nov 28 2024 19:48:52 GMT+0000 (Coordinated Universal Time) vir pelo tik tok

@shaolin #javascript

star

Thu Nov 28 2024 15:40:56 GMT+0000 (Coordinated Universal Time)

@usman13

star

Thu Nov 28 2024 15:38:31 GMT+0000 (Coordinated Universal Time)

@RehmatAli2024 #deluge

star

Thu Nov 28 2024 15:27:23 GMT+0000 (Coordinated Universal Time)

@anamarie

star

Thu Nov 28 2024 13:45:55 GMT+0000 (Coordinated Universal Time)

@FOHWellington

Save snippets that work with our extensions

Available in the Chrome Web Store Get Firefox Add-on Get VS Code extension